ETH Price: $2,516.72 (-5.37%)

Contract

0x244b3c44872B9766c1AfD82F1e574A6A753Eee58
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040110407802020-10-12 12:28:031480 days ago1602505683IN
 Create: HFILLogic
0 ETH0.1465089745

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
210557542024-10-27 8:25:114 days ago1730017511
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
209212802024-10-08 13:52:4723 days ago1728395567
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
208734132024-10-01 21:44:5929 days ago1727819099
0x244b3c44...A753Eee58
0 ETH
207583172024-09-15 20:09:5946 days ago1726430999
0x244b3c44...A753Eee58
0 ETH
207583172024-09-15 20:09:5946 days ago1726430999
0x244b3c44...A753Eee58
0 ETH
207583172024-09-15 20:09:5946 days ago1726430999
0x244b3c44...A753Eee58
0 ETH
207583172024-09-15 20:09:5946 days ago1726430999
0x244b3c44...A753Eee58
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HFILLogic

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: HFILLogic.sol
pragma solidity ^0.5.11;

import "./SafeMath.sol";
import "./HFILStorage.sol";

contract HFILLogic {

    using SafeMath for uint256;

    string public constant name = "HFILLogic";

    uint256 public constant TASKINIT = 0;
    uint256 public constant TASKPROCESSING = 1;
    uint256 public constant TASKCANCELLED = 2;
    uint256 public constant TASKDONE = 3;
    uint256 public constant MINTTASK = 1;
    uint256 public constant BURNTASK = 2;

    address private caller;
    HFILStorage private store;

    constructor(address aCaller) public{
        caller = aCaller;
    }

    modifier onlyCaller(){
        require(msg.sender == caller, "only main contract can call");
        _;
    }

    function mintLogic(uint256 value,address to,string calldata proof,
        bytes32 taskHash, address supportAddress, uint256 requireNum)
        external onlyCaller returns(uint256){
        require(to != address(0), "cannot be burned from zero address");
        require(value > 0, "value need > 0");
        require(taskHash == keccak256((abi.encodePacked(to,value,proof))),"taskHash is wrong");
        uint256 status = supportTask(MINTTASK, taskHash, supportAddress, requireNum);

        if( status == TASKDONE){
            uint256 totalSupply = store.getTotalSupply();
            uint256 balanceTo = store.balanceOf(to);
            balanceTo = balanceTo.safeAdd(value);
            totalSupply = totalSupply.safeAdd(value);
            store.setBalance(to,balanceTo);
            store.setTotalSupply(totalSupply);
        }
        return status;
    }

    function burnLogic(address from, uint256 value,string calldata filAddress,
        string calldata proof,bytes32 taskHash, address supportAddress, uint256 requireNum)
        external onlyCaller returns(uint256){

        uint256 balance = store.balanceOf(from);
        require(balance >= value,"sender address not have enough HFIL");
        require(value > 0, "value need > 0");
        require(taskHash == keccak256((abi.encodePacked(from,value,filAddress,proof))),"taskHash is wrong");
        uint256 status = supportTask(BURNTASK, taskHash, supportAddress, requireNum);

        if ( status == TASKDONE ){
            uint256 totalSupply = store.getTotalSupply();
            totalSupply = totalSupply.safeSub(value);
            balance = balance.safeSub(value);
            store.setBalance(from,balance);
            store.setTotalSupply(totalSupply);

        }
        return status;
    }

    function transferLogic(address sender,address to,uint256 value) external onlyCaller returns(bool) {
        require(to != address(0), "cannot transfer to address zero");
        require(sender != to, "sender need != to");
        require(value > 0, "value need > 0");
        require(address(store) != address(0), "dataStore address error");

        uint256 balanceFrom = store.balanceOf(sender);
        uint256 balanceTo = store.balanceOf(to);
        require(value <= balanceFrom, "insufficient funds");
        balanceFrom = balanceFrom.safeSub(value);
        balanceTo = balanceTo.safeAdd(value);
        store.setBalance(sender,balanceFrom);
        store.setBalance(to,balanceTo);
        return true;
    }

    function transferFromLogic(address sender,address from,address to,uint256 value) external onlyCaller returns(bool) {
        require(from != address(0), "cannot transfer from address zero");
        require(to != address(0), "cannot transfer to address zero");
        require(value > 0, "can not tranfer zero Token");
        require(from!=to,"from and to can not be be the same ");
        require(address(store) != address(0), "dataStore address error");

        uint256 balanceFrom = store.balanceOf(from);
        uint256 balanceTo = store.balanceOf(to);
        uint256 allowedvalue = store.getAllowed(from,sender);

        require(value <= allowedvalue, "insufficient allowance");
        require(value <= balanceFrom, "insufficient funds");

        balanceFrom = balanceFrom.safeSub(value);
        balanceTo = balanceTo.safeAdd(value);
        allowedvalue = allowedvalue.safeSub(value);

        store.setBalance(from,balanceFrom);
        store.setBalance(to,balanceTo);
        store.setAllowed(from,sender,allowedvalue);
        return true;
    }

    function approveLogic(address sender,address spender,uint256 value)  external onlyCaller returns(bool success){
        require(spender != address(0), "spender address zero");
        require(value > 0, "value need > 0");
        require(address(store) != address(0), "dataStore address error");

        store.setAllowed(sender,spender,value);
        return true;
    }

    function resetStoreLogic(address storeAddress) external onlyCaller {
        store = HFILStorage(storeAddress);
    }

    function getTotalSupply() public view returns (uint256 supply) {
        return store.getTotalSupply();
    }

    function balanceOf(address owner) public view returns (uint256 balance) {
        return store.balanceOf(owner);
    }

    function getAllowed(address owner, address spender) public view returns (uint256 remaining){
        return store.getAllowed(owner,spender);
    }

    function getStoreAddress() public view returns(address){
        return address(store);
    }

    function supportTask(uint256 taskType, bytes32 taskHash, address oneAddress, uint256 requireNum) private returns(uint256){
        require(!store.supporterExists(taskHash, oneAddress), "supporter already exists");
        (uint256 theTaskType,uint256 theTaskStatus,uint256 theSupporterNum) = store.getTaskInfo(taskHash);
        require(theTaskStatus < TASKDONE, "wrong status");

        if (theTaskStatus != TASKINIT)
            require(theTaskType == taskType, "task type not match");
        store.addSupporter(taskHash, oneAddress);
        theSupporterNum++;
        if(theSupporterNum >= requireNum)
            theTaskStatus = TASKDONE;
        else
            theTaskStatus = TASKPROCESSING;
        store.setTaskInfo(taskHash, taskType, theTaskStatus);
        return theTaskStatus;
    }

    function cancelTask(bytes32 taskHash)  external onlyCaller returns(uint256){
        (uint256 theTaskType,uint256 theTaskStatus,uint256 theSupporterNum) = store.getTaskInfo(taskHash);
        require(theTaskStatus == TASKPROCESSING, "wrong status");
        if(theSupporterNum > 0) store.removeAllSupporter(taskHash);
        theTaskStatus = TASKCANCELLED;
        store.setTaskInfo(taskHash, theTaskType, theTaskStatus);
        return theTaskStatus;
    }
}

