Contract 0x2069043d7556b1207a505eb459d18d908df29b55 1

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa61a7f8e6ec45a9cd2ab4f6ca06997ada4530f14c274b44a6a68fd8e13fe62a1Deposit34321262021-11-29 12:23:022 hrs 34 mins ago0x729fc2d1ed7b062a3f6723c2565932fb4498a77d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000752249341 ETH
0xb4df16667cd6e977620d86f6fb8eacf43d698d9b6c8db7b047beee1af1600251Deposit34253702021-11-29 6:46:448 hrs 11 mins ago0x09f7c216d9b33d2c706dc6b66d8225a62c8c9694 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001196945925 ETH
0xdced3a1bc3a789289bb4bb5e75638d89ad21e1fc7ac22b92b7024694f936804bDeposit34253562021-11-29 6:45:348 hrs 12 mins ago0x6711e0da0389542be963c306e17f603a5ca8182d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001195460981 ETH
0xe0683dbad8df5b84e647ee3f601595bf83e8ec8464fb3cac16775a4d6037ef39Withdraw34165192021-11-28 22:21:5816 hrs 35 mins ago0xddfe74f671f6546f49a6d20909999cfe5f09ad78 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000960453193 ETH
0x0bcddeea1b248fc699eed7d57582fdf7298ac74885b180e014d658109fdd2270Deposit34159592021-11-28 22:00:4416 hrs 57 mins ago0xddfe74f671f6546f49a6d20909999cfe5f09ad78 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000756513208 ETH
0xee39c93ea9f4e744d3a8d1a070e94b7c682462491914c0336b55aab4ea797ea6Deposit34079112021-11-28 15:41:5623 hrs 15 mins ago0x0de0c29c82656802874abe625b49ec0bf4fd43aa IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001026131122 ETH
0x01f14758c11f7433e29d046d884bd58b01d740f159ff9cb96de79f063a505dceWithdraw34078752021-11-28 15:39:4023 hrs 18 mins ago0xc50eaaee441566b4ef4f1e3270d19f24223cddf4 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001027796279 ETH
0xd113b87ae6e1a1ee0d961cdbc8c708111501cf90b65cee30b8caaad7bf19af1aDeposit34017062021-11-28 10:44:231 day 4 hrs ago0xd269a5213a81901b0e5c2ac7861dbf106a72ddcc IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.00068532402 ETH
0xfeef1c06e5fe1927f76283d8b67fde6035e0835881e17ae9742860c3a5c5c317Withdraw34012532021-11-28 10:19:431 day 4 hrs ago0x1ec7aea71aa6b45fe98b8e424f99a5e9a442ec18 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001062341552 ETH
0x572e7b4eaf976c8918a8bfc385f92718ee58eb9b7361903f5379515895a591d8Deposit34007252021-11-28 9:52:451 day 5 hrs ago0x768a49d40b674a9ef54f5d1cf3d1054a749e905a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000690684576 ETH
0x08e2275f588bf9bf02011ccf1713a6464f037d3cb4171e9145aa7e7a0397e522Deposit33966122021-11-28 6:18:461 day 8 hrs ago0x31fe8439f34ed04514288a6f0f19f26c647cd6ad IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001083708112 ETH
0x871db451ab66d64fd3e1ab140e10fce8f7e3dc99b4a9423136c338e7376b5ac2Deposit33936952021-11-28 3:16:051 day 11 hrs ago0xee60e157a0d1f3bc987754492d1fa707ba7e33fc IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000941356196 ETH
0x94901194b62add788b8ae3993aabc08580b1aca430c42c40c3dabe386bc90016Withdraw33936812021-11-28 3:15:021 day 11 hrs ago0xee60e157a0d1f3bc987754492d1fa707ba7e33fc IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.00093909233 ETH
0xe26d89e7144ce289decf0f06a01f43fc7519dc1ae94cfbbc0fbcd562980e3c47Deposit33835762021-11-27 17:19:381 day 21 hrs ago0x768a49d40b674a9ef54f5d1cf3d1054a749e905a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001158492689 ETH
0x57782113219c20d90dfd5dc1ad10e9bd2bb522a35c1a1bc56fe693e362937bf4Deposit33834612021-11-27 17:13:411 day 21 hrs ago0xb58a0c101dd4dd9c29b965f944191023949a6fd0 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001158555652 ETH
0x7319bad3722008e41d487a8093761826894116f516f4cf2859e8e7f3452a5457Withdraw33819592021-11-27 15:46:111 day 23 hrs ago0xe0842049837f79732d688d0d080acee30b93578b IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000971693839 ETH
0x4fd350ae40653c92321a5e6d82e247b130e35e2f9ebc2f5a21fa5b7cc4faeddaDeposit33800582021-11-27 14:03:342 days 54 mins ago0x729fc2d1ed7b062a3f6723c2565932fb4498a77d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001213575168 ETH
0x800bd2af7e44d17f6a552f20c42ccc83b22825b6052da4f06ec6998e92e6ad66Deposit33786952021-11-27 12:50:242 days 2 hrs ago0xbcf176b97ac41432adfa2e9e466b8e9af2da7662 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001209183716 ETH
0x4f2687b7875668e23f58aacb4d573f5d96cb93e21d23e21dd12f0dfaf90817dfDeposit33781402021-11-27 12:19:082 days 2 hrs ago0x12ed0e4b0a14e2af9593cbc472a063fe183e5e12 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001212439285 ETH
0x94d3c075d0fb294db7950400a4dc689f499135e4f8184a4ba8bcef96e02b6d18Deposit33774652021-11-27 11:31:582 days 3 hrs ago0x9b1ca96d28f61f7af0df7f7980f0961b2f0f545f IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001213909514 ETH
0x4d9311729455221d8f8d4c07b5cb97fa45261225fd5234ffadd7ab16df633f10Deposit33770182021-11-27 11:04:442 days 3 hrs ago0x124ac4be876bb5826cb3c9600b13611ae63eb427 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001220313095 ETH
0xf834b0bc46fd39b9a0fced85c219ce4010076b7d32326bbc9f16e7652124e4ddDeposit33744292021-11-27 8:14:502 days 6 hrs ago0x6f3132060581c01eed77fb03ca3191d64280d173 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001264616006 ETH
0xa0006d16148e259115136bd0b62a98a21deda89208d62d370fd191267d010a51Deposit33691582021-11-27 1:13:462 days 13 hrs ago0x042a135bd342910ad7f67bbda74e3fd4125d1272 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001029124143 ETH
0x0af048811f2dc4d965f0dd888093fb1edf3c27c776bb30a707e3b63e8826f207Withdraw33691222021-11-27 1:10:572 days 13 hrs ago0x042a135bd342910ad7f67bbda74e3fd4125d1272 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001028170149 ETH
0xf35a1bc6fa1924d5fc21824c415110d84f9f50a41199474cb0fa9539b1720966Deposit33665032021-11-26 22:26:402 days 16 hrs ago0x1ace96d9c8a2863aabe419b650e99eec5248cfe3 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001029367785 ETH
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MiniChefV2

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 9 : IMasterChef.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
import "@boringcrypto/boring-solidity/contracts/libraries/BoringERC20.sol";

interface IMasterChef {
    using BoringERC20 for IERC20;
    struct UserInfo {
        uint256 amount;     // How many LP tokens the user has provided.
        uint256 rewardDebt; // Reward debt. See explanation below.
    }

    struct PoolInfo {
        IERC20 lpToken;           // Address of LP token contract.
        uint256 allocPoint;       // How many allocation points assigned to this pool. SADDLE to distribute per block.
        uint256 lastRewardBlock;  // Last block number that SADDLE distribution occurs.
        uint256 accSaddlePerShare; // Accumulated SADDLE per share, times 1e12. See below.
    }

    function poolInfo(uint256 pid) external view returns (IMasterChef.PoolInfo memory);
    function totalAllocPoint() external view returns (uint256);
    function deposit(uint256 _pid, uint256 _amount) external;
}

File 2 of 9 : BoringERC20.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.6.12;

import "../interfaces/IERC20.sol";

library BoringERC20 {
    function safeSymbol(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeName(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeDecimals(IERC20 token) internal view returns (uint8) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567));
        return success && data.length == 32 ? abi.decode(data, (uint8)) : 18;
    }

    function safeTransfer(IERC20 token, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed");
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed");
    }
}

File 3 of 9 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    // EIP 2612
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
}

File 4 of 9 : MiniChefV2.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

import "@boringcrypto/boring-solidity/contracts/libraries/BoringMath.sol";
import "@boringcrypto/boring-solidity/contracts/BoringBatchable.sol";
import "@boringcrypto/boring-solidity/contracts/BoringOwnable.sol";
import "./libraries/SignedSafeMath.sol";
import "./interfaces/IRewarder.sol";
import "./interfaces/IMasterChef.sol";

