Contract 0x2069043d7556B1207a505eb459D18d908DF29b55 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x02b8d0033ec747c402c67b3b0c403ed83d2b1ee627539bf26587190241ec16ffDeposit131583462022-05-28 21:39:431 hr 52 mins ago0x560dcb016e60aba833a5b4f8f1f379518d357f79 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000113962935 ETH
0xdd457e165f42feb87e4110a791ab7f365bbc248d7ffb7cebf8ae61321a3107edDeposit131569312022-05-28 20:45:552 hrs 45 mins ago0x32a59b87352e980dd6ab1baf462696d28e63525d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000127125575 ETH
0xdffd9e55cd02b4a2077683ee78dfde2e34f4ac3bbb335efe55c75b0262ce94a4Deposit131559122022-05-28 20:11:183 hrs 20 mins ago0xc2318065ae9f18811270b55a5ff8168afbda8a5b IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000130540129 ETH
0x5e6e1459c27f22ec12442c4c2f387fbf5f870b53ce0f220d5ad6e8dffb125f64Deposit131558422022-05-28 20:09:313 hrs 22 mins ago0x02429a7d431433106fdd5fb72e86bc6677159224 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000130539869 ETH
0xe593e626b3de95ae1be713109252c5b221028f50c492412fdd1679f4541965e6Deposit131558212022-05-28 20:08:133 hrs 23 mins ago0xb7c473778b41caa07e63b48c9cfa621713879211 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000130169715 ETH
0xcb4af104a5f1712e4f430e17ab25ab019859ef41ff61112cdb8ca3afaebab04eDeposit131557132022-05-28 20:04:343 hrs 27 mins ago0x916ab31c6226e44b6256598a677cceffa385cced IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000130174917 ETH
0x6b7136617f1280065fcbf9501e4143d4246d1ff857e20a84ebd77d3729056497Deposit131467792022-05-28 16:19:347 hrs 12 mins ago0x88ccdfe9dd047b4cec4c1102d2d803e2d8bf683e IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000144100898 ETH
0xddc74e92b95fd839694d80e1ab5cc951a057051a6d9f92d5cc9909fa2c37d16bBatch131451222022-05-28 15:47:517 hrs 44 mins ago0xc0c8783088756c88e899ebf2e2ed180408d94e08 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000192637946 ETH
0xaddd90a41b80031c7cbb23630e621bc2f5d2caead6ba418cb783cc2e099340ffWithdraw131449872022-05-28 15:45:187 hrs 46 mins ago0xc0c8783088756c88e899ebf2e2ed180408d94e08 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000147423966 ETH
0xfbb904f9819363ca7e53b4fb848078b81cc93ca2092aa3abf3ff1416990c7876Deposit131390142022-05-28 14:10:399 hrs 21 mins ago0xff058c99568e0f753b960f1d0ac7830bdff1a51a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000137976119 ETH
0x6bf2bbaf6cdfccd6c7953e2509e27a8dbd70b10af335e45e181da67a048cb2edDeposit131369672022-05-28 13:34:089 hrs 57 mins ago0x2142d846641b9434786cc64b510d825f7dfe2d33 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000125118845 ETH
0x8d2ded5bde8116016af193a69addc35803cd02fa3ab68e1dae81922f1487351eDeposit131279872022-05-28 11:25:5012 hrs 6 mins ago0xfe8d5dea7987d101247243d5bbaf7804a1ff187a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000158339211 ETH
0x5705e14a47f082bb8adc28cb825850d187ce09f9599c560d0c19e4aa0c1fe960Deposit131276062022-05-28 11:17:2812 hrs 14 mins ago0xfe8d5dea7987d101247243d5bbaf7804a1ff187a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000140424817 ETH
0x0b8fc5d572b3df52c101aad842d5fd44d054c5e7aeede06ccf259e754ef8534aDeposit131275602022-05-28 11:16:5312 hrs 14 mins ago0xfe8d5dea7987d101247243d5bbaf7804a1ff187a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000154853472 ETH
0x9901ba820234905b738d4fbdedb7cbdb922b825c97a0a6d0cc8665abe64fdec0Deposit131232922022-05-28 10:02:3213 hrs 29 mins ago0xf45b34c93ada2a18bf03fa6dd3904ab9f6df273d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000162988611 ETH
0xa8048dfb25419bdf5622b4d03593c020a4e3cc0ddd39be656dfdf409b12ce666Deposit131232092022-05-28 10:02:3213 hrs 29 mins ago0xf45b34c93ada2a18bf03fa6dd3904ab9f6df273d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000144729256 ETH
0x9fb8060cd7cba8a7f741616bf810ab52a16dd3ffc6c3c3b04acae1c50d9db5f9Deposit131035902022-05-28 3:43:2319 hrs 48 mins ago0xc0a32e6f3914d13dfa99460e80fa3b0fc03755f0 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000244892718 ETH
0xae9fe5aa48c3be12928628f39c07ee38a14849eaea21e2a0377456db5d80f556Deposit130968712022-05-28 0:46:1122 hrs 45 mins ago0x2a8eac696c57a38ac79ae6168e8310306b4d7e9c IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000223988261 ETH
0xa9ebc0d0080f517b0fa212747f2ae93c4eb8dd5d5aa528a0af889989a173e08aDeposit130943342022-05-27 23:37:2723 hrs 54 mins ago0xf961e5e6c5276164adb2865b7e80cf82dc04e920 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000272787857 ETH
0x39a950293befce92bad530b22859408a6bf8e724e8ffe73569bace2aa44beb25Deposit130941902022-05-27 23:35:0323 hrs 56 mins ago0xf961e5e6c5276164adb2865b7e80cf82dc04e920 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000242099698 ETH
0x1dc22577b5d9794db7d4acd0470d360e8e34ff30190553fe38ba15cc36d0b06cDeposit130802262022-05-27 17:48:561 day 5 hrs ago0x58c58d02323af6659e8d94fe3feb14385503a8f9 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000269280118 ETH
0x5ee787d543ddef61b56af5c5a0bac7681f2e19296f6363b1135ec202fc7eca94Deposit130655902022-05-27 13:39:591 day 9 hrs ago0xc265ba4d9ed33620978b03235fc9f5aa026da275 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000223906989 ETH
0x9fd89834394d52aa488e097350fbcb7056888dc035769bda3aeca17213f27673Deposit130617482022-05-27 12:35:071 day 10 hrs ago0x3e250a0ae9ff6005ea9dab67b5bea09948a0a1df IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000176459939 ETH
0xe3efa947ae0ff31cba38a272cfc8ab23606bec9a688e951cc340a23b2cd48303Deposit130606742022-05-27 12:20:201 day 11 hrs ago0x58c58d02323af6659e8d94fe3feb14385503a8f9 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000176611284 ETH
0xcb7ca87c75a34efb082ba19b95921c9efe9fe846caa8b766f81568d6dd74effaDeposit130600852022-05-27 12:11:321 day 11 hrs ago0x7811df09c3415e99beb22122123932e2fe1ef0b0 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000205623189 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x02b8d0033ec747c402c67b3b0c403ed83d2b1ee627539bf26587190241ec16ff131583462022-05-28 21:39:431 hr 52 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xc969dd0a7ab0f8a0c5a69c0839db39b6c928bc080 ETH
0x02b8d0033ec747c402c67b3b0c403ed83d2b1ee627539bf26587190241ec16ff131583462022-05-28 21:39:431 hr 52 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xc969dd0a7ab0f8a0c5a69c0839db39b6c928bc080 ETH
0xdd457e165f42feb87e4110a791ab7f365bbc248d7ffb7cebf8ae61321a3107ed131569312022-05-28 20:45:552 hrs 45 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xdd457e165f42feb87e4110a791ab7f365bbc248d7ffb7cebf8ae61321a3107ed131569312022-05-28 20:45:552 hrs 45 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0xdd457e165f42feb87e4110a791ab7f365bbc248d7ffb7cebf8ae61321a3107ed131569312022-05-28 20:45:552 hrs 45 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
0xdd457e165f42feb87e4110a791ab7f365bbc248d7ffb7cebf8ae61321a3107ed131569312022-05-28 20:45:552 hrs 45 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xdffd9e55cd02b4a2077683ee78dfde2e34f4ac3bbb335efe55c75b0262ce94a4131559122022-05-28 20:11:183 hrs 20 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xdffd9e55cd02b4a2077683ee78dfde2e34f4ac3bbb335efe55c75b0262ce94a4131559122022-05-28 20:11:183 hrs 20 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0xdffd9e55cd02b4a2077683ee78dfde2e34f4ac3bbb335efe55c75b0262ce94a4131559122022-05-28 20:11:183 hrs 20 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
0xdffd9e55cd02b4a2077683ee78dfde2e34f4ac3bbb335efe55c75b0262ce94a4131559122022-05-28 20:11:183 hrs 20 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0x5e6e1459c27f22ec12442c4c2f387fbf5f870b53ce0f220d5ad6e8dffb125f64131558422022-05-28 20:09:313 hrs 22 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0x5e6e1459c27f22ec12442c4c2f387fbf5f870b53ce0f220d5ad6e8dffb125f64131558422022-05-28 20:09:313 hrs 22 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0x5e6e1459c27f22ec12442c4c2f387fbf5f870b53ce0f220d5ad6e8dffb125f64131558422022-05-28 20:09:313 hrs 22 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
0x5e6e1459c27f22ec12442c4c2f387fbf5f870b53ce0f220d5ad6e8dffb125f64131558422022-05-28 20:09:313 hrs 22 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xe593e626b3de95ae1be713109252c5b221028f50c492412fdd1679f4541965e6131558212022-05-28 20:08:133 hrs 23 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xe593e626b3de95ae1be713109252c5b221028f50c492412fdd1679f4541965e6131558212022-05-28 20:08:133 hrs 23 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0xe593e626b3de95ae1be713109252c5b221028f50c492412fdd1679f4541965e6131558212022-05-28 20:08:133 hrs 23 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
0xe593e626b3de95ae1be713109252c5b221028f50c492412fdd1679f4541965e6131558212022-05-28 20:08:133 hrs 23 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xcb4af104a5f1712e4f430e17ab25ab019859ef41ff61112cdb8ca3afaebab04e131557132022-05-28 20:04:343 hrs 27 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0xcb4af104a5f1712e4f430e17ab25ab019859ef41ff61112cdb8ca3afaebab04e131557132022-05-28 20:04:343 hrs 27 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0xcb4af104a5f1712e4f430e17ab25ab019859ef41ff61112cdb8ca3afaebab04e131557132022-05-28 20:04:343 hrs 27 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
0xcb4af104a5f1712e4f430e17ab25ab019859ef41ff61112cdb8ca3afaebab04e131557132022-05-28 20:04:343 hrs 27 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0x6b7136617f1280065fcbf9501e4143d4246d1ff857e20a84ebd77d3729056497131467792022-05-28 16:19:347 hrs 12 mins ago 0x2069043d7556b1207a505eb459d18d908df29b550xa815b134294580692482e321dd1a191ac14541920 ETH
0x6b7136617f1280065fcbf9501e4143d4246d1ff857e20a84ebd77d3729056497131467792022-05-28 16:19:347 hrs 12 mins ago 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab 0x2069043d7556b1207a505eb459d18d908df29b550 ETH
0x6b7136617f1280065fcbf9501e4143d4246d1ff857e20a84ebd77d3729056497131467792022-05-28 16:19:347 hrs 12 mins ago 0x2069043d7556b1207a505eb459d18d908df29b55 0x1e35ebf875f8a2185edf22da02e7dbca0f5558ab0 ETH
[ Download CSV Export 
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.