File 2 of 4: Container.sol
pragma solidity ^0.5.11;

contract Container{
    struct Item{
        uint256 itemType;
        uint256 status;
        address[] addresses;
    }
    uint256 MaxItemAdressNum = 255;

    mapping (bytes32 => Item) private container;

    function itemAddressExists(bytes32 id, address oneAddress) internal view returns(bool){
        for(uint256 i = 0; i < container[id].addresses.length; i++){
            if(container[id].addresses[i] == oneAddress)
                return true;
        }
        return false;
    }
    function getItemAddresses(bytes32 id) internal view returns(address[] memory){
        return container[id].addresses;
    }

    function getItemInfo(bytes32 id) internal view returns(uint256, uint256, uint256){
        return (container[id].itemType, container[id].status, container[id].addresses.length);
    }

    function getItemAddressCount(bytes32 id) internal view returns(uint256){
        return container[id].addresses.length;
    }

    function setItemInfo(bytes32 id, uint256 itemType, uint256 status) internal{
        container[id].itemType = itemType;
        container[id].status = status;
    }

    function addItemAddress(bytes32 id, address oneAddress) internal{
        require(!itemAddressExists(id, oneAddress), "dup address added");
        require(container[id].addresses.length < MaxItemAdressNum, "too many addresses");
        container[id].addresses.push(oneAddress);
    }
    function removeItemAddresses(bytes32 id) internal{
        container[id].addresses.length = 0;
    }

    function removeOneItemAddress(bytes32 id, address oneAddress) internal{
        for(uint256 i = 0; i < container[id].addresses.length; i++){
            if(container[id].addresses[i] == oneAddress){
                container[id].addresses[i] = container[id].addresses[container[id].addresses.length - 1];
                container[id].addresses.length--;
                return;
            }
        }
        revert("not exist address");
    }

    function removeItem(bytes32 id) internal{
        delete container[id];
    }

    function replaceItemAddress(bytes32 id, address oneAddress, address anotherAddress) internal{
        require(!itemAddressExists(id,anotherAddress),"dup address added");
        for(uint256 i = 0; i < container[id].addresses.length; i++){
            if(container[id].addresses[i] == oneAddress){
                container[id].addresses[i] = anotherAddress;
                return;
            }
        }
        revert("not exist address");
    }
}

File 3 of 4: HFILStorage.sol
pragma solidity ^0.5.11;

import "./Container.sol";

contract HFILStorage is Container{

    string public constant name = "HFILStorage";

    address private caller;

    constructor(address aCaller) public{
        totalSupply = 0;
        caller = aCaller;
    }
    uint256 public totalSupply;

    mapping (address => uint256) private balances;

    mapping (address => mapping (address => uint256)) private allowed;

    function supporterExists(bytes32 taskHash, address user) public view returns(bool){
        return itemAddressExists(taskHash, user);
    }

    function setTaskInfo(bytes32 taskHash, uint256 taskType, uint256 status) external onlyCaller{
        setItemInfo(taskHash, taskType, status);
    }

    function getTaskInfo(bytes32 taskHash) public view returns(uint256, uint256, uint256){
        return getItemInfo(taskHash);
    }

    function addSupporter(bytes32 taskHash, address oneAddress) external onlyCaller{
        addItemAddress(taskHash, oneAddress);
    }

    function removeAllSupporter(bytes32 taskHash) external onlyCaller{
        removeItemAddresses(taskHash);
    }

    modifier onlyCaller() {
        require(msg.sender == caller, "only use main main contract to call");
        _;
    }

    function getTotalSupply() external view returns(uint256) {
        return totalSupply;
    }

    function setTotalSupply(uint256 amount) external onlyCaller {
        totalSupply = amount;
    }

    function balanceOf(address account) external view returns(uint256) {
        return balances[account];
    }

    function setBalance(address account,uint256 amount) external onlyCaller {
        require(account != address(0),"account address error");
        balances[account] = amount;
    }

    function getAllowed(address owner,address spender) external view returns(uint256) {
        return allowed[owner][spender];
    }

    function setAllowed(address owner,address spender,uint256 amount) external onlyCaller {
        require(owner != address(0),"owner address error");
        require(spender != address(0),"spender address error");
        allowed[owner][spender] = amount;
    }
}