/// @notice The (older) MasterChef contract gives out a constant number of SADDLE tokens per block.
/// It is the only address with minting rights for SADDLE.
/// The idea for this MasterChef V2 (MCV2) contract is therefore to be the owner of a dummy token
/// that is deposited into the MasterChef V1 (MCV1) contract.
/// The allocation point for this pool on MCV1 is the total allocation point for all pools that receive double incentives.
contract MiniChefV2 is BoringOwnable, BoringBatchable {
    using BoringMath for uint256;
    using BoringMath128 for uint128;
    using BoringERC20 for IERC20;
    using SignedSafeMath for int256;

    /// @notice Info of each MCV2 user.
    /// `amount` LP token amount the user has provided.
    /// `rewardDebt` The amount of SADDLE entitled to the user.
    struct UserInfo {
        uint256 amount;
        int256 rewardDebt;
    }

    /// @notice Info of each MCV2 pool.
    /// `allocPoint` The amount of allocation points assigned to the pool.
    /// Also known as the amount of SADDLE to distribute per block.
    struct PoolInfo {
        uint128 accSaddlePerShare;
        uint64 lastRewardTime;
        uint64 allocPoint;
    }

    /// @notice Address of SADDLE contract.
    IERC20 public immutable SADDLE;

    /// @notice Info of each MCV2 pool.
    PoolInfo[] public poolInfo;
    /// @notice Address of the LP token for each MCV2 pool.
    IERC20[] public lpToken;
    /// @notice Address of each `IRewarder` contract in MCV2.
    IRewarder[] public rewarder;

    /// @notice Info of each user that stakes LP tokens.
    mapping (uint256 => mapping (address => UserInfo)) public userInfo;
    /// @dev Total allocation points. Must be the sum of all allocation points in all pools.
    uint256 public totalAllocPoint;

    uint256 public saddlePerSecond;
    uint256 private constant ACC_SADDLE_PRECISION = 1e12;

    event Deposit(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Harvest(address indexed user, uint256 indexed pid, uint256 amount);
    event LogPoolAddition(uint256 indexed pid, uint256 allocPoint, IERC20 indexed lpToken, IRewarder indexed rewarder);
    event LogSetPool(uint256 indexed pid, uint256 allocPoint, IRewarder indexed rewarder, bool overwrite);
    event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSaddlePerShare);
    event LogSaddlePerSecond(uint256 saddlePerSecond);

    /// @param _saddle The SADDLE token contract address.
    constructor(IERC20 _saddle) public {
        SADDLE = _saddle;
    }

    /// @notice Returns the number of MCV2 pools.
    function poolLength() public view returns (uint256 pools) {
        pools = poolInfo.length;
    }

    /// @notice Add a new LP to the pool. Can only be called by the owner.
    /// DO NOT add the same LP token more than once. Rewards will be messed up if you do.
    /// @param allocPoint AP of the new pool.
    /// @param _lpToken Address of the LP ERC-20 token.
    /// @param _rewarder Address of the rewarder delegate.
    function add(uint256 allocPoint, IERC20 _lpToken, IRewarder _rewarder) public onlyOwner {
        totalAllocPoint = totalAllocPoint.add(allocPoint);
        lpToken.push(_lpToken);
        rewarder.push(_rewarder);

        poolInfo.push(PoolInfo({
        allocPoint: allocPoint.to64(),
        lastRewardTime: block.timestamp.to64(),
        accSaddlePerShare: 0
        }));
        emit LogPoolAddition(lpToken.length.sub(1), allocPoint, _lpToken, _rewarder);
    }

    /// @notice Update the given pool's SADDLE allocation point and `IRewarder` contract. Can only be called by the owner.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _allocPoint New AP of the pool.
    /// @param _rewarder Address of the rewarder delegate.
    /// @param overwrite True if _rewarder should be `set`. Otherwise `_rewarder` is ignored.
    function set(uint256 _pid, uint256 _allocPoint, IRewarder _rewarder, bool overwrite) public onlyOwner {
        totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint);
        poolInfo[_pid].allocPoint = _allocPoint.to64();
        if (overwrite) { rewarder[_pid] = _rewarder; }
        emit LogSetPool(_pid, _allocPoint, overwrite ? _rewarder : rewarder[_pid], overwrite);
    }

    /// @notice Sets the saddle per second to be distributed. Can only be called by the owner.
    /// @param _saddlePerSecond The amount of Saddle to be distributed per second.
    function setSaddlePerSecond(uint256 _saddlePerSecond) public onlyOwner {
        saddlePerSecond = _saddlePerSecond;
        emit LogSaddlePerSecond(_saddlePerSecond);
    }

    /// @notice View function to see pending SADDLE on frontend.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _user Address of user.
    /// @return pending SADDLE reward for a given user.
    function pendingSaddle(uint256 _pid, address _user) external view returns (uint256 pending) {
        PoolInfo memory pool = poolInfo[_pid];
        UserInfo storage user = userInfo[_pid][_user];
        uint256 accSaddlePerShare = pool.accSaddlePerShare;
        uint256 lpSupply = lpToken[_pid].balanceOf(address(this));
        if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
            uint256 time = block.timestamp.sub(pool.lastRewardTime);
            uint256 saddleReward = time.mul(saddlePerSecond).mul(pool.allocPoint) / totalAllocPoint;
            accSaddlePerShare = accSaddlePerShare.add(saddleReward.mul(ACC_SADDLE_PRECISION) / lpSupply);
        }
        pending = int256(user.amount.mul(accSaddlePerShare) / ACC_SADDLE_PRECISION).sub(user.rewardDebt).toUInt256();
    }

    /// @notice Update reward variables for all pools. Be careful of gas spending!
    /// @param pids Pool IDs of all to be updated. Make sure to update all active pools.
    function massUpdatePools(uint256[] calldata pids) external {
        uint256 len = pids.length;
        for (uint256 i = 0; i < len; ++i) {
            updatePool(pids[i]);
        }
    }

    /// @notice Update reward variables of the given pool.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @return pool Returns the pool that was updated.
    function updatePool(uint256 pid) public returns (PoolInfo memory pool) {
        pool = poolInfo[pid];
        if (block.timestamp > pool.lastRewardTime) {
            uint256 lpSupply = lpToken[pid].balanceOf(address(this));
            if (lpSupply > 0) {
                uint256 time = block.timestamp.sub(pool.lastRewardTime);
                uint256 saddleReward = time.mul(saddlePerSecond).mul(pool.allocPoint) / totalAllocPoint;
                pool.accSaddlePerShare = pool.accSaddlePerShare.add((saddleReward.mul(ACC_SADDLE_PRECISION) / lpSupply).to128());
            }
            pool.lastRewardTime = block.timestamp.to64();
            poolInfo[pid] = pool;
            emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSaddlePerShare);
        }
    }

    /// @notice Deposit LP tokens to MCV2 for SADDLE allocation.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to deposit.
    /// @param to The receiver of `amount` deposit benefit.
    function deposit(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][to];

        // Effects
        user.amount = user.amount.add(amount);
        user.rewardDebt = user.rewardDebt.add(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, to, to, 0, user.amount);
        }

        lpToken[pid].safeTransferFrom(msg.sender, address(this), amount);

        emit Deposit(msg.sender, pid, amount, to);
    }

    /// @notice Withdraw LP tokens from MCV2.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens.
    function withdraw(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];

        // Effects
        user.rewardDebt = user.rewardDebt.sub(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));
        user.amount = user.amount.sub(amount);

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, 0, user.amount);
        }

        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
    }

    /// @notice Harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of SADDLE rewards.
    function harvest(uint256 pid, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSaddle = int256(user.amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION);
        uint256 _pendingSaddle = accumulatedSaddle.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSaddle;

        // Interactions
        if (_pendingSaddle != 0) {
            SADDLE.safeTransfer(to, _pendingSaddle);
        }

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward( pid, msg.sender, to, _pendingSaddle, user.amount);
        }

        emit Harvest(msg.sender, pid, _pendingSaddle);
    }

    /// @notice Withdraw LP tokens from MCV2 and harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens and SADDLE rewards.
    function withdrawAndHarvest(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSaddle = int256(user.amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION);
        uint256 _pendingSaddle = accumulatedSaddle.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSaddle.sub(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));
        user.amount = user.amount.sub(amount);

        // Interactions
        SADDLE.safeTransfer(to, _pendingSaddle);

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, _pendingSaddle, user.amount);
        }

        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
        emit Harvest(msg.sender, pid, _pendingSaddle);
    }

    /// @notice Withdraw without caring about rewards. EMERGENCY ONLY.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of the LP tokens.
    function emergencyWithdraw(uint256 pid, address to) public {
        UserInfo storage user = userInfo[pid][msg.sender];
        uint256 amount = user.amount;
        user.amount = 0;
        user.rewardDebt = 0;

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, 0, 0);
        }

        // Note: transfer can fail or succeed if `amount` is zero.
        lpToken[pid].safeTransfer(to, amount);
        emit EmergencyWithdraw(msg.sender, pid, amount, to);
    }
}

File 5 of 9 : BoringMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math)
library BoringMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");}
    function to128(uint256 a) internal pure returns (uint128 c) {
        require(a <= uint128(-1), "BoringMath: uint128 Overflow");
        c = uint128(a);
    }
    function to64(uint256 a) internal pure returns (uint64 c) {
        require(a <= uint64(-1), "BoringMath: uint64 Overflow");
        c = uint64(a);
    }
    function to32(uint256 a) internal pure returns (uint32 c) {
        require(a <= uint32(-1), "BoringMath: uint32 Overflow");
        c = uint32(a);
    }
}