File 4 of 4: SafeMath.sol
// solium-disable linebreak-style
pragma solidity ^0.5.11;

library SafeMath {
    function safeAdd(uint a, uint b) public pure returns (uint c) {
        c = a + b;
        require(c >= a,"");
    }
    function safeSub(uint a, uint b) public pure returns (uint c) {
        require(b <= a,"");
        c = a - b;
    }
    function safeMul(uint a, uint b) public pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b,"");
    }
    function safeDiv(uint a, uint b) public pure returns (uint c) {
        require(b > 0,"");
        c = a / b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"aCaller","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"BURNTASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINTTASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TASKCANCELLED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TASKDONE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TASKINIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TASKPROCESSING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approveLogic","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"filAddress","type":"string"},{"internalType":"string","name":"proof","type":"string"},{"internalType":"bytes32","name":"taskHash","type":"bytes32"},{"internalType":"address","name":"supportAddress","type":"address"},{"internalType":"uint256","name":"requireNum","type":"uint256"}],"name":"burnLogic","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"taskHash","type":"bytes32"}],"name":"cancelTask","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"getAllowed","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getStoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"proof","type":"string"},{"internalType":"bytes32","name":"taskHash","type":"bytes32"},{"internalType":"address","name":"supportAddress","type":"address"},{"internalType":"uint256","name":"requireNum","type":"uint256"}],"name":"mintLogic","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"storeAddress","type":"address"}],"name":"resetStoreLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFromLogic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferLogic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051613a5a380380613a5a8339818101604052602081101561003357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506139c6806100946000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063ac1348f7116100a2578063c4e41b2211610071578063c4e41b22146106d9578063c7c7e9ea146106f7578063ee8ca3b51461076f578063f54b8cd3146107b1578063f73ea036146107cf57610116565b8063ac1348f714610542578063afd464f21461062d578063b07ed3a91461064b578063b0d803461461069557610116565b8063601b7c92116100e9578063601b7c921461038257806370a08231146103a05780637ea56078146103f85780638d7e3ef31461047e578063a1c366dd1461052457610116565b806306fdde031461011b57806310224a981461019e57806311a02e48146101bc57806323d3eb3614610242575b600080fd5b6101236107ed565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610163578082015181840152602081019050610148565b50505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a6610826565b6040518082815260200191505060405180910390f35b610228600480360360608110156101d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082b565b604051808215151515815260200191505060405180910390f35b61036c600480360360e081101561025857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561029f57600080fd5b8201836020820111156102b157600080fd5b803590602001918460018302840111640100000000831117156102d357600080fd5b9091929391929390803590602001906401000000008111156102f457600080fd5b82018360208201111561030657600080fd5b8035906020019184600183028401116401000000008311171561032857600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bcd565b6040518082815260200191505060405180910390f35b61038a611281565b6040518082815260200191505060405180910390f35b6103e2600480360360208110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611286565b6040518082815260200191505060405180910390f35b6104646004803603606081101561040e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611369565b604051808215151515815260200191505060405180910390f35b61050a6004803603608081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b9a565b604051808215151515815260200191505060405180910390f35b61052c612749565b6040518082815260200191505060405180910390f35b610617600480360360c081101561055857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460018302840111640100000000831117156105d357600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061274e565b6040518082815260200191505060405180910390f35b610635612e1c565b6040518082815260200191505060405180910390f35b610653612e21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d7600480360360208110156106ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e4b565b005b6106e1612f51565b6040518082815260200191505060405180910390f35b6107596004803603604081101561070d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ffb565b6040518082815260200191505060405180910390f35b61079b6004803603602081101561078557600080fd5b8101908080359060200190929190505050613113565b6040518082815260200191505060405180910390f35b6107b961345d565b6040518082815260200191505060405180910390f35b6107d7613462565b6040518082815260200191505060405180910390f35b6040518060400160405280600981526020017f4846494c4c6f676963000000000000000000000000000000000000000000000081525081565b600381565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7370656e6465722061646472657373207a65726f00000000000000000000000081525060200191505060405180910390fd5b60008211610a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610acd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166333dd1b8a8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610baa57600080fd5b505af1158015610bbe573d6000803e3d6000fd5b50505050600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d3257600080fd5b505afa158015610d46573d6000803e3d6000fd5b505050506040513d6020811015610d5c57600080fd5b8101908080519060200190929190505050905089811015610dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061392c6023913960400191505060405180910390fd5b60008a11610e3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b8a8a8a8a8a8a604051602001808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140186815260200185858082843780830192505050838380828437808301925050509650505050505050604051602081830303815290604052805190602001208514610f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7461736b486173682069732077726f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000610f416002878787613467565b9050600381141561126f576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d6020811015610fe057600080fd5b81019080805190602001909291905050509050807368a27b2779bce38b898ce96386973aedfa56c79863a293d1e890918e6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561104c57600080fd5b505af4158015611060573d6000803e3d6000fd5b505050506040513d602081101561107657600080fd5b81019080805190602001909291905050509050827368a27b2779bce38b898ce96386973aedfa56c79863a293d1e890918e6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156110e257600080fd5b505af41580156110f6573d6000803e3d6000fd5b505050506040513d602081101561110c57600080fd5b81019080805190602001909291905050509250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc8e856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7ea7a3d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050505b80925050509998505050505050505050565b600181565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561132757600080fd5b505afa15801561133b573d6000803e3d6000fd5b505050506040513d602081101561135157600080fd5b81019080805190602001909291905050509050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f0081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f73656e646572206e65656420213d20746f00000000000000000000000000000081525060200191505060405180910390fd5b600082116115e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d602081101561177857600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561182c57600080fd5b505afa158015611840573d6000803e3d6000fd5b505050506040513d602081101561185657600080fd5b81019080805190602001909291905050509050818411156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b817368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561193857600080fd5b505af415801561194c573d6000803e3d6000fd5b505050506040513d602081101561196257600080fd5b81019080805190602001909291905050509150807368a27b2779bce38b898ce96386973aedfa56c79863e6cb90139091866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156119ce57600080fd5b505af41580156119e2573d6000803e3d6000fd5b505050506040513d60208110156119f857600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc86836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b505050506001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ce4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139716021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f0081525060200191505060405180910390fd5b60008211611dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f63616e206e6f74207472616e666572207a65726f20546f6b656e00000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806139096023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611f47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fe857600080fd5b505afa158015611ffc573d6000803e3d6000fd5b505050506040513d602081101561201257600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120c657600080fd5b505afa1580156120da573d6000803e3d6000fd5b505050506040513d60208110156120f057600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7c7e9ea888a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156121d857600080fd5b505afa1580156121ec573d6000803e3d6000fd5b505050506040513d602081101561220257600080fd5b810190808051906020019092919050505090508085111561228b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b82851115612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b827368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561235a57600080fd5b505af415801561236e573d6000803e3d6000fd5b505050506040513d602081101561238457600080fd5b81019080805190602001909291905050509250817368a27b2779bce38b898ce96386973aedfa56c79863e6cb90139091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123f057600080fd5b505af4158015612404573d6000803e3d6000fd5b505050506040513d602081101561241a57600080fd5b81019080805190602001909291905050509150807368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561248657600080fd5b505af415801561249a573d6000803e3d6000fd5b505050506040513d60208110156124b057600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc88856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561256c57600080fd5b505af1158015612580573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561262d57600080fd5b505af1158015612641573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166333dd1b8a888a846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561272257600080fd5b505af1158015612736573d6000803e3d6000fd5b5050505060019350505050949350505050565b600281565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061394f6022913960400191505060405180910390fd5b6000881161290e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b86888787604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401848152602001838380828437808301925050509450505050506040516020818303038152906040528051906020012084146129f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7461736b486173682069732077726f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000612a006001868686613467565b90506003811415612e0d576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015612a7557600080fd5b505afa158015612a89573d6000803e3d6000fd5b505050506040513d6020811015612a9f57600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b5357600080fd5b505afa158015612b67573d6000803e3d6000fd5b505050506040513d6020811015612b7d57600080fd5b81019080805190602001909291905050509050807368a27b2779bce38b898ce96386973aedfa56c79863e6cb901390918d6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612be957600080fd5b505af4158015612bfd573d6000803e3d6000fd5b505050506040513d6020811015612c1357600080fd5b81019080805190602001909291905050509050817368a27b2779bce38b898ce96386973aedfa56c79863e6cb901390918d6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612c7f57600080fd5b505af4158015612c93573d6000803e3d6000fd5b505050506040513d6020811015612ca957600080fd5b81019080805190602001909291905050509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc8b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612d6557600080fd5b505af1158015612d79573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7ea7a3d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612df257600080fd5b505af1158015612e06573d6000803e3d6000fd5b5050505050505b80915050979650505050505050565b600181565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015612fbb57600080fd5b505afa158015612fcf573d6000803e3d6000fd5b505050506040513d6020811015612fe557600080fd5b8101908080519060200190929190505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7c7e9ea84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156130d057600080fd5b505afa1580156130e4573d6000803e3d6000fd5b505050506040513d60208110156130fa57600080fd5b8101908080519060200190929190505050905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad52e02866040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561324f57600080fd5b505afa158015613263573d6000803e3d6000fd5b505050506040513d606081101561327957600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050509250925092506001821461331a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e6720737461747573000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008111156133b157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dce7108866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561339857600080fd5b505af11580156133ac573d6000803e3d6000fd5b505050505b60029150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635761b3478685856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561343a57600080fd5b505af115801561344e573d6000803e3d6000fd5b50505050819350505050919050565b600081565b600281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce71e54885856040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561351057600080fd5b505afa158015613524573d6000803e3d6000fd5b505050506040513d602081101561353a57600080fd5b8101908080519060200190929190505050156135be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f737570706f7274657220616c726561647920657869737473000000000000000081525060200191505060405180910390fd5b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad52e02886040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561363657600080fd5b505afa15801561364a573d6000803e3d6000fd5b505050506040513d606081101561366057600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060038210613701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e6720737461747573000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821461377f5787831461377e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7461736b2074797065206e6f74206d617463680000000000000000000000000081525060200191505060405180910390fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db6b14de88886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561382857600080fd5b505af115801561383c573d6000803e3d6000fd5b505050508080600101915050848110613858576003915061385d565b600191505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635761b347888a856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156138e257600080fd5b505af11580156138f6573d6000803e3d6000fd5b5050505081935050505094935050505056fe66726f6d20616e6420746f2063616e206e6f74206265206265207468652073616d652073656e6465722061646472657373206e6f74206861766520656e6f756768204846494c63616e6e6f74206265206275726e65642066726f6d207a65726f206164647265737363616e6e6f74207472616e736665722066726f6d2061646472657373207a65726fa265627a7a72315820d225f29a9cfede99ee394da27c9280e65026849b1eb9c0e55cbf5973b2277a9464736f6c634300051100320000000000000000000000009afb950948c2370975fb91a441f36fdc02737cd4

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063ac1348f7116100a2578063c4e41b2211610071578063c4e41b22146106d9578063c7c7e9ea146106f7578063ee8ca3b51461076f578063f54b8cd3146107b1578063f73ea036146107cf57610116565b8063ac1348f714610542578063afd464f21461062d578063b07ed3a91461064b578063b0d803461461069557610116565b8063601b7c92116100e9578063601b7c921461038257806370a08231146103a05780637ea56078146103f85780638d7e3ef31461047e578063a1c366dd1461052457610116565b806306fdde031461011b57806310224a981461019e57806311a02e48146101bc57806323d3eb3614610242575b600080fd5b6101236107ed565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610163578082015181840152602081019050610148565b50505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a6610826565b6040518082815260200191505060405180910390f35b610228600480360360608110156101d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082b565b604051808215151515815260200191505060405180910390f35b61036c600480360360e081101561025857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561029f57600080fd5b8201836020820111156102b157600080fd5b803590602001918460018302840111640100000000831117156102d357600080fd5b9091929391929390803590602001906401000000008111156102f457600080fd5b82018360208201111561030657600080fd5b8035906020019184600183028401116401000000008311171561032857600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bcd565b6040518082815260200191505060405180910390f35b61038a611281565b6040518082815260200191505060405180910390f35b6103e2600480360360208110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611286565b6040518082815260200191505060405180910390f35b6104646004803603606081101561040e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611369565b604051808215151515815260200191505060405180910390f35b61050a6004803603608081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b9a565b604051808215151515815260200191505060405180910390f35b61052c612749565b6040518082815260200191505060405180910390f35b610617600480360360c081101561055857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460018302840111640100000000831117156105d357600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061274e565b6040518082815260200191505060405180910390f35b610635612e1c565b6040518082815260200191505060405180910390f35b610653612e21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d7600480360360208110156106ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e4b565b005b6106e1612f51565b6040518082815260200191505060405180910390f35b6107596004803603604081101561070d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ffb565b6040518082815260200191505060405180910390f35b61079b6004803603602081101561078557600080fd5b8101908080359060200190929190505050613113565b6040518082815260200191505060405180910390f35b6107b961345d565b6040518082815260200191505060405180910390f35b6107d7613462565b6040518082815260200191505060405180910390f35b6040518060400160405280600981526020017f4846494c4c6f676963000000000000000000000000000000000000000000000081525081565b600381565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7370656e6465722061646472657373207a65726f00000000000000000000000081525060200191505060405180910390fd5b60008211610a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610acd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166333dd1b8a8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610baa57600080fd5b505af1158015610bbe573d6000803e3d6000fd5b50505050600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d3257600080fd5b505afa158015610d46573d6000803e3d6000fd5b505050506040513d6020811015610d5c57600080fd5b8101908080519060200190929190505050905089811015610dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061392c6023913960400191505060405180910390fd5b60008a11610e3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b8a8a8a8a8a8a604051602001808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140186815260200185858082843780830192505050838380828437808301925050509650505050505050604051602081830303815290604052805190602001208514610f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7461736b486173682069732077726f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000610f416002878787613467565b9050600381141561126f576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d6020811015610fe057600080fd5b81019080805190602001909291905050509050807368a27b2779bce38b898ce96386973aedfa56c79863a293d1e890918e6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561104c57600080fd5b505af4158015611060573d6000803e3d6000fd5b505050506040513d602081101561107657600080fd5b81019080805190602001909291905050509050827368a27b2779bce38b898ce96386973aedfa56c79863a293d1e890918e6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156110e257600080fd5b505af41580156110f6573d6000803e3d6000fd5b505050506040513d602081101561110c57600080fd5b81019080805190602001909291905050509250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc8e856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7ea7a3d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050505b80925050509998505050505050505050565b600181565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561132757600080fd5b505afa15801561133b573d6000803e3d6000fd5b505050506040513d602081101561135157600080fd5b81019080805190602001909291905050509050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f0081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f73656e646572206e65656420213d20746f00000000000000000000000000000081525060200191505060405180910390fd5b600082116115e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d602081101561177857600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561182c57600080fd5b505afa158015611840573d6000803e3d6000fd5b505050506040513d602081101561185657600080fd5b81019080805190602001909291905050509050818411156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b817368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561193857600080fd5b505af415801561194c573d6000803e3d6000fd5b505050506040513d602081101561196257600080fd5b81019080805190602001909291905050509150807368a27b2779bce38b898ce96386973aedfa56c79863e6cb90139091866040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156119ce57600080fd5b505af41580156119e2573d6000803e3d6000fd5b505050506040513d60208110156119f857600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc86836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b505050506001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ce4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139716021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f0081525060200191505060405180910390fd5b60008211611dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f63616e206e6f74207472616e666572207a65726f20546f6b656e00000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806139096023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611f47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6461746153746f72652061646472657373206572726f7200000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fe857600080fd5b505afa158015611ffc573d6000803e3d6000fd5b505050506040513d602081101561201257600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120c657600080fd5b505afa1580156120da573d6000803e3d6000fd5b505050506040513d60208110156120f057600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7c7e9ea888a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156121d857600080fd5b505afa1580156121ec573d6000803e3d6000fd5b505050506040513d602081101561220257600080fd5b810190808051906020019092919050505090508085111561228b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b82851115612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b827368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561235a57600080fd5b505af415801561236e573d6000803e3d6000fd5b505050506040513d602081101561238457600080fd5b81019080805190602001909291905050509250817368a27b2779bce38b898ce96386973aedfa56c79863e6cb90139091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123f057600080fd5b505af4158015612404573d6000803e3d6000fd5b505050506040513d602081101561241a57600080fd5b81019080805190602001909291905050509150807368a27b2779bce38b898ce96386973aedfa56c79863a293d1e89091876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561248657600080fd5b505af415801561249a573d6000803e3d6000fd5b505050506040513d60208110156124b057600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc88856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561256c57600080fd5b505af1158015612580573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561262d57600080fd5b505af1158015612641573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166333dd1b8a888a846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561272257600080fd5b505af1158015612736573d6000803e3d6000fd5b5050505060019350505050949350505050565b600281565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061394f6022913960400191505060405180910390fd5b6000881161290e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f76616c7565206e656564203e203000000000000000000000000000000000000081525060200191505060405180910390fd5b86888787604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401848152602001838380828437808301925050509450505050506040516020818303038152906040528051906020012084146129f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7461736b486173682069732077726f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000612a006001868686613467565b90506003811415612e0d576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015612a7557600080fd5b505afa158015612a89573d6000803e3d6000fd5b505050506040513d6020811015612a9f57600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b5357600080fd5b505afa158015612b67573d6000803e3d6000fd5b505050506040513d6020811015612b7d57600080fd5b81019080805190602001909291905050509050807368a27b2779bce38b898ce96386973aedfa56c79863e6cb901390918d6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612be957600080fd5b505af4158015612bfd573d6000803e3d6000fd5b505050506040513d6020811015612c1357600080fd5b81019080805190602001909291905050509050817368a27b2779bce38b898ce96386973aedfa56c79863e6cb901390918d6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612c7f57600080fd5b505af4158015612c93573d6000803e3d6000fd5b505050506040513d6020811015612ca957600080fd5b81019080805190602001909291905050509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc8b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612d6557600080fd5b505af1158015612d79573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7ea7a3d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612df257600080fd5b505af1158015612e06573d6000803e3d6000fd5b5050505050505b80915050979650505050505050565b600181565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015612fbb57600080fd5b505afa158015612fcf573d6000803e3d6000fd5b505050506040513d6020811015612fe557600080fd5b8101908080519060200190929190505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7c7e9ea84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156130d057600080fd5b505afa1580156130e4573d6000803e3d6000fd5b505050506040513d60208110156130fa57600080fd5b8101908080519060200190929190505050905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6f6e6c79206d61696e20636f6e74726163742063616e2063616c6c000000000081525060200191505060405180910390fd5b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad52e02866040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561324f57600080fd5b505afa158015613263573d6000803e3d6000fd5b505050506040513d606081101561327957600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050509250925092506001821461331a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e6720737461747573000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008111156133b157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dce7108866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561339857600080fd5b505af11580156133ac573d6000803e3d6000fd5b505050505b60029150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635761b3478685856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561343a57600080fd5b505af115801561344e573d6000803e3d6000fd5b50505050819350505050919050565b600081565b600281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce71e54885856040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561351057600080fd5b505afa158015613524573d6000803e3d6000fd5b505050506040513d602081101561353a57600080fd5b8101908080519060200190929190505050156135be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f737570706f7274657220616c726561647920657869737473000000000000000081525060200191505060405180910390fd5b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad52e02886040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561363657600080fd5b505afa15801561364a573d6000803e3d6000fd5b505050506040513d606081101561366057600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060038210613701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e6720737461747573000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821461377f5787831461377e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7461736b2074797065206e6f74206d617463680000000000000000000000000081525060200191505060405180910390fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db6b14de88886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561382857600080fd5b505af115801561383c573d6000803e3d6000fd5b505050508080600101915050848110613858576003915061385d565b600191505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635761b347888a856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156138e257600080fd5b505af11580156138f6573d6000803e3d6000fd5b5050505081935050505094935050505056fe66726f6d20616e6420746f2063616e206e6f74206265206265207468652073616d652073656e6465722061646472657373206e6f74206861766520656e6f756768204846494c63616e6e6f74206265206275726e65642066726f6d207a65726f206164647265737363616e6e6f74207472616e736665722066726f6d2061646472657373207a65726fa265627a7a72315820d225f29a9cfede99ee394da27c9280e65026849b1eb9c0e55cbf5973b2277a9464736f6c63430005110032

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