library BoringMath128 {
    function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath64 {
    function add(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath32 {
    function add(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

File 6 of 9 : BoringBatchable.sol
// SPDX-License-Identifier: UNLICENSED
// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
// solhint-disable avoid-low-level-calls

import "./libraries/BoringERC20.sol";

// T1 - T4: OK
contract BaseBoringBatchable {
    function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        // If the _res length is less than 68, then the transaction failed silently (without a revert message)
        if (_returnData.length < 68) return "Transaction reverted silently";

        assembly {
            // Slice the sighash.
            _returnData := add(_returnData, 0x04)
        }
        return abi.decode(_returnData, (string)); // All that remains is the revert string
    }    
    
    // F3 - F9: OK
    // F1: External is ok here because this is the batch function, adding it to a batch makes no sense
    // F2: Calls in the batch may be payable, delegatecall operates in the same context, so each call in the batch has access to msg.value
    // C1 - C21: OK
    // C3: The length of the loop is fully under user control, so can't be exploited
    // C7: Delegatecall is only used on the same contract, so it's safe
    function batch(bytes[] calldata calls, bool revertOnFail) external payable returns(bool[] memory successes, bytes[] memory results) {
        // Interactions
        successes = new bool[](calls.length);
        results = new bytes[](calls.length);
        for (uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory result) = address(this).delegatecall(calls[i]);
            require(success || !revertOnFail, _getRevertMsg(result));
            successes[i] = success;
            results[i] = result;
        }
    }
}

// T1 - T4: OK
contract BoringBatchable is BaseBoringBatchable {
    // F1 - F9: OK
    // F6: Parameters can be used front-run the permit and the user's permit will fail (due to nonce or other revert)
    //     if part of a batch this could be used to grief once as the second call would not need the permit
    // C1 - C21: OK
    function permitToken(IERC20 token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
        // Interactions
        // X1 - X5
        token.permit(from, to, amount, deadline, v, r, s);
    }
}

File 7 of 9 : BoringOwnable.sol
// SPDX-License-Identifier: MIT
// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;

// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

// T1 - T4: OK
contract BoringOwnableData {
    // V1 - V5: OK
    address public owner;
    // V1 - V5: OK
    address public pendingOwner;
}

// T1 - T4: OK
contract BoringOwnable is BoringOwnableData {
    // E1: OK
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
            pendingOwner = address(0);
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;
        
        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    // M1 - M5: OK
    // C1 - C21: OK
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}

File 8 of 9 : SignedSafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

library SignedSafeMath {
    int256 constant private _INT256_MIN = -2**255;

    /**
     * @dev Returns the multiplication of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == _INT256_MIN), "SignedSafeMath: multiplication overflow");

        int256 c = a * b;
        require(c / a == b, "SignedSafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two signed integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0, "SignedSafeMath: division by zero");
        require(!(b == -1 && a == _INT256_MIN), "SignedSafeMath: division overflow");

        int256 c = a / b;

        return c;
    }

    /**
     * @dev Returns the subtraction of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a), "SignedSafeMath: subtraction overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a), "SignedSafeMath: addition overflow");

        return c;
    }

    function toUInt256(int256 a) internal pure returns (uint256) {
        require(a >= 0, "Integer < 0");
        return uint256(a);
    }
}

File 9 of 9 : IRewarder.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
import "@boringcrypto/boring-solidity/contracts/libraries/BoringERC20.sol";
interface IRewarder {
    using BoringERC20 for IERC20;
    function onSaddleReward(uint256 pid, address user, address recipient, uint256 saddleAmount, uint256 newLpAmount) external;
    function pendingTokens(uint256 pid, address user, uint256 saddleAmount) external view returns (IERC20[] memory, uint256[] memory);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  }
}

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_saddle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"saddlePerSecond","type":"uint256"}],"name":"LogSaddlePerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"},{"indexed":false,"internalType":"bool","name":"overwrite","type":"bool"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSaddlePerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"SADDLE","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}],"name":"batch","outputs":[{"internalType":"bool[]","name":"successes","type":"bool[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingSaddle","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permitToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSaddlePerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"pools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewarder","outputs":[{"internalType":"contract IRewarder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saddlePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"},{"internalType":"bool","name":"overwrite","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_saddlePerSecond","type":"uint256"}],"name":"setSaddlePerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSaddlePerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"internalType":"struct MiniChefV2.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int256","name":"rewardDebt","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawAndHarvest","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b5060405162002bea38038062002bea833981016040819052620000349162000089565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b031916608052620000b9565b6000602082840312156200009b578081fd5b81516001600160a01b0381168114620000b2578182fd5b9392505050565b60805160601c612b09620000e1600039806108a65280610b0152806119555250612b096000f3fe6080604052600436106101965760003560e01c80637b57f716116100e157806393f1a40b1161008a578063d1abb90711610064578063d1abb90714610453578063d2423b5114610473578063dcef47e214610494578063e30c3978146104a957610196565b806393f1a40b146103e5578063ab7de09814610413578063c346253d1461043357610196565b806388bba42f116100bb57806388bba42f146103905780638da5cb5b146103b05780638dbdbe6d146103c557610196565b80637b57f716146103305780637c516e941461035057806384962aba1461037057610196565b80632f940c701161014357806351eb05a61161011d57806351eb05a6146102c357806357a5b58c146102f057806378ed5d1f1461031057610196565b80632f940c701461026c5780634d6227161461028c5780634e71e0c8146102ae57610196565b80631526fe27116101745780631526fe271461020857806317caf6f11461023757806318fccc761461024c57610196565b8063078dfbe71461019b578063081e3eda146101bd5780630ad58d2f146101e8575b600080fd5b3480156101a757600080fd5b506101bb6101b636600461211c565b6104be565b005b3480156101c957600080fd5b506101d26105dd565b6040516101df9190612994565b60405180910390f35b3480156101f457600080fd5b506101bb6102033660046123e1565b6105e3565b34801561021457600080fd5b5061022861022336600461234c565b610795565b6040516101df93929190612960565b34801561024357600080fd5b506101d2610803565b34801561025857600080fd5b506101bb61026736600461237c565b610809565b34801561027857600080fd5b506101bb61028736600461237c565b6109c5565b34801561029857600080fd5b506102a1610aff565b6040516101df91906124cd565b3480156102ba57600080fd5b506101bb610b23565b3480156102cf57600080fd5b506102e36102de36600461234c565b610bc8565b6040516101df919061291d565b3480156102fc57600080fd5b506101bb61030b3660046121b0565b610f15565b34801561031c57600080fd5b506102a161032b36600461234c565b610f4b565b34801561033c57600080fd5b506101bb61034b36600461234c565b610f72565b34801561035c57600080fd5b506101bb61036b36600461220c565b610fdc565b34801561037c57600080fd5b506101d261038b36600461237c565b611069565b34801561039c57600080fd5b506101bb6103ab36600461240e565b6112ab565b3480156103bc57600080fd5b506102a1611430565b3480156103d157600080fd5b506101bb6103e03660046123e1565b61143f565b3480156103f157600080fd5b5061040561040036600461237c565b6115ec565b6040516101df9291906129dc565b34801561041f57600080fd5b506101bb61042e3660046123ab565b611610565b34801561043f57600080fd5b506102a161044e36600461234c565b611868565b34801561045f57600080fd5b506101bb61046e3660046123e1565b611875565b610486610481366004612166565b611ad3565b6040516101df92919061255f565b3480156104a057600080fd5b506101d2611c65565b3480156104b557600080fd5b506102a1611c6b565b6000546001600160a01b031633146104f15760405162461bcd60e51b81526004016104e8906127b3565b60405180910390fd5b81156105a4576001600160a01b03831615158061050b5750805b6105275760405162461bcd60e51b81526004016104e89061270e565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556001805490911690556105d8565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0385161790555b505050565b60025490565b6105eb6120b3565b6105f484610bc8565b6000858152600560209081526040808320338452909152902081519192509061064f9064e8d4a510009061063b9087906fffffffffffffffffffffffffffffffff16611c7a565b8161064257fe5b6001840154919004611cb7565b600182015580546106609085611d04565b815560048054600091908790811061067457fe5b6000918252602090912001546001600160a01b0316905080156107135781546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b916106e0918a9133918a916000919060040161299d565b600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050505b61074184866003898154811061072557fe5b6000918252602090912001546001600160a01b03169190611d27565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107859190612994565b60405180910390a4505050505050565b600281815481106107a257fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff8116915067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b60065481565b6108116120b3565b61081a83610bc8565b6000848152600560209081526040808320338452909152812082518154939450909264e8d4a510009161085f91906fffffffffffffffffffffffffffffffff16611c7a565b8161086657fe5b049050600061088a610885846001015484611cb790919063ffffffff16565b611e2a565b60018401839055905080156108cd576108cd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611d27565b6000600487815481106108dc57fe5b6000918252602090912001546001600160a01b03169050801561097a5783546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b91610947918b9133918c9189919060040161299d565b600060405180830381600087803b15801561096157600080fd5b505af1158015610975573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954846040516109b49190612994565b60405180910390a350505050505050565b600082815260056020908152604080832033845290915281208054828255600182018390556004805492939192869081106109fc57fe5b6000918252602090912001546001600160a01b031690508015610a9a576040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063cde63d9b90610a6790889033908990600090819060040161299d565b600060405180830381600087803b158015610a8157600080fd5b505af1158015610a95573d6000803e3d6000fd5b505050505b610aac84836003888154811061072557fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610af09190612994565b60405180910390a45050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b0316338114610b4e5760405162461bcd60e51b81526004016104e8906127e8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b610bd06120b3565b60028281548110610bdd57fe5b60009182526020918290206040805160608101825292909101546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff70010000000000000000000000000000000082048116948401859052780100000000000000000000000000000000000000000000000090910416908201529150421115610f1057600060038381548110610c6b57fe5b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a0823190610cbd9030906004016124cd565b60206040518083038186803b158015610cd557600080fd5b505afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d9190612364565b90508015610dca576000610d38836020015167ffffffffffffffff1642611d0490919063ffffffff16565b90506000600654610d6c856040015167ffffffffffffffff16610d6660075486611c7a90919063ffffffff16565b90611c7a565b81610d7357fe5b049050610db3610d9984610d8c8464e8d4a51000611c7a565b81610d9357fe5b04611e50565b85516fffffffffffffffffffffffffffffffff1690611e82565b6fffffffffffffffffffffffffffffffff16845250505b610dd342611eba565b67ffffffffffffffff1660208301526002805483919085908110610df357fe5b6000918252602091829020835191018054848401516040958601517fffffffffffffffffffffffffffffffff000000000000000000000000000000009092166fffffffffffffffffffffffffffffffff909416939093177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff948516021777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000093909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610f0692909186916129ea565b60405180910390a2505b919050565b8060005b81811015610f4557610f3c848483818110610f3057fe5b90506020020135610bc8565b50600101610f19565b50505050565b60038181548110610f5857fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610f9c5760405162461bcd60e51b81526004016104e8906127b3565b60078190556040517fc284691de232f1b12c9423199d8d3955a77f2bc981ef6567c9d6c82493cb292190610fd1908390612994565b60405180910390a150565b6040517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063d505accf9061102d908a908a908a908a908a908a908a90600401612505565b600060405180830381600087803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b505050505050505050505050565b60006110736120b3565b6002848154811061108057fe5b600091825260208083206040805160608101825291909301546fffffffffffffffffffffffffffffffff808216835267ffffffffffffffff7001000000000000000000000000000000008304811684860152780100000000000000000000000000000000000000000000000090920490911682850152888552600583528385206001600160a01b038916865290925291832082516003805494965091949216928890811061112a57fe5b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a082319061117c9030906004016124cd565b60206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612364565b9050836020015167ffffffffffffffff16421180156111ea57508015155b15611272576000611212856020015167ffffffffffffffff1642611d0490919063ffffffff16565b90506000600654611240876040015167ffffffffffffffff16610d6660075486611c7a90919063ffffffff16565b8161124757fe5b04905061126d8361125d8364e8d4a51000611c7a565b8161126457fe5b86919004611ee4565b935050505b600183015483546112a0916108859164e8d4a51000906112929087611c7a565b8161129957fe5b0490611cb7565b979650505050505050565b6000546001600160a01b031633146112d55760405162461bcd60e51b81526004016104e8906127b3565b61132a83611324600287815481106112e957fe5b600091825260209091200154600654907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16611d04565b90611ee4565b60065561133683611eba565b6002858154811061134357fe5b9060005260206000200160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080156113b957816004858154811061138a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806113e557600484815481106113cb57fe5b6000918252602090912001546001600160a01b03166113e7565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e186585846040516114229291906129cc565b60405180910390a350505050565b6000546001600160a01b031681565b6114476120b3565b61145084610bc8565b60008581526005602090815260408083206001600160a01b038716845290915290208054919250906114829085611ee4565b815581516114c29064e8d4a51000906114ae9087906fffffffffffffffffffffffffffffffff16611c7a565b816114b557fe5b6001840154919004611f07565b81600101819055506000600486815481106114d957fe5b6000918252602090912001546001600160a01b0316905080156115785781546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b91611545918a91899182916000919060040161299d565b600060405180830381600087803b15801561155f57600080fd5b505af1158015611573573d6000803e3d6000fd5b505050505b6115a833308760038a8154811061158b57fe5b6000918252602090912001546001600160a01b0316929190611f4d565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107859190612994565b60056020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b0316331461163a5760405162461bcd60e51b81526004016104e8906127b3565b6006546116479084611ee4565b6006556003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560048054938401815560009081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90930180549285169290911691909117905560408051606081019091529081526002906020810161170c42611eba565b67ffffffffffffffff16815260200161172486611eba565b67ffffffffffffffff908116909152825460018181018555600094855260209485902084519201805495850151604090950151841678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff95909416700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909716969096179290921694909417929092161790556003546001600160a01b03808416929085169161182c91611d04565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161185b9190612994565b60405180910390a4505050565b60048181548110610f5857fe5b61187d6120b3565b61188684610bc8565b6000858152600560209081526040808320338452909152812082518154939450909264e8d4a51000916118cb91906fffffffffffffffffffffffffffffffff16611c7a565b816118d257fe5b04905060006118f1610885846001015484611cb790919063ffffffff16565b905061193564e8d4a5100061192586600001516fffffffffffffffffffffffffffffffff1689611c7a90919063ffffffff16565b8161192c57fe5b84919004611cb7565b600184015582546119469087611d04565b835561197c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611d27565b60006004888154811061198b57fe5b6000918252602090912001546001600160a01b031690508015611a295783546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b916119f6918c9133918c9189919060040161299d565b600060405180830381600087803b158015611a1057600080fd5b505af1158015611a24573d6000803e3d6000fd5b505050505b611a3b868860038b8154811061072557fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611a7f9190612994565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611ac19190612994565b60405180910390a35050505050505050565b6060808367ffffffffffffffff81118015611aed57600080fd5b50604051908082528060200260200182016040528015611b17578160200160208202803683370190505b5091508367ffffffffffffffff81118015611b3157600080fd5b50604051908082528060200260200182016040528015611b6557816020015b6060815260200190600190039081611b505790505b50905060005b84811015611c5c576000606030888885818110611b8457fe5b9050602002810190611b969190612a1e565b604051611ba49291906124a1565b600060405180830381855af49150503d8060008114611bdf576040519150601f19603f3d011682016040523d82523d6000602084013e611be4565b606091505b50915091508180611bf3575085155b611bfc82612053565b90611c1a5760405162461bcd60e51b81526004016104e891906125f9565b5081858481518110611c2857fe5b60200260200101901515908115158152505080848481518110611c4757fe5b60209081029190910101525050600101611b6b565b50935093915050565b60075481565b6001546001600160a01b031681565b6000811580611c9557505080820282828281611c9257fe5b04145b611cb15760405162461bcd60e51b81526004016104e8906128e6565b92915050565b6000818303818312801590611ccc5750838113155b80611ce15750600083128015611ce157508381135b611cfd5760405162461bcd60e51b81526004016104e890612854565b9392505050565b80820382811115611cb15760405162461bcd60e51b81526004016104e89061260c565b60006060846001600160a01b031663a9059cbb8585604051602401611d4d929190612546565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d9b91906124b1565b6000604051808303816000865af19150503d8060008114611dd8576040519150601f19603f3d011682016040523d82523d6000602084013e611ddd565b606091505b5091509150818015611e07575080511580611e07575080806020019051810190611e0791906121f0565b611e235760405162461bcd60e51b81526004016104e89061267a565b5050505050565b600080821215611e4c5760405162461bcd60e51b81526004016104e890612643565b5090565b60006fffffffffffffffffffffffffffffffff821115611e4c5760405162461bcd60e51b81526004016104e890612745565b8181016fffffffffffffffffffffffffffffffff8083169082161015611cb15760405162461bcd60e51b81526004016104e89061277c565b600067ffffffffffffffff821115611e4c5760405162461bcd60e51b81526004016104e89061281d565b81810181811015611cb15760405162461bcd60e51b81526004016104e89061277c565b6000828201818312801590611f1c5750838112155b80611f315750600083128015611f3157508381125b611cfd5760405162461bcd60e51b81526004016104e8906126b1565b60006060856001600160a01b03166323b872dd868686604051602401611f75939291906124e1565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fc391906124b1565b6000604051808303816000865af19150503d8060008114612000576040519150601f19603f3d011682016040523d82523d6000602084013e612005565b606091505b509150915081801561202f57508051158061202f57508080602001905181019061202f91906121f0565b61204b5760405162461bcd60e51b81526004016104e8906128b1565b505050505050565b6060604482511015612099575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006020820152610f10565b60048201915081806020019051810190611cb19190612293565b604080516060810182526000808252602082018190529181019190915290565b60008083601f8401126120e4578182fd5b50813567ffffffffffffffff8111156120fb578182fd5b602083019150836020808302850101111561211557600080fd5b9250929050565b600080600060608486031215612130578283fd5b833561213b81612aad565b9250602084013561214b81612ac5565b9150604084013561215b81612ac5565b809150509250925092565b60008060006040848603121561217a578283fd5b833567ffffffffffffffff811115612190578384fd5b61219c868287016120d3565b909450925050602084013561215b81612ac5565b600080602083850312156121c2578182fd5b823567ffffffffffffffff8111156121d8578283fd5b6121e4858286016120d3565b90969095509350505050565b600060208284031215612201578081fd5b8151611cfd81612ac5565b600080600080600080600080610100898b031215612228578384fd5b883561223381612aad565b9750602089013561224381612aad565b9650604089013561225381612aad565b9550606089013594506080890135935060a089013560ff81168114612276578384fd5b979a969950949793969295929450505060c08201359160e0013590565b6000602082840312156122a4578081fd5b815167ffffffffffffffff808211156122bb578283fd5b818401915084601f8301126122ce578283fd5b8151818111156122dc578384fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116820101818110848211171561231a578586fd5b604052818152838201602001871015612331578485fd5b612342826020830160208701612a81565b9695505050505050565b60006020828403121561235d578081fd5b5035919050565b600060208284031215612375578081fd5b5051919050565b6000806040838503121561238e578182fd5b8235915060208301356123a081612aad565b809150509250929050565b6000806000606084860312156123bf578283fd5b8335925060208401356123d181612aad565b9150604084013561215b81612aad565b6000806000606084860312156123f5578283fd5b8335925060208401359150604084013561215b81612aad565b60008060008060808587031215612423578182fd5b8435935060208501359250604085013561243c81612aad565b9150606085013561244c81612ac5565b939692955090935050565b6000815180845261246f816020860160208601612a81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b600082516124c3818460208701612a81565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b8281101561259a57815115158452928401929084019060010161257c565b505050838103828501528085516125b18184612994565b91508192508381028201848801865b838110156125ea5785830385526125d8838351612457565b948701949250908601906001016125c0565b50909998505050505050505050565b600060208252611cfd6020830184612457565b60208082526015908201527f426f72696e674d6174683a20556e646572666c6f770000000000000000000000604082015260600190565b6020808252600b908201527f496e7465676572203c2030000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260408201527f666c6f7700000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516fffffffffffffffffffffffffffffffff16815260208083015167ffffffffffffffff90811691830191909152604092830151169181019190915260600190565b6fffffffffffffffffffffffffffffffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526fffffffffffffffffffffffffffffffff16604082015260600190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612a52578283fd5b83018035915067ffffffffffffffff821115612a6c578283fd5b60200191503681900382131561211557600080fd5b60005b83811015612a9c578181015183820152602001612a84565b83811115610f455750506000910152565b6001600160a01b0381168114612ac257600080fd5b50565b8015158114612ac257600080fdfea2646970667358221220cb341dc9dce12179167d534ee2407db8008dffe4d16bec80d289b62413ad9d6a64736f6c634300060c003300000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131

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

00000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131

-----Decoded View---------------
Arg [0] : _saddle (address): 0x75c9bc761d88f70156daf83aa010e84680baf131

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131


Deployed ByteCode Sourcemap

865:11561:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:472:1;;;;;;;;;;-1:-1:-1;774:472:1;;;;;:::i;:::-;;:::i;:::-;;3267:98:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8786:665;;;;;;;;;;-1:-1:-1;8786:665:5;;;;;:::i;:::-;;:::i;1734:26::-;;;;;;;;;;-1:-1:-1;1734:26:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2173:30::-;;;;;;;;;;;;;:::i;9626:792::-;;;;;;;;;;-1:-1:-1;9626:792:5;;;;;:::i;:::-;;:::i;11862:562::-;;;;;;;;;;-1:-1:-1;11862:562:5;;;;;:::i;:::-;;:::i;1657:30::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1295:348:1:-;;;;;;;;;;;;;:::i;6888:779:5:-;;;;;;;;;;-1:-1:-1;6888:779:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6521:188::-;;;;;;;;;;-1:-1:-1;6521:188:5;;;;;:::i;:::-;;:::i;1826:23::-;;;;;;;;;;-1:-1:-1;1826:23:5;;;;;:::i;:::-;;:::i;5144:173::-;;;;;;;;;;-1:-1:-1;5144:173:5;;;;;:::i;:::-;;:::i;2161:246:0:-;;;;;;;;;;-1:-1:-1;2161:246:0;;;;;:::i;:::-;;:::i;5541:802:5:-;;;;;;;;;;-1:-1:-1;5541:802:5;;;;;:::i;:::-;;:::i;4554:406::-;;;;;;;;;;-1:-1:-1;4554:406:5;;;;;:::i;:::-;;:::i;350:20:1:-;;;;;;;;;;;;;:::i;7906:674:5:-;;;;;;;;;;-1:-1:-1;7906:674:5;;;;;:::i;:::-;;:::i;2008:66::-;;;;;;;;;;-1:-1:-1;2008:66:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3697:469::-;;;;;;;;;;-1:-1:-1;3697:469:5;;;;;:::i;:::-;;:::i;1917:27::-;;;;;;;;;;-1:-1:-1;1917:27:5;;;;;:::i;:::-;;:::i;10695:987::-;;;;;;;;;;-1:-1:-1;10695:987:5;;;;;:::i;:::-;;:::i;1260:554:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2210:30:5:-;;;;;;;;;;;;;:::i;397:27:1:-;;;;;;;;;;;;;:::i;774:472::-;1746:5;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;;;;;;;;;879:6:::1;875:364;;;-1:-1:-1::0;;;;;933:22:1;::::1;::::0;::::1;::::0;:34:::1;;;959:8;933:34;925:68;;;;-1:-1:-1::0;;;925:68:1::1;;;;;;;:::i;:::-;1060:5;::::0;;1039:37:::1;::::0;-1:-1:-1;;;;;1039:37:1;;::::1;::::0;1060:5;::::1;::::0;1039:37:::1;::::0;::::1;1091:5;:16:::0;;-1:-1:-1;;;;;1091:16:1;::::1;::::0;;;::::1;;::::0;;;;1122:25;;;;::::1;::::0;;875:364:::1;;;1204:12;:23:::0;;;::::1;-1:-1:-1::0;;;;;1204:23:1;::::1;;::::0;;875:364:::1;774:472:::0;;;:::o;3267:98:5:-;3343:8;:15;;3267:98::o;8786:665::-;8862:20;;:::i;:::-;8885:15;8896:3;8885:10;:15::i;:::-;8910:21;8934:13;;;:8;:13;;;;;;;;8948:10;8934:25;;;;;;;9045:22;;8862:38;;-1:-1:-1;8934:25:5;9007:86;;2294:4;;9034:34;;:6;;:34;;:10;:34::i;:::-;:57;;;;;9007:15;;;;;9034:57;;9007:19;:86::i;:::-;8989:15;;;:104;9117:11;;:23;;9133:6;9117:15;:23::i;:::-;9103:37;;9197:8;:13;;9103:11;;9197:8;9206:3;;9197:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9197:13:5;;-1:-1:-1;9224:32:5;;9220:124;;9321:11;;9272:61;;;;;-1:-1:-1;;;;;9272:24:5;;;;;:61;;9297:3;;9302:10;;9314:2;;9318:1;;9321:11;9272:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9220:124;9354:37;9380:2;9384:6;9354:7;9362:3;9354:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9354:12:5;;:37;:25;:37::i;:::-;9441:2;-1:-1:-1;;;;;9407:37:5;9428:3;9416:10;-1:-1:-1;;;;;9407:37:5;;9433:6;9407:37;;;;;;:::i;:::-;;;;;;;;8786:665;;;;;;:::o;1734:26::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1734:26:5;;;;;;;;;;;;:::o;2173:30::-;;;;:::o;9626:792::-;9685:20;;:::i;:::-;9708:15;9719:3;9708:10;:15::i;:::-;9733:21;9757:13;;;:8;:13;;;;;;;;9771:10;9757:25;;;;;;;9842:22;;9826:11;;9685:38;;-1:-1:-1;9757:25:5;;2294:4;;9826:39;;:11;:39;;:15;:39::i;:::-;:62;;;;;;9792:97;;9899:22;9924:50;:38;9946:4;:15;;;9924:17;:21;;:38;;;;:::i;:::-;:48;:50::i;:::-;10004:15;;;:35;;;9899:75;-1:-1:-1;10078:19:5;;10074:89;;10113:39;-1:-1:-1;;;;;10113:6:5;:19;10133:2;10137:14;10113:19;:39::i;:::-;10173:19;10195:8;10204:3;10195:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10195:13:5;;-1:-1:-1;10222:32:5;;10218:138;;10333:11;;10270:75;;;;;-1:-1:-1;;;;;10270:24:5;;;;;:75;;10296:3;;10301:10;;10313:2;;10317:14;;10333:11;10270:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10218:138;10391:3;10379:10;-1:-1:-1;;;;;10371:40:5;;10396:14;10371:40;;;;;;:::i;:::-;;;;;;;;9626:792;;;;;;;:::o;11862:562::-;11931:21;11955:13;;;:8;:13;;;;;;;;11969:10;11955:25;;;;;;;12007:11;;12028:15;;;-1:-1:-1;12053:15:5;;:19;;;12105:8;:13;;11955:25;;12007:11;;11964:3;;12105:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12105:13:5;;-1:-1:-1;12132:32:5;;12128:114;;12180:51;;;;;-1:-1:-1;;;;;12180:24:5;;;;;:51;;12205:3;;12210:10;;12222:2;;12226:1;;;;12180:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12128:114;12319:37;12345:2;12349:6;12319:7;12327:3;12319:12;;;;;;;:37;12414:2;-1:-1:-1;;;;;12371:46:5;12401:3;12389:10;-1:-1:-1;;;;;12371:46:5;;12406:6;12371:46;;;;;;:::i;:::-;;;;;;;;11862:562;;;;;:::o;1657:30::-;;;:::o;1295:348:1:-;1363:12;;-1:-1:-1;;;;;1363:12:1;1423:10;:27;;1415:72;;;;-1:-1:-1;;;1415:72:1;;;;;;;:::i;:::-;1546:5;;;1525:42;;-1:-1:-1;;;;;1525:42:1;;;;1546:5;;;1525:42;;;1578:5;:21;;-1:-1:-1;;;;;1578:21:1;;;;;;;;;;;1610:25;;;;;;;1295:348::o;6888:779:5:-;6937:20;;:::i;:::-;6976:8;6985:3;6976:13;;;;;;;;;;;;;;;;;6969:20;;;;;;;;6976:13;;;;6969:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7003:15:5;:37;6999:662;;;7056:16;7075:7;7083:3;7075:12;;;;;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;7075:12:5;;;;:22;;:37;;7106:4;;7075:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7056:56;-1:-1:-1;7130:12:5;;7126:341;;7162:12;7177:40;7197:4;:19;;;7177:40;;:15;:19;;:40;;;;:::i;:::-;7162:55;;7235:20;7307:15;;7258:46;7288:4;:15;;;7258:46;;:25;7267:15;;7258:4;:8;;:25;;;;:::i;:::-;:29;;:46::i;:::-;:64;;;;;;;-1:-1:-1;7365:87:5;7392:59;7434:8;7393:38;7258:64;2294:4;7393:16;:38::i;:::-;:49;;;;;;7392:57;:59::i;:::-;7365:22;;:26;;;;:87::i;:::-;7340:112;;;;-1:-1:-1;;7126:341:5;7502:22;:15;:20;:22::i;:::-;7480:44;;:19;;;:44;7538:8;:13;;7480:4;;7538:8;7547:3;;7538:13;;;;;;;;;;;;;;;:20;;:13;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7596:19;;;7627:22;;7577:73;;7591:3;;7577:73;;;;7596:19;;7617:8;;7577:73;:::i;:::-;;;;;;;;6999:662;;6888:779;;;:::o;6521:188::-;6604:4;6590:11;6625:78;6649:3;6645:1;:7;6625:78;;;6673:19;6684:4;;6689:1;6684:7;;;;;;;;;;;;;6673:10;:19::i;:::-;-1:-1:-1;6654:3:5;;6625:78;;;;6521:188;;;:::o;1826:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1826:23:5;;-1:-1:-1;1826:23:5;:::o;5144:173::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;5225:15:5::1;:34:::0;;;5274:36:::1;::::0;::::1;::::0;::::1;::::0;5243:16;;5274:36:::1;:::i;:::-;;;;;;;;5144:173:::0;:::o;2161:246:0:-;2350:49;;;;;-1:-1:-1;;;;;2350:12:0;;;;;:49;;2363:4;;2369:2;;2373:6;;2381:8;;2391:1;;2394;;2397;;2350:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2161:246;;;;;;;;:::o;5541:802:5:-;5616:15;5643:20;;:::i;:::-;5666:8;5675:4;5666:14;;;;;;;;;;;;;;;;5643:37;;;;;;;;5666:14;;;;5643:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:14;;;:8;:14;;;;;-1:-1:-1;;;;;5714:21:5;;;;;;;;;;5773:22;;5824:7;:13;;5643:37;;-1:-1:-1;5714:21:5;;5745:50;;;5723:4;;5824:13;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;;;5824:13:5;;;;:23;;:38;;5856:4;;5824:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5805:57;;5894:4;:19;;;5876:37;;:15;:37;:54;;;;-1:-1:-1;5917:13:5;;;5876:54;5872:347;;;5946:12;5961:40;5981:4;:19;;;5961:40;;:15;:19;;:40;;;;:::i;:::-;5946:55;;6015:20;6087:15;;6038:46;6068:4;:15;;;6038:46;;:25;6047:15;;6038:4;:8;;:25;;;;:::i;:46::-;:64;;;;;;;-1:-1:-1;6136:72:5;6199:8;6158:38;6038:64;2294:4;6158:16;:38::i;:::-;:49;;;;;6136:17;;6158:49;;6136:21;:72::i;:::-;6116:92;;5872:347;;;6308:15;;;;6245:11;;6238:98;;:86;;2294:4;;6245:34;;6261:17;6245:15;:34::i;:::-;:57;;;;;;;6238:69;:86::i;:98::-;6228:108;5541:802;-1:-1:-1;;;;;;;5541:802:5:o;4554:406::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;4684:63:5::1;4735:11;4684:46;4704:8;4713:4;4704:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:25:::0;4684:15:::1;::::0;;4704:25;;::::1;;;4684:19;:46::i;:::-;:50:::0;::::1;:63::i;:::-;4666:15;:81:::0;4785:18:::1;:11:::0;:16:::1;:18::i;:::-;4757:8;4766:4;4757:14;;;;;;;;;;;;;;;:25;;;:46;;;;;;;;;;;;;;;;;;4817:9;4813:46;;;4847:9;4830:8;4839:4;4830:14;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1::0;;;;;4830:26:5::1;;;;;-1:-1:-1::0;;;;;4830:26:5::1;;;;;;4813:46;4903:9;:38;;4927:8;4936:4;4927:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;4927:14:5::1;4903:38;;;4915:9;4903:38;-1:-1:-1::0;;;;;4873:80:5::1;4884:4;4873:80;4890:11;4943:9;4873:80;;;;;;;:::i;:::-;;;;;;;;4554:406:::0;;;;:::o;350:20:1:-;;;-1:-1:-1;;;;;350:20:1;;:::o;7906:674:5:-;7981:20;;:::i;:::-;8004:15;8015:3;8004:10;:15::i;:::-;8029:21;8053:13;;;:8;:13;;;;;;;;-1:-1:-1;;;;;8053:17:5;;;;;;;;;8114:11;;7981:38;;-1:-1:-1;8053:17:5;8114:23;;8130:6;8114:15;:23::i;:::-;8100:37;;8203:22;;8165:86;;2294:4;;8192:34;;:6;;:34;;:10;:34::i;:::-;:57;;;;;8165:15;;;;;8192:57;;8165:19;:86::i;:::-;8147:4;:15;;:104;;;;8286:19;8308:8;8317:3;8308:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8308:13:5;;-1:-1:-1;8335:32:5;;8331:116;;8424:11;;8383:53;;;;;-1:-1:-1;;;;;8383:24:5;;;;;:53;;8408:3;;8413:2;;;;8421:1;;8424:11;8383:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8331:116;8457:64;8487:10;8507:4;8514:6;8457:7;8465:3;8457:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8457:12:5;;:64;;:29;:64::i;:::-;8570:2;-1:-1:-1;;;;;8537:36:5;8557:3;8545:10;-1:-1:-1;;;;;8537:36:5;;8562:6;8537:36;;;;;;:::i;2008:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3697:469::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;3813:15:5::1;::::0;:31:::1;::::0;3833:10;3813:19:::1;:31::i;:::-;3795:15;:49:::0;3854:7:::1;:22:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;3854:22:5;;::::1;::::0;;;::::1;;::::0;;;3886:8:::1;:24:::0;;;;::::1;::::0;;-1:-1:-1;3886:24:5;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3935:137:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;3921:8:::1;::::0;3854:22:::1;3935:137:::0;::::1;4009:22;:15;:20;:22::i;:::-;3935:137;;;;;;3966:17;:10;:15;:17::i;:::-;3935:137;::::0;;::::1;::::0;;;3921:152;;::::1;::::0;;::::1;::::0;;-1:-1:-1;3921:152:5;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;4104:7:::1;:14:::0;-1:-1:-1;;;;;4088:71:5;;::::1;::::0;;;::::1;::::0;4104:21:::1;::::0;:18:::1;:21::i;:::-;4088:71;4127:10;4088:71;;;;;;:::i;:::-;;;;;;;;3697:469:::0;;;:::o;1917:27::-;;;;;;;;;;10695:987;10781:20;;:::i;:::-;10804:15;10815:3;10804:10;:15::i;:::-;10829:21;10853:13;;;:8;:13;;;;;;;;10867:10;10853:25;;;;;;;10938:22;;10922:11;;10781:38;;-1:-1:-1;10853:25:5;;2294:4;;10922:39;;:11;:39;;:15;:39::i;:::-;:62;;;;;;10888:97;;10995:22;11020:50;:38;11042:4;:15;;;11020:17;:21;;:38;;;;:::i;:50::-;10995:75;;11118:88;2294:4;11147:34;11158:4;:22;;;11147:34;;:6;:10;;:34;;;;:::i;:::-;:57;;;;;11118:17;;11147:57;;11118:21;:88::i;:::-;11100:15;;;:106;11230:11;;:23;;11246:6;11230:15;:23::i;:::-;11216:37;;11288:39;-1:-1:-1;;;;;11288:6:5;:19;11308:2;11312:14;11288:19;:39::i;:::-;11338:19;11360:8;11369:3;11360:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11360:13:5;;-1:-1:-1;11387:32:5;;11383:137;;11497:11;;11435:74;;;;;-1:-1:-1;;;;;11435:24:5;;;;;:74;;11460:3;;11465:10;;11477:2;;11481:14;;11497:11;11435:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11383:137;11530:37;11556:2;11560:6;11530:7;11538:3;11530:12;;;;;;;:37;11617:2;-1:-1:-1;;;;;11583:37:5;11604:3;11592:10;-1:-1:-1;;;;;11583:37:5;;11609:6;11583:37;;;;;;:::i;:::-;;;;;;;;11655:3;11643:10;-1:-1:-1;;;;;11635:40:5;;11660:14;11635:40;;;;;;:::i;:::-;;;;;;;;10695:987;;;;;;;;:::o;1260:554:0:-;1343:23;;1451:5;1440:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1440:24:0;-1:-1:-1;1428:36:0;-1:-1:-1;1497:5:0;1485:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1475:35;;1526:9;1521:286;1541:16;;;1521:286;;;1580:12;1594:19;1625:4;1644:5;;1650:1;1644:8;;;;;;;;;;;;;;;;;;:::i;:::-;1617:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:74;;;;1676:7;:24;;;;1688:12;1687:13;1676:24;1702:21;1716:6;1702:13;:21::i;:::-;1668:56;;;;;-1:-1:-1;;;1668:56:0;;;;;;;;:::i;:::-;;1754:7;1739:9;1749:1;1739:12;;;;;;;;;;;;;:22;;;;;;;;;;;1789:6;1776:7;1784:1;1776:10;;;;;;;;;;;;;;;;;:19;-1:-1:-1;;1559:3:0;;1521:286;;;;1260:554;;;;;;:::o;2210:30:5:-;;;;:::o;397:27:1:-;;;-1:-1:-1;;;;;397:27:1;;:::o;470:137:4:-;528:9;548:6;;;:28;;-1:-1:-1;;563:5:4;;;575:1;570;563:5;570:1;558:13;;;;;:18;548:28;540:65;;;;-1:-1:-1;;;540:65:4;;;;;;;:::i;:::-;470:137;;;;:::o;1895:213:8:-;1951:6;1980:5;;;2004:6;;;;;;:16;;;2019:1;2014;:6;;2004:16;2003:38;;;;2030:1;2026;:5;:14;;;;;2039:1;2035;:5;2026:14;1995:87;;;;-1:-1:-1;;;1995:87:8;;;;;;;:::i;:::-;2100:1;1895:213;-1:-1:-1;;;1895:213:8:o;342:122:4:-;425:5;;;420:16;;;;412:50;;;;-1:-1:-1;;;412:50:4;;;;;;;:::i;951:304:3:-;1036:12;1050:17;1079:5;-1:-1:-1;;;;;1071:19:3;1114:10;1126:2;1130:6;1091:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1071:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:103;;;;1157:7;:57;;;;-1:-1:-1;1169:11:3;;:16;;:44;;;1200:4;1189:24;;;;;;;;;;;;:::i;:::-;1149:98;;;;-1:-1:-1;;;1149:98:3;;;;;;;:::i;:::-;951:304;;;;;:::o;2557:135:8:-;2609:7;2641:1;2636;:6;;2628:30;;;;-1:-1:-1;;;2628:30:8;;;;;;;:::i;:::-;-1:-1:-1;2683:1:8;2557:135::o;613:161:4:-;662:9;692:16;;;;684:57;;;;-1:-1:-1;;;684:57:4;;;;;;;:::i;1134:125::-;1217:5;;;1212:16;;;;;;;;;1204:53;;;;-1:-1:-1;;;1204:53:4;;;;;;;:::i;780:156::-;828:8;857:15;;;;849:55;;;;-1:-1:-1;;;849:55:4;;;;;;;:::i;211:125::-;294:5;;;289:16;;;;281:53;;;;-1:-1:-1;;;281:53:4;;;;;;;:::i;2341:210:8:-;2397:6;2426:5;;;2450:6;;;;;;:16;;;2465:1;2460;:6;;2450:16;2449:38;;;;2476:1;2472;:5;:14;;;;;2485:1;2481;:5;2472:14;2441:84;;;;-1:-1:-1;;;2441:84:8;;;;;;;:::i;1263:332:3:-;1366:12;1380:17;1409:5;-1:-1:-1;;;;;1401:19:3;1444:10;1456:4;1462:2;1466:6;1421:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:109;;;;1493:7;:57;;;;-1:-1:-1;1505:11:3;;:16;;:44;;;1536:4;1525:24;;;;;;;;;;;;:::i;:::-;1485:102;;;;-1:-1:-1;;;1485:102:3;;;;;;;:::i;:::-;1263:332;;;;;;:::o;304:496:0:-;376:13;539:2;518:11;:18;:23;514:67;;;-1:-1:-1;543:38:0;;;;;;;;;;;;;;;;;;;514:67;685:4;672:11;668:22;653:37;;729:11;718:33;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;158:363::-;;;299:3;292:4;284:6;280:17;276:27;266:2;;-1:-1;;307:12;266:2;-1:-1;337:20;;377:18;366:30;;363:2;;;-1:-1;;399:12;363:2;443:4;435:6;431:17;419:29;;494:3;443:4;;478:6;474:17;435:6;460:32;;457:41;454:2;;;511:1;;501:12;454:2;259:262;;;;;:::o;2512:479::-;;;;2644:2;2632:9;2623:7;2619:23;2615:32;2612:2;;;-1:-1;;2650:12;2612:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2702:63;-1:-1;2802:2;2838:22;;971:20;996:30;971:20;996:30;:::i;:::-;2810:60;-1:-1;2907:2;2943:22;;971:20;996:30;971:20;996:30;:::i;:::-;2915:60;;;;2606:385;;;;;:::o;2998:538::-;;;;3162:2;3150:9;3141:7;3137:23;3133:32;3130:2;;;-1:-1;;3168:12;3130:2;3226:17;3213:31;3264:18;3256:6;3253:30;3250:2;;;-1:-1;;3286:12;3250:2;3324:91;3407:7;3398:6;3387:9;3383:22;3324:91;:::i;:::-;3306:109;;-1:-1;3306:109;-1:-1;;3452:2;3488:22;;971:20;996:30;971:20;996:30;:::i;3543:397::-;;;3682:2;3670:9;3661:7;3657:23;3653:32;3650:2;;;-1:-1;;3688:12;3650:2;3746:17;3733:31;3784:18;3776:6;3773:30;3770:2;;;-1:-1;;3806:12;3770:2;3844:80;3916:7;3907:6;3896:9;3892:22;3844:80;:::i;:::-;3826:98;;;;-1:-1;3644:296;-1:-1;;;;3644:296::o;3947:257::-;;4059:2;4047:9;4038:7;4034:23;4030:32;4027:2;;;-1:-1;;4065:12;4027:2;1119:6;1113:13;1131:30;1155:5;1131:30;:::i;4211:1145::-;;;;;;;;;4446:3;4434:9;4425:7;4421:23;4417:33;4414:2;;;-1:-1;;4453:12;4414:2;1404:6;1391:20;1416:47;1457:5;1416:47;:::i;:::-;4505:77;-1:-1;4619:2;4658:22;;72:20;97:33;72:20;97:33;:::i;:::-;4627:63;-1:-1;4727:2;4766:22;;72:20;97:33;72:20;97:33;:::i;:::-;4735:63;-1:-1;4835:2;4874:22;;2168:20;;-1:-1;4943:3;4983:22;;2168:20;;-1:-1;5052:3;5090:22;;2444:20;37495:4;37484:16;;40106:33;;40096:2;;-1:-1;;40143:12;40096:2;4408:948;;;;-1:-1;4408:948;;;;;;5061:61;;-1:-1;;;5159:3;5199:22;;1240:20;;5268:3;5308:22;1240:20;;4408:948::o;5363:362::-;;5488:2;5476:9;5467:7;5463:23;5459:32;5456:2;;;-1:-1;;5494:12;5456:2;5545:17;5539:24;5583:18;;5575:6;5572:30;5569:2;;;-1:-1;;5605:12;5569:2;5692:6;5681:9;5677:22;;;1762:3;1755:4;1747:6;1743:17;1739:27;1729:2;;-1:-1;;1770:12;1729:2;1810:6;1804:13;5583:18;34251:6;34248:30;34245:2;;;-1:-1;;34281:12;34245:2;33914;33908:9;5488:2;34354:9;1755:4;34339:6;34335:17;34331:33;33944:6;33940:17;;34051:6;34039:10;34036:22;5583:18;34003:10;34000:34;33997:62;33994:2;;;-1:-1;;34062:12;33994:2;33914;34081:22;1903:21;;;2003:16;;;5488:2;2003:16;2000:25;-1:-1;1997:2;;;-1:-1;;2028:12;1997:2;2048:39;2080:6;5488:2;1979:5;1975:16;5488:2;1945:6;1941:17;2048:39;:::i;:::-;5625:84;5450:275;-1:-1;;;;;;5450:275::o;5732:241::-;;5836:2;5824:9;5815:7;5811:23;5807:32;5804:2;;;-1:-1;;5842:12;5804:2;-1:-1;2168:20;;5798:175;-1:-1;5798:175::o;5980:263::-;;6095:2;6083:9;6074:7;6070:23;6066:32;6063:2;;;-1:-1;;6101:12;6063:2;-1:-1;2316:13;;6057:186;-1:-1;6057:186::o;6250:366::-;;;6371:2;6359:9;6350:7;6346:23;6342:32;6339:2;;;-1:-1;;6377:12;6339:2;2181:6;2168:20;6429:63;;6529:2;6572:9;6568:22;72:20;97:33;124:5;97:33;:::i;:::-;6537:63;;;;6333:283;;;;;:::o;6623:555::-;;;;6793:2;6781:9;6772:7;6768:23;6764:32;6761:2;;;-1:-1;;6799:12;6761:2;2181:6;2168:20;6851:63;;6951:2;7008:9;7004:22;1391:20;1416:47;1457:5;1416:47;:::i;:::-;6959:77;-1:-1;7073:2;7130:22;;1560:20;1585:51;1560:20;1585:51;:::i;7185:491::-;;;;7323:2;7311:9;7302:7;7298:23;7294:32;7291:2;;;-1:-1;;7329:12;7291:2;2181:6;2168:20;7381:63;;7481:2;7524:9;7520:22;2168:20;7489:63;;7589:2;7632:9;7628:22;72:20;97:33;124:5;97:33;:::i;7683:647::-;;;;;7853:3;7841:9;7832:7;7828:23;7824:33;7821:2;;;-1:-1;;7860:12;7821:2;2181:6;2168:20;7912:63;;8012:2;8055:9;8051:22;2168:20;8020:63;;8120:2;8181:9;8177:22;1560:20;1585:51;1630:5;1585:51;:::i;:::-;8128:81;-1:-1;8246:2;8282:22;;971:20;996:30;971:20;996:30;:::i;:::-;7815:515;;;;-1:-1;7815:515;;-1:-1;;7815:515::o;11301:323::-;;11433:5;34866:12;35681:6;35676:3;35669:19;11516:52;11561:6;35718:4;35713:3;35709:14;35718:4;11542:5;11538:16;11516:52;:::i;:::-;39230:2;39210:14;39226:7;39206:28;11580:39;;;;35718:4;11580:39;;11381:243;-1:-1;;11381:243::o;18930:291::-;;38793:6;38788:3;38783;38770:30;38831:16;;38824:27;;;38831:16;19074:147;-1:-1;19074:147::o;19228:271::-;;11791:5;34866:12;11902:52;11947:6;11942:3;11935:4;11928:5;11924:16;11902:52;:::i;:::-;11966:16;;;;;19362:137;-1:-1;;19362:137::o;19506:222::-;-1:-1;;;;;37176:54;;;;8925:37;;19633:2;19618:18;;19604:124::o;19735:444::-;-1:-1;;;;;37176:54;;;8925:37;;37176:54;;;;20082:2;20067:18;;8925:37;20165:2;20150:18;;10911:37;;;;19918:2;19903:18;;19889:290::o;20186:884::-;-1:-1;;;;;37176:54;;;8925:37;;37176:54;;;;20642:2;20627:18;;8925:37;20725:2;20710:18;;10911:37;;;;20808:2;20793:18;;10911:37;;;;37495:4;37484:16;20887:3;20872:19;;18883:35;20971:3;20956:19;;10911:37;21055:3;21040:19;;10911:37;;;;20477:3;20462:19;;20448:622::o;21077:333::-;-1:-1;;;;;37176:54;;;;8925:37;;21396:2;21381:18;;10911:37;21232:2;21217:18;;21203:207::o;21417:653::-;21684:2;21698:47;;;34866:12;;21669:18;;;35669:19;;;21417:653;;35718:4;;35709:14;;;;34556;;;21417:653;9392:251;9417:6;9414:1;9411:13;9392:251;;;9478:13;;36583;36576:21;10683:34;;8479:14;;;;35403;;;;9439:1;9432:9;9392:251;;;9396:14;;;21909:9;21903:4;21899:20;35718:4;21883:9;21879:18;21872:48;21934:126;9920:5;34866:12;9939:95;10027:6;10022:3;9939:95;:::i;:::-;9932:102;;;;;35718:4;10091:6;10087:17;10082:3;10078:27;35718:4;10185:5;34556:14;-1:-1;10224:357;10249:6;10246:1;10243:13;10224:357;;;10311:9;10305:4;10301:20;10296:3;10289:33;8627:64;8687:3;10356:6;10350:13;8627:64;:::i;:::-;10560:14;;;;10370:90;-1:-1;35403:14;;;;9439:1;10264:9;10224:357;;;-1:-1;21926:134;;21655:415;-1:-1;;;;;;;;;21655:415::o;22599:310::-;;22746:2;22767:17;22760:47;22821:78;22746:2;22735:9;22731:18;22885:6;22821:78;:::i;22916:416::-;23116:2;23130:47;;;13169:2;23101:18;;;35669:19;13205:23;35709:14;;;13185:44;13248:12;;;23087:245::o;23339:416::-;23539:2;23553:47;;;13499:2;23524:18;;;35669:19;13535:13;35709:14;;;13515:34;13568:12;;;23510:245::o;23762:416::-;23962:2;23976:47;;;13819:2;23947:18;;;35669:19;13855:30;35709:14;;;13835:51;13905:12;;;23933:245::o;24185:416::-;24385:2;24399:47;;;14156:2;24370:18;;;35669:19;14192:34;35709:14;;;14172:55;14261:3;14247:12;;;14240:25;14284:12;;;24356:245::o;24608:416::-;24808:2;24822:47;;;14535:2;24793:18;;;35669:19;14571:23;35709:14;;;14551:44;14614:12;;;24779:245::o;25031:416::-;25231:2;25245:47;;;14865:2;25216:18;;;35669:19;14901:30;35709:14;;;14881:51;14951:12;;;25202:245::o;25454:416::-;25654:2;25668:47;;;15202:2;25639:18;;;35669:19;15238:26;35709:14;;;15218:47;15284:12;;;25625:245::o;25877:416::-;26077:2;26091:47;;;26062:18;;;35669:19;15571:34;35709:14;;;15551:55;15625:12;;;26048:245::o;26300:416::-;26500:2;26514:47;;;26485:18;;;35669:19;15912:34;35709:14;;;15892:55;15966:12;;;26471:245::o;26723:416::-;26923:2;26937:47;;;16217:2;26908:18;;;35669:19;16253:29;35709:14;;;16233:50;16302:12;;;26894:245::o;27146:416::-;27346:2;27360:47;;;16553:2;27331:18;;;35669:19;16589:34;35709:14;;;16569:55;16658:6;16644:12;;;16637:28;16684:12;;;27317:245::o;27569:416::-;27769:2;27783:47;;;27754:18;;;35669:19;16971:34;35709:14;;;16951:55;17025:12;;;27740:245::o;27992:416::-;28192:2;28206:47;;;17276:2;28177:18;;;35669:19;17312:26;35709:14;;;17292:47;17358:12;;;28163:245::o;28415:322::-;17669:23;;37067:34;37056:46;18170:37;;17850:4;17839:16;;;17833:23;37393:18;37382:30;;;17908:14;;;18651:36;;;;18008:4;17997:16;;;17991:23;37382:30;18066:14;;;18651:36;;;;28592:2;28577:18;;28563:174::o;28744:436::-;37067:34;37056:46;;;;18170:37;;37393:18;37382:30;;;29085:2;29070:18;;18651:36;37382:30;29166:2;29151:18;;18651:36;28923:2;28908:18;;28894:286::o;29187:222::-;10911:37;;;29314:2;29299:18;;29285:124::o;29416:716::-;10911:37;;;-1:-1;;;;;37176:54;;;29852:2;29837:18;;8784:58;37176:54;;;;29935:2;29920:18;;8925:37;30026:2;30011:18;;12520:58;;;;30117:3;30102:19;;12520:58;29679:3;29664:19;;29650:482::o;32228:321::-;10911:37;;;36583:13;36576:21;32535:2;32520:18;;10683:34;32377:2;32362:18;;32348:201::o;32556:329::-;10911:37;;;32871:2;32856:18;;10911:37;32709:2;32694:18;;32680:205::o;32892:440::-;37393:18;37382:30;;;;18651:36;;33235:2;33220:18;;10911:37;;;;37067:34;37056:46;33318:2;33303:18;;18410:50;33073:2;33058:18;;33044:288::o;33339:506::-;;;33474:11;33461:25;33525:48;33549:8;33533:14;33529:29;33525:48;33505:18;33501:73;33491:2;;-1:-1;;33578:12;33491:2;33605:33;;33659:18;;;-1:-1;33697:18;33686:30;;33683:2;;;-1:-1;;33719:12;33683:2;33564:4;33747:13;;-1:-1;33533:14;33779:38;;;33769:49;;33766:2;;;33831:1;;33821:12;38866:268;38931:1;38938:101;38952:6;38949:1;38946:13;38938:101;;;39019:11;;;39013:18;39000:11;;;38993:39;38974:2;38967:10;38938:101;;;39054:6;39051:1;39048:13;39045:2;;;-1:-1;;38931:1;39101:16;;39094:27;38915:219::o;39247:117::-;-1:-1;;;;;39334:5;37176:54;39309:5;39306:35;39296:2;;39355:1;;39345:12;39296:2;39290:74;:::o;39371:111::-;39452:5;36583:13;36576:21;39430:5;39427:32;39417:2;;39473:1;;39463:12

Swarm Source

ipfs://cb341dc9dce12179167d534ee2407db8008dffe4d16bec80d289b62413ad9d6a
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.