0000000000000000000000009afb950948c2370975fb91a441f36fdc02737cd4

-----Decoded View---------------
Arg [0] : aCaller (address): 0x9AFb950948c2370975fb91a441F36FDC02737cD4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009afb950948c2370975fb91a441f36fdc02737cd4


Libraries Used


Deployed Bytecode Sourcemap

80:6441:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;80:6441:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;139:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;139:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4266:371;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4266:371:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1568:901;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1568:901:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1568:901:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1568:901:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1568:901:1;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1568:901:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1568:901:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1568:901:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;366:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4881:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4881:118:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2475:716;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2475:716:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3197:1063;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3197:1063:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;408:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;700:862;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;700:862:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;700:862:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;700:862:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;700:862:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;229:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5157:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4643:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4643:117:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;4766:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5005:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5005:146:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6062:457;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6062:457:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;187:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;277:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;139;;;;;;;;;;;;;;;;;;;:::o;324:36::-;359:1;324:36;:::o;4266:371::-;4363:12;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4413:1;4394:21;;:7;:21;;;;4386:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4466:1;4458:5;:9;4450:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4530:1;4504:28;;4512:5;;;;;;;;;;;4504:28;;;;4496:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:5;;;;;;;;;;;:16;;;4588:6;4595:7;4603:5;4571:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4571:38:1;;;;4626:4;4619:11;;4266:371;;;;;:::o;1568:901::-;1771:7;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1790:15;1808:5;;;;;;;;;;;:15;;;1824:4;1808:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1808:21:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1808:21:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1808:21:1;;;;;;;;;;;;;;;;1790:39;;1858:5;1847:7;:16;;1839:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:1;1920:5;:9;1912:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:4;2011:5;2017:10;;2028:5;;1989:45;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;1989:45:1;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;1989:45:1;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1989:45:1;;;1978:58;;;;;;1966:8;:70;1958:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2067:14;2084:59;443:1;2106:8;2116:14;2132:10;2084:11;:59::i;:::-;2067:76;;359:1;2159:6;:18;2154:286;;;2193:19;2215:5;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2215:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2215:22:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2215:22:1;;;;;;;;;;;;;;;;2193:44;;2265:11;:19;;;;2285:5;2265:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2265:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2265:26:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2265:26:1;;;;;;;;;;;;;;;;2251:40;;2315:7;:15;;;;2331:5;2315:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2315:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2315:22:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2315:22:1;;;;;;;;;;;;;;;;2305:32;;2351:5;;;;;;;;;;;:16;;;2368:4;2373:7;2351:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2351:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2351:30:1;;;;2395:5;;;;;;;;;;;:20;;;2416:11;2395:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2395:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2395:33:1;;;;2154:286;;2456:6;2449:13;;;;1568:901;;;;;;;;;;;:::o;366:36::-;401:1;366:36;:::o;4881:118::-;4936:15;4970:5;;;;;;;;;;;:15;;;4986:5;4970:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4970:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4970:22:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4970:22:1;;;;;;;;;;;;;;;;4963:29;;4881:118;;;:::o;2475:716::-;2567:4;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:1;2591:16;;:2;:16;;;;2583:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2671:2;2661:12;;:6;:12;;;;2653:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2721:1;2713:5;:9;2705:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:1;2759:28;;2767:5;;;;;;;;;;;2759:28;;;;2751:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2826:19;2848:5;;;;;;;;;;;:15;;;2864:6;2848:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2848:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2848:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2848:23:1;;;;;;;;;;;;;;;;2826:45;;2881:17;2901:5;;;;;;;;;;;:15;;;2917:2;2901:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2901:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2901:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2901:19:1;;;;;;;;;;;;;;;;2881:39;;2947:11;2938:5;:20;;2930:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3005:11;:19;;;;3025:5;3005:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3005:26:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3005:26:1;;;;;;;;;;;;;;;;2991:40;;3053:9;:17;;;;3071:5;3053:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3053:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3053:24:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3053:24:1;;;;;;;;;;;;;;;;3041:36;;3087:5;;;;;;;;;;;:16;;;3104:6;3111:11;3087:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3087:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3087:36:1;;;;3133:5;;;;;;;;;;;:16;;;3150:2;3153:9;3133:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3133:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3133:30:1;;;;3180:4;3173:11;;;;2475:716;;;;;:::o;3197:1063::-;3306:4;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3346:1;3330:18;;:4;:18;;;;3322:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3418:1;3404:16;;:2;:16;;;;3396:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3482:1;3474:5;:9;3466:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:2;3532:8;;:4;:8;;;;3524:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:1;3597:28;;3605:5;;;;;;;;;;;3597:28;;;;3589:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3664:19;3686:5;;;;;;;;;;;:15;;;3702:4;3686:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3686:21:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3686:21:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3686:21:1;;;;;;;;;;;;;;;;3664:43;;3717:17;3737:5;;;;;;;;;;;:15;;;3753:2;3737:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3737:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3737:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3737:19:1;;;;;;;;;;;;;;;;3717:39;;3766:20;3789:5;;;;;;;;;;;:16;;;3806:4;3811:6;3789:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3789:29:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3789:29:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3789:29:1;;;;;;;;;;;;;;;;3766:52;;3846:12;3837:5;:21;;3829:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3912:11;3903:5;:20;;3895:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3971:11;:19;;;;3991:5;3971:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3971:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3971:26:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3971:26:1;;;;;;;;;;;;;;;;3957:40;;4019:9;:17;;;;4037:5;4019:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4019:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4019:24:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4019:24:1;;;;;;;;;;;;;;;;4007:36;;4068:12;:20;;;;4089:5;4068:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4068:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4068:27:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4068:27:1;;;;;;;;;;;;;;;;4053:42;;4106:5;;;;;;;;;;;:16;;;4123:4;4128:11;4106:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4106:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4106:34:1;;;;4150:5;;;;;;;;;;;:16;;;4167:2;4170:9;4150:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4150:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4150:30:1;;;;4190:5;;;;;;;;;;;:16;;;4207:4;4212:6;4219:12;4190:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4190:42:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4190:42:1;;;;4249:4;4242:11;;;;;3197:1063;;;;;;:::o;408:36::-;443:1;408:36;:::o;700:862::-;873:7;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:1;899:16;;:2;:16;;;;891:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;980:1;972:5;:9;964:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1058:2;1061:5;1067;;1041:32;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;1041:32:1;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1041:32:1;;;1030:45;;;;;;1018:8;:57;1010:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:14;1123:59;401:1;1145:8;1155:14;1171:10;1123:11;:59::i;:::-;1106:76;;359:1;1197:6;:18;1193:340;;;1230:19;1252:5;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1252:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1252:22:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1252:22:1;;;;;;;;;;;;;;;;1230:44;;1288:17;1308:5;;;;;;;;;;;:15;;;1324:2;1308:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1308:19:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1308:19:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1308:19:1;;;;;;;;;;;;;;;;1288:39;;1353:9;:17;;;;1371:5;1353:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1353:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1353:24:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1353:24:1;;;;;;;;;;;;;;;;1341:36;;1405:11;:19;;;;1425:5;1405:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1405:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1405:26:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1405:26:1;;;;;;;;;;;;;;;;1391:40;;1445:5;;;;;;;;;;;:16;;;1462:2;1465:9;1445:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1445:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1445:30:1;;;;1489:5;;;;;;;;;;;:20;;;1510:11;1489:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1489:33:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1489:33:1;;;;1193:340;;;1549:6;1542:13;;;700:862;;;;;;;;;:::o;229:42::-;270:1;229:42;:::o;5157:93::-;5204:7;5237:5;;;;;;;;;;;5222:21;;5157:93;:::o;4643:117::-;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4740:12;4720:5;;:33;;;;;;;;;;;;;;;;;;4643:117;:::o;4766:109::-;4813:14;4846:5;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4846:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4846:22:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4846:22:1;;;;;;;;;;;;;;;;4839:29;;4766:109;:::o;5005:146::-;5078:17;5113:5;;;;;;;;;;;:16;;;5130:5;5136:7;5113:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5113:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5113:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5113:31:1;;;;;;;;;;;;;;;;5106:38;;5005:146;;;;:::o;6062:457::-;6129:7;638:6;;;;;;;;;;;624:20;;:10;:20;;;616:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6148:19;6168:21;6190:23;6217:5;;;;;;;;;;;:17;;;6235:8;6217:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6217:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6217:27:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6217:27:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6147:97;;;;;;270:1;6262:13;:31;6254:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6341:1;6323:15;:19;6320:58;;;6344:5;;;;;;;;;;;:24;;;6369:8;6344:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6344:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6344:34:1;;;;6320:58;317:1;6388:29;;6427:5;;;;;;;;;;;:17;;;6445:8;6455:11;6468:13;6427:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6427:55:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6427:55:1;;;;6499:13;6492:20;;;;;6062:457;;;:::o;187:36::-;222:1;187:36;:::o;277:41::-;317:1;277:41;:::o;5256:800::-;5369:7;5396:5;;;;;;;;;;;:21;;;5418:8;5428:10;5396:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5396:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5396:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5396:43:1;;;;;;;;;;;;;;;;5395:44;5387:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:19;5499:21;5521:23;5548:5;;;;;;;;;;;:17;;;5566:8;5548:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5548:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5548:27:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5548:27:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5478:97;;;;;;359:1;5593:13;:24;5585:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:1;5649:13;:25;5645:98;;5711:8;5696:11;:23;5688:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5645:98;5753:5;;;;;;;;;;;:18;;;5772:8;5782:10;5753:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5753:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5753:40:1;;;;5803:17;;;;;;;5852:10;5833:15;:29;5830:127;;359:1;5876:24;;5830:127;;;270:1;5927:30;;5830:127;5967:5;;;;;;;;;;;:17;;;5985:8;5995;6005:13;5967:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5967:52:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5967:52:1;;;;6036:13;6029:20;;;;;5256:800;;;;;;:::o

Swarm Source

bzzr://d225f29a9cfede99ee394da27c9280e65026849b1eb9c0e55cbf5973b2277a94

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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.