Contract 0xC145990E84155416144C532E31f89B840Ca8c2cE 2

 
Txn Hash Method
Block
From
To
Value
0x2f4d4213f6ea987c867300cd46a57f10f31bb39db6fe61042ceba41abd026280Deposit132533792021-09-19 2:03:4415 hrs 8 mins ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.006877119661 84.12481696
0xcd89d8dd84f63bdf5b23eed5ee145123d3b9d4c36858903d76ea3dbe75f6b75eDeposit132469322021-09-18 2:03:141 day 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.008419282861 102.989429372
0xbaf09f025dd0fe54786f730c7a486c8a01145e06d8510b847e269ea23e485167Deposit132404362021-09-17 2:00:302 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.010361259446 126.744785218
0x1c8fbbebf68a267a4fcb0a65d17c0cac2b2cf6bce1cd25eea6bbfe831dbf90a6Deposit132370102021-09-16 13:23:453 days 3 hrs ago0xecbaed801370d5f5cce3f6313470e59f7aa212dc IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.0041779860
0x5c2fd1e597cf958f1547dd7c5d42ba5494efc411e89c0af6d4b7434822da20ccDeposit132369592021-09-16 13:11:503 days 4 hrs ago0xecbaed801370d5f5cce3f6313470e59f7aa212dc IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.0041780460
0x422468ceafd94c373dd13d30a991eb21b2d5f5220cb19a95ab4455fb903ae232Deposit132367552021-09-16 12:27:213 days 4 hrs ago0xecbaed801370d5f5cce3f6313470e59f7aa212dc IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.0041779860
0x445bc8b4f7da543842120514128d3811b32aadde1adb13ce73878ed5667d409aDeposit132339182021-09-16 2:00:183 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.013052270604 159.68619602
0xb3fd9507aed8ebb80d2376faed162499c7f54d7f5e9beb446acefa152c3dcf4cDeposit132275172021-09-15 2:00:124 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.005525077079 67.58586747
0xd880baa61bf1d7cb941a13f99fd8964db789ed3cc538a15403dbe4effc8518d6Deposit132210212021-09-14 2:00:175 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.008962570664 109.635233028
0xd59299e6c08b472b6d920c3d0c3286f90b89a422fe3a422953f1da5dccc8bcc9Deposit132081072021-09-12 2:01:427 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.007233174714 88.480283734
0x87b0e82e2928cc1d1cb9d17c19fc824ea1bdc9df06ecfb4d3b7645ae252a9ab0Deposit132016982021-09-11 2:02:308 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.012661055202 154.877187522
0x535df2a51e765f0e40013b27cf6158ba5a3a1b13affba10d18ea18cbf81e008aDeposit131951952021-09-10 2:00:349 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.014587687933 178.444848664
0xb5d5c48fcd42327148b1abd5d7e5b79a86cb69749331e08d911b73b321237a60Deposit131888532021-09-09 2:24:3110 days 14 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.024921143712 304.849523696
0x7428fdde7948b105691468cf16dfbae13a47f0d0a598d0568d72af43a0401d99Deposit131758482021-09-07 2:02:1112 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.013622662251 166.640108768
0xa8bbab78b4b518a37642fee1179a1aab8efc3aa967ac071e47afde376adb8d7cDeposit131628952021-09-05 2:00:1414 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.012891039764 157.690488748
0xf8d86f7392628fd93008ba262c6d46e298c6d716e7d45fcb011ed548c7ea8c28Deposit131434562021-09-02 2:02:2117 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.012843744125 157.11194174
0x7e05700574fb0a3a4c99ff8976c7ad8172b07de7ba9b13fc14ab35071381ea55Deposit131369872021-09-01 2:01:1018 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.012824943368 152.932785218
0x9e2c66e041ff7dacb68706f5dd4d5ca8ea671213b30c4734125e4da0c77308abDeposit131305162021-08-31 2:01:4419 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.016400998377 195.57594059
0x9b3fdc831b6bba24b543360d7ae22e1aeb58bcc277c9de2aeb734f6bab65e9c8Deposit131240412021-08-30 2:01:1820 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.009984220582 119.058199168
0xa12ddf5972214ed6dbd78f39c5bfa6665532b207e883d982b13f4453c9c904f2Deposit131175802021-08-29 2:01:1021 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.012557377972 149.742165184
0x609e80faaa1f16e6f4f2c37ee1a2d37b0d7d129a208142156992bbe6cbbd6955Deposit131110752021-08-28 2:01:1822 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.008839110642 105.403179618
0xdae6daf13554a9e451142908dd2e0b0a0a458780635d43e98db328b7728b0d37Deposit131046672021-08-27 2:01:1323 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.010111538106 120.576414342
0x906e9741972567a26e8f44025daa9add6f977945c1b4e6d5e37b88b5fcc2c5e8Deposit130981512021-08-26 2:01:1324 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.011394719077 135.877880718
0x4cecd2138e965bdf92418d3a9de71bbdbb038cde46f5b55a29a58e486d0c230fDeposit130917112021-08-25 2:00:1425 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.020391960318 243.166710216
0xc9c0a4f6a5265245747df9daf0bb7757c0421535dbb2f607c5f80e57711ea25eDeposit130852022021-08-24 2:00:1626 days 15 hrs ago0x7d53b506acf7c3986199a3a43f819e005b984b54 IN  0xc145990e84155416144c532e31f89b840ca8c2ce0 Ether0.011407798313 136.033845852
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x31b21d697dae39b90d833f11aa1da03ba8d8b091fe20517d8084f0dc02361bd7130849732021-08-24 1:03:4426 days 16 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3701 Ether
0xbea9f5acea465add9608bb0f058b6212c92a12ccd85f19e93dd61eb07ecab122130598392021-08-20 3:50:1230 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0x81a376aab8c75978311ed58f55e7211df4797fbbc6781cea4a25830ebacc6c2e130598222021-08-20 3:46:5830 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0xd5a7c704b2b7ae69388a5fcbc7e714f65386a19bfb467b7d6110058d1635d604130598102021-08-20 3:44:2630 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0xaaab99baa20fede1c4263507623cdd97364402c04328642c043eb7a3cda25044130598012021-08-20 3:41:4630 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0x882d2f065cbbc193bc5fdd1a070edfc49caa8d303d334121c1a50d65f9fcf00e130597552021-08-20 3:32:5530 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0xa27d97f19ceb8eb424eec582d26fbd4e9e866e74ae20a677ba1a45726e3530ae130597492021-08-20 3:31:4230 days 13 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.0001 Ether
0xf16eeb61e1df18e1b2173825226e190651f39920fef3fddabda6a5b7949854ea130582712021-08-19 21:47:0230 days 19 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.04067509 Ether
0xd201d2c0384c80f967298d30e1bada7499b0a91b6cdfeceaa4f9d9c8a718eb1d129250652021-07-30 5:09:1951 days 12 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.25 Ether
0x3f23f2a4ff06c7d2ef377d2a91adc4a5e286b61d894caeabbb35aec5ffa6a0e5129241572021-07-30 1:35:1151 days 15 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.7 Ether
0x12995ff28bcfa5701ed39abc447c793bd451c6b9500d99502e2815998b540e51129241382021-07-30 1:30:4751 days 15 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.17523741 Ether
0x11f3578bcb497559483f71d0deff25949336fc46505e16d31d31976352a6f411129241262021-07-30 1:27:0651 days 15 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.65410771 Ether
0xbced3ca8a61dfa8ec368ad0b742afa66e5935e0250c87684bfd6df01ae16ceb7129241072021-07-30 1:22:5151 days 15 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.083341567000000121 Ether
0xf8dbe91f4cbc16b077f12e3f70e15cccb1ca5593f95c81fcd90ed14140815d92129234762021-07-29 22:55:0551 days 18 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.25 Ether
0xf710ab11b70ac9b9c0f98b4f94b164bd006e4466781be39ae6fd935e9d4658ba129231512021-07-29 21:42:4751 days 19 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.35903836 Ether
0x4c3f1b7c73ec27c65b303a633b46b6d93c298cddcfac22a46fa426c007f30b58129230502021-07-29 21:20:4151 days 19 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.21290267 Ether
0x8ff4454d053799cb96d699e922382ea2542e4e66ed4dd03a49ca16a5511e6981129228912021-07-29 20:44:4851 days 20 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.13 Ether
0xdee9c1b7a7de9807bb172e022f4635e72104eea3c6ef96cfcdab5264c17175c7129224642021-07-29 19:08:0151 days 22 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.02062834 Ether
0xaac139ded340b91acda22fdac5d14dd67f3925b35fb50aebeaa65e1b2b25da1f129224152021-07-29 18:57:0651 days 22 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.24929812 Ether
0x04f9aae625890ab5617a0a3665d9f615b8b72110457edf0c8d5e93ed5ff0abdb129223072021-07-29 18:30:2951 days 22 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.088623966386403954 Ether
0x228ed9aaab5747af120e64bde4e69ea1fbf0316fd1f1a685177a7b1a58617f95129223002021-07-29 18:29:1151 days 22 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.04 Ether
0xe36f665ff8188ac41bedd308b6c95c27fcc01d036019947d3b20ff8b905de2e6129093672021-07-27 17:17:2453 days 23 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.05072318 Ether
0xe369ccca3703901556eccdd4fa8996db13826fd6b8d6ade09dd24639b489c519129088962021-07-27 15:31:2554 days 1 hr ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.00000001 Ether
0xae04b3d8b7008cdf342aa17f725fa51daf2ece1a286d9f3594c3547f1d401087129088962021-07-27 15:31:2554 days 1 hr ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.00000001 Ether
0x1f59eb0fc688a91c5be420838e79b02eaf1078eec887cb4c902d0ad95aca21ee129080602021-07-27 12:22:5654 days 4 hrs ago 0xc145990e84155416144c532e31f89b840ca8c2ce0xf56cba49337a624e94042e325ad6bc864436e3700.00000001 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
THORChain_Router

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2021-07-10
*/

// SPDX-License-Identifier: UNLICENSED
// -------------------
// Router Version: 2.0
// -------------------
pragma solidity 0.8.3;

// ERC20 Interface
interface iERC20 {
    function balanceOf(address) external view returns (uint256);
    function burn(uint) external;
}
// RUNE Interface
interface iRUNE {
    function transferTo(address, uint) external returns (bool);
}
// ROUTER Interface
interface iROUTER {
    function depositWithExpiry(address, address, uint, string calldata, uint) external;
}

// THORChain_Router is managed by THORChain Vaults
contract THORChain_Router {
    address public RUNE;

    struct Coin {
        address asset;
        uint amount;
    }

    // Vault allowance for each asset
    mapping(address => mapping(address => uint)) public vaultAllowance;

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    // Emitted for all deposits, the memo distinguishes for swap, add, remove, donate etc
    event Deposit(address indexed to, address indexed asset, uint amount, string memo);

    // Emitted for all outgoing transfers, the vault dictates who sent it, memo used to track.
    event TransferOut(address indexed vault, address indexed to, address asset, uint amount, string memo);

    // Changes the spend allowance between vaults
    event TransferAllowance(address indexed oldVault, address indexed newVault, address asset, uint amount, string memo);

    // Specifically used to batch send the entire vault assets
    event VaultTransfer(address indexed oldVault, address indexed newVault, Coin[] coins, string memo);

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }

    constructor(address rune) {
        RUNE = rune;
        _status = _NOT_ENTERED;
    }

    // Deposit with Expiry (preferred)
    function depositWithExpiry(address payable vault, address asset, uint amount, string memory memo, uint expiration) external payable {
        require(block.timestamp < expiration, "THORChain_Router: expired");
        deposit(vault, asset, amount, memo);
    }

    // Deposit an asset with a memo. ETH is forwarded, ERC-20 stays in ROUTER
    function deposit(address payable vault, address asset, uint amount, string memory memo) public payable nonReentrant{
        uint safeAmount;
        if(asset == address(0)){
            safeAmount = msg.value;
            (bool success,) = vault.call{value:safeAmount}("");
            require(success);
        } else if(asset == RUNE) {
            safeAmount = amount;
            iRUNE(RUNE).transferTo(address(this), amount);
            iERC20(RUNE).burn(amount);
        } else {
            safeAmount = safeTransferFrom(asset, amount); // Transfer asset
            vaultAllowance[vault][asset] += safeAmount; // Credit to chosen vault
        }
        emit Deposit(vault, asset, safeAmount, memo);
    }

    //############################## ALLOWANCE TRANSFERS ##############################

    // Use for "moving" assets between vaults (asgard<>ygg), as well "churning" to a new Asgard
    function transferAllowance(address router, address newVault, address asset, uint amount, string memory memo) external {
        if (router == address(this)){
            _adjustAllowances(newVault, asset, amount);
            emit TransferAllowance(msg.sender, newVault, asset, amount, memo);
        } else {
            _routerDeposit(router, newVault, asset, amount, memo);
        }
    }

    //############################## ASSET TRANSFERS ##############################

    // Any vault calls to transfer any asset to any recipient.
    function transferOut(address payable to, address asset, uint amount, string memory memo) public payable nonReentrant {
        uint safeAmount; bool success;
        if(asset == address(0)){
            safeAmount = msg.value;
            (success,) = to.call{value:msg.value}(""); // Send ETH
        } else {
            vaultAllowance[msg.sender][asset] -= amount; // Reduce allowance
            (success,) = asset.call(abi.encodeWithSignature("transfer(address,uint256)" , to, amount));
            safeAmount = amount;
        }
        require(success);
        emit TransferOut(msg.sender, to, asset, safeAmount, memo);
    }

    // Batch Transfer
    function batchTransferOut(address[] memory recipients, Coin[] memory coins, string[] memory memos) external payable {
        require((recipients.length == coins.length) && (coins.length == memos.length));
        for(uint i = 0; i < coins.length; i++){
            transferOut(payable(recipients[i]), coins[i].asset, coins[i].amount, memos[i]);
        }
    }

    //############################## VAULT MANAGEMENT ##############################

    // A vault can call to "return" all assets to an asgard, including ETH. 
    function returnVaultAssets(address router, address payable asgard, Coin[] memory coins, string memory memo) external payable {
        if (router == address(this)){
            for(uint i = 0; i < coins.length; i++){
                _adjustAllowances(asgard, coins[i].asset, coins[i].amount);
            }
            emit VaultTransfer(msg.sender, asgard, coins, memo); // Does not include ETH.           
        } else {
            for(uint i = 0; i < coins.length; i++){
                _routerDeposit(router, asgard, coins[i].asset, coins[i].amount, memo);
            }
        }
        (bool success,) = asgard.call{value:msg.value}(""); //ETH amount needs to be parsed from tx.
        require(success);
    }

    //############################## HELPERS ##############################

    // Safe transferFrom in case asset charges transfer fees
    function safeTransferFrom(address _asset, uint _amount) internal returns(uint amount) {
        uint _startBal = iERC20(_asset).balanceOf(address(this));
        (bool success,) = _asset.call(abi.encodeWithSignature("transferFrom(address,address,uint256)", msg.sender, address(this), _amount));
        require(success);
        return (iERC20(_asset).balanceOf(address(this)) - _startBal);
    }

    // Decrements and Increments Allowances between two vaults
    function _adjustAllowances(address _newVault, address _asset, uint _amount) internal {
        vaultAllowance[msg.sender][_asset] -= _amount;
        vaultAllowance[_newVault][_asset] += _amount;
    }

    // Adjust allowance and forwards funds to new router, credits allowance to desired vault
    function _routerDeposit(address _router, address _vault, address _asset, uint _amount, string memory _memo) internal {
        vaultAllowance[msg.sender][_asset] -= _amount;
        (bool success,) = _asset.call(abi.encodeWithSignature("approve(address,uint256)", _router, _amount)); // Approve to transfer
        require(success);
        iROUTER(_router).depositWithExpiry(_vault, _asset, _amount, _memo, type(uint).max); // Transfer by depositing
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"rune","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferAllowance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct THORChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"VaultTransfer","type":"event"},{"inputs":[],"name":"RUNE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct THORChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"internalType":"string[]","name":"memos","type":"string[]"}],"name":"batchTransferOut","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"depositWithExpiry","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address payable","name":"asgard","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct THORChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"name":"returnVaultAssets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"newVault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferOut","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"vaultAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620022953803806200229583398181016040528101906200003791906200009d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016002819055505062000117565b6000815190506200009781620000fd565b92915050565b600060208284031215620000b057600080fd5b6000620000c08482850162000086565b91505092915050565b6000620000d682620000dd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200010881620000c9565b81146200011457600080fd5b50565b61216e80620001276000396000f3fe60806040526004361061007b5760003560e01c806344bc937b1161004e57806344bc937b1461011e57806348f1651d1461013a578063574da7171461015657806393e4eaa9146101725761007b565b806303b6a673146100805780631b738b32146100bd5780631fece7b4146100e65780632923e82e14610102575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a291906116ff565b61019d565b6040516100b49190611ce8565b60405180910390f35b3480156100c957600080fd5b506100e460048036038101906100df91906117ce565b6101c2565b005b61010060048036038101906100fb91906115f5565b610284565b005b61011c6004803603810190610117919061173b565b610631565b005b61013860048036038101906101339190611670565b6108b7565b005b610154600480360381019061014f919061185d565b61090c565b005b610170600480360381019061016b91906115f5565b610a60565b005b34801561017e57600080fd5b50610187610d6e565b6040516101949190611b35565b60405180910390f35b6001602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561026f57610201848484610d92565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea85858560405161026293929190611c33565b60405180910390a361027d565b61027c8585858585610ebd565b5b5050505050565b6002805414156102c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c090611ca8565b60405180910390fd5b6002808190555060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156103855734905060008573ffffffffffffffffffffffffffffffffffffffff168260405161032f90611b20565b60006040518083038185875af1925050503d806000811461036c576040519150601f19603f3d011682016040523d82523d6000602084013e610371565b606091505b505090508061037f57600080fd5b506105bb565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561051a5782905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ccb1b3030856040518363ffffffff1660e01b8152600401610437929190611c0a565b602060405180830381600087803b15801561045157600080fd5b505af1158015610465573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048991906118f4565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68846040518263ffffffff1660e01b81526004016104e39190611ce8565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b505050506105ba565b61052484846110f1565b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105b29190611e78565b925050819055505b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb395838560405161061a929190611d03565b60405180910390a350600160028190555050505050565b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156107845760005b825181101561071757610704848483815181106106ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600001518584815181106106f3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160200151610d92565b808061070f90611fcf565b915050610668565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f8484604051610777929190611c71565b60405180910390a361083a565b60005b82518110156108385761082585858584815181106107ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160000151868581518110610813577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516020015186610ebd565b808061083090611fcf565b915050610787565b505b60008373ffffffffffffffffffffffffffffffffffffffff163460405161086090611b20565b60006040518083038185875af1925050503d806000811461089d576040519150601f19603f3d011682016040523d82523d6000602084013e6108a2565b606091505b50509050806108b057600080fd5b5050505050565b8042106108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611cc8565b60405180910390fd5b61090585858585610284565b5050505050565b8151835114801561091e575080518251145b61092757600080fd5b60005b8251811015610a5a57610a4784828151811061096f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518483815181106109b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600001518584815181106109f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160200151858581518110610a3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610a60565b8080610a5290611fcf565b91505061092a565b50505050565b600280541415610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90611ca8565b60405180910390fd5b60028081905550600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610b58573491508573ffffffffffffffffffffffffffffffffffffffff1634604051610b0b90611b20565b60006040518083038185875af1925050503d8060008114610b48576040519150601f19603f3d011682016040523d82523d6000602084013e610b4d565b606091505b505080915050610ceb565b83600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be49190611ece565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168685604051602401610c15929190611b50565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c9f9190611b09565b6000604051808303816000865af19150503d8060008114610cdc576040519150601f19603f3d011682016040523d82523d6000602084013e610ce1565b606091505b5050809150508391505b80610cf557600080fd5b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7878587604051610d5693929190611c33565b60405180910390a35050600160028190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e1e9190611ece565b9250508190555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610eb19190611e78565b92505081905550505050565b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f499190611ece565b9250508190555060008373ffffffffffffffffffffffffffffffffffffffff168684604051602401610f7c929190611c0a565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110069190611b09565b6000604051808303816000865af19150503d8060008114611043576040519150601f19603f3d011682016040523d82523d6000602084013e611048565b606091505b505090508061105657600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166344bc937b868686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518663ffffffff1660e01b81526004016110b7959493929190611bb0565b600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b50505050505050505050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161112d9190611b35565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d919061191d565b905060008473ffffffffffffffffffffffffffffffffffffffff163330866040516024016111ad93929190611b79565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516112379190611b09565b6000604051808303816000865af19150503d8060008114611274576040519150601f19603f3d011682016040523d82523d6000602084013e611279565b606091505b505090508061128757600080fd5b818573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112c19190611b35565b60206040518083038186803b1580156112d957600080fd5b505afa1580156112ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611311919061191d565b61131b9190611ece565b9250505092915050565b600061133861133384611d58565b611d33565b9050808382526020820190508285602086028201111561135757600080fd5b60005b85811015611387578161136d8882611498565b84526020840193506020830192505060018101905061135a565b5050509392505050565b60006113a461139f84611d84565b611d33565b9050808382526020820190508260005b858110156113e457813585016113ca8882611555565b8452602084019350602083019250506001810190506113b4565b5050509392505050565b60006114016113fc84611db0565b611d33565b9050808382526020820190508285604086028201111561142057600080fd5b60005b858110156114505781611436888261157f565b845260208401935060408301925050600181019050611423565b5050509392505050565b600061146d61146884611ddc565b611d33565b90508281526020810184848401111561148557600080fd5b611490848285611f5c565b509392505050565b6000813590506114a7816120dc565b92915050565b6000813590506114bc816120f3565b92915050565b600082601f8301126114d357600080fd5b81356114e3848260208601611325565b91505092915050565b600082601f8301126114fd57600080fd5b813561150d848260208601611391565b91505092915050565b600082601f83011261152757600080fd5b81356115378482602086016113ee565b91505092915050565b60008151905061154f8161210a565b92915050565b600082601f83011261156657600080fd5b813561157684826020860161145a565b91505092915050565b60006040828403121561159157600080fd5b61159b6040611d33565b905060006115ab84828501611498565b60008301525060206115bf848285016115cb565b60208301525092915050565b6000813590506115da81612121565b92915050565b6000815190506115ef81612121565b92915050565b6000806000806080858703121561160b57600080fd5b6000611619878288016114ad565b945050602061162a87828801611498565b935050604061163b878288016115cb565b925050606085013567ffffffffffffffff81111561165857600080fd5b61166487828801611555565b91505092959194509250565b600080600080600060a0868803121561168857600080fd5b6000611696888289016114ad565b95505060206116a788828901611498565b94505060406116b8888289016115cb565b935050606086013567ffffffffffffffff8111156116d557600080fd5b6116e188828901611555565b92505060806116f2888289016115cb565b9150509295509295909350565b6000806040838503121561171257600080fd5b600061172085828601611498565b925050602061173185828601611498565b9150509250929050565b6000806000806080858703121561175157600080fd5b600061175f87828801611498565b9450506020611770878288016114ad565b935050604085013567ffffffffffffffff81111561178d57600080fd5b61179987828801611516565b925050606085013567ffffffffffffffff8111156117b657600080fd5b6117c287828801611555565b91505092959194509250565b600080600080600060a086880312156117e657600080fd5b60006117f488828901611498565b955050602061180588828901611498565b945050604061181688828901611498565b9350506060611827888289016115cb565b925050608086013567ffffffffffffffff81111561184457600080fd5b61185088828901611555565b9150509295509295909350565b60008060006060848603121561187257600080fd5b600084013567ffffffffffffffff81111561188c57600080fd5b611898868287016114c2565b935050602084013567ffffffffffffffff8111156118b557600080fd5b6118c186828701611516565b925050604084013567ffffffffffffffff8111156118de57600080fd5b6118ea868287016114ec565b9150509250925092565b60006020828403121561190657600080fd5b600061191484828501611540565b91505092915050565b60006020828403121561192f57600080fd5b600061193d848285016115e0565b91505092915050565b60006119528383611abc565b60408301905092915050565b61196781611f14565b82525050565b61197681611f02565b82525050565b61198581611f02565b82525050565b600061199682611e1d565b6119a08185611e4b565b93506119ab83611e0d565b8060005b838110156119dc5781516119c38882611946565b97506119ce83611e3e565b9250506001810190506119af565b5085935050505092915050565b60006119f482611e28565b6119fe8185611e5c565b9350611a0e818560208601611f6b565b80840191505092915050565b6000611a2582611e33565b611a2f8185611e67565b9350611a3f818560208601611f6b565b611a4881612076565b840191505092915050565b6000611a60600083611e5c565b9150611a6b82612087565b600082019050919050565b6000611a83601f83611e67565b9150611a8e8261208a565b602082019050919050565b6000611aa6601983611e67565b9150611ab1826120b3565b602082019050919050565b604082016000820151611ad2600085018261196d565b506020820151611ae56020850182611aeb565b50505050565b611af481611f52565b82525050565b611b0381611f52565b82525050565b6000611b1582846119e9565b915081905092915050565b6000611b2b82611a53565b9150819050919050565b6000602082019050611b4a600083018461197c565b92915050565b6000604082019050611b65600083018561195e565b611b726020830184611afa565b9392505050565b6000606082019050611b8e600083018661197c565b611b9b602083018561197c565b611ba86040830184611afa565b949350505050565b600060a082019050611bc5600083018861197c565b611bd2602083018761197c565b611bdf6040830186611afa565b8181036060830152611bf18185611a1a565b9050611c006080830184611afa565b9695505050505050565b6000604082019050611c1f600083018561197c565b611c2c6020830184611afa565b9392505050565b6000606082019050611c48600083018661197c565b611c556020830185611afa565b8181036040830152611c678184611a1a565b9050949350505050565b60006040820190508181036000830152611c8b818561198b565b90508181036020830152611c9f8184611a1a565b90509392505050565b60006020820190508181036000830152611cc181611a76565b9050919050565b60006020820190508181036000830152611ce181611a99565b9050919050565b6000602082019050611cfd6000830184611afa565b92915050565b6000604082019050611d186000830185611afa565b8181036020830152611d2a8184611a1a565b90509392505050565b6000611d3d611d4e565b9050611d498282611f9e565b919050565b6000604051905090565b600067ffffffffffffffff821115611d7357611d72612047565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611d9f57611d9e612047565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611dcb57611dca612047565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611df757611df6612047565b5b611e0082612076565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611e8382611f52565b9150611e8e83611f52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611ec357611ec2612018565b5b828201905092915050565b6000611ed982611f52565b9150611ee483611f52565b925082821015611ef757611ef6612018565b5b828203905092915050565b6000611f0d82611f32565b9050919050565b6000611f1f82611f32565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611f89578082015181840152602081019050611f6e565b83811115611f98576000848401525b50505050565b611fa782612076565b810181811067ffffffffffffffff82111715611fc657611fc5612047565b5b80604052505050565b6000611fda82611f52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561200d5761200c612018565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b50565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f54484f52436861696e5f526f757465723a206578706972656400000000000000600082015250565b6120e581611f02565b81146120f057600080fd5b50565b6120fc81611f14565b811461210757600080fd5b50565b61211381611f26565b811461211e57600080fd5b50565b61212a81611f52565b811461213557600080fd5b5056fea2646970667358221220f79e9e57b8b1b470b5f862af9e6c744317fa82587c4abfd4889568f3376d34d564736f6c634300080300330000000000000000000000003155ba85d5f96b2d030a4966af206230e46849cb

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

0000000000000000000000003155ba85d5f96b2d030a4966af206230e46849cb

-----Decoded View---------------
Arg [0] : rune (address): 0x3155ba85d5f96b2d030a4966af206230e46849cb

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003155ba85d5f96b2d030a4966af206230e46849cb


Deployed ByteCode Sourcemap

576:6608:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3285:399;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2359:730;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5059:733;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2009:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4519:366;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3843:645;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;609:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;750:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3285:399::-;3436:4;3418:23;;:6;:23;;;3414:263;;;3457:42;3475:8;3485:5;3492:6;3457:17;:42::i;:::-;3549:8;3519:60;;3537:10;3519:60;;;3559:5;3566:6;3574:4;3519:60;;;;;;;;:::i;:::-;;;;;;;;3414:263;;;3612:53;3627:6;3635:8;3645:5;3652:6;3660:4;3612:14;:53::i;:::-;3414:263;3285:399;;;;;:::o;2359:730::-;909:1;1727:7;;:19;;1719:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;909:1;1793:7;:18;;;;2485:15:::1;2531:1:::0;2514:19:::1;;:5;:19;;;2511:516;;;2562:9;2549:22;;2587:12;2604:5;:10;;2621;2604:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2586:50;;;2659:7;2651:16;;;::::0;::::1;;2511:516;;;;2697:4;::::0;::::1;;;;;;;;2688:13;;:5;:13;;;2685:342;;;2731:6;2718:19;;2758:4;::::0;::::1;;;;;;;;2752:22;;;2783:4;2790:6;2752:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2819:4;::::0;::::1;;;;;;;;2812:17;;;2830:6;2812:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2685:342;;;2883:31;2900:5;2907:6;2883:16;:31::i;:::-;2870:44;;2979:10;2947:14;:21;2962:5;2947:21;;;;;;;;;;;;;;;:28;2969:5;2947:28;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;2685:342;2511:516;3057:5;3042:39;;3050:5;3042:39;;;3064:10;3076:4;3042:39;;;;;;;:::i;:::-;;;;;;;;1822:1;865::::0;1834:7;:22;;;;2359:730;;;;:::o;5059:733::-;5217:4;5199:23;;:6;:23;;;5195:461;;;5242:6;5238:131;5258:5;:12;5254:1;:16;5238:131;;;5295:58;5313:6;5321:5;5327:1;5321:8;;;;;;;;;;;;;;;;;;;;;;:14;;;5337:5;5343:1;5337:8;;;;;;;;;;;;;;;;;;;;;;:15;;;5295:17;:58::i;:::-;5272:3;;;;;:::i;:::-;;;;5238:131;;;;5414:6;5388:46;;5402:10;5388:46;;;5422:5;5429:4;5388:46;;;;;;;:::i;:::-;;;;;;;;5195:461;;;5507:6;5503:142;5523:5;:12;5519:1;:16;5503:142;;;5560:69;5575:6;5583;5591:5;5597:1;5591:8;;;;;;;;;;;;;;;;;;;;;;:14;;;5607:5;5613:1;5607:8;;;;;;;;;;;;;;;;;;;;;;:15;;;5624:4;5560:14;:69::i;:::-;5537:3;;;;;:::i;:::-;;;;5503:142;;;;5195:461;5667:12;5684:6;:11;;5702:9;5684:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5666:50;;;5776:7;5768:16;;;;;;5059:733;;;;;:::o;2009:263::-;2178:10;2160:15;:28;2152:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2229:35;2237:5;2244;2251:6;2259:4;2229:7;:35::i;:::-;2009:263;;;;;:::o;4519:366::-;4676:5;:12;4655:10;:17;:33;4654:69;;;;;4710:5;:12;4694:5;:12;:28;4654:69;4646:78;;;;;;4739:6;4735:143;4755:5;:12;4751:1;:16;4735:143;;;4788:78;4808:10;4819:1;4808:13;;;;;;;;;;;;;;;;;;;;;;4824:5;4830:1;4824:8;;;;;;;;;;;;;;;;;;;;;;:14;;;4840:5;4846:1;4840:8;;;;;;;;;;;;;;;;;;;;;;:15;;;4857:5;4863:1;4857:8;;;;;;;;;;;;;;;;;;;;;;4788:11;:78::i;:::-;4769:3;;;;;:::i;:::-;;;;4735:143;;;;4519:366;;;:::o;3843:645::-;909:1;1727:7;;:19;;1719:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;909:1;1793:7;:18;;;;3971:15:::1;3988:12:::0;4031:1:::1;4014:19;;:5;:19;;;4011:375;;;4062:9;4049:22;;4099:2;:7;;4113:9;4099:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4086:41;;;;;4011:375;;;4209:6;4172:14;:26;4187:10;4172:26;;;;;;;;;;;;;;;:33;4199:5;4172:33;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;4263:5;:10;;4328:2;4332:6;4274:65;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4250:90;;;;;4368:6;4355:19;;4011:375;4404:7;4396:16;;;::::0;::::1;;4452:2;4428:52;;4440:10;4428:52;;;4456:5;4463:10;4475:4;4428:52;;;;;;;;:::i;:::-;;;;;;;;1822:1;;865::::0;1834:7;:22;;;;3843:645;;;;:::o;609:19::-;;;;;;;;;;;;:::o;6414:204::-;6548:7;6510:14;:26;6525:10;6510:26;;;;;;;;;;;;;;;:34;6537:6;6510:34;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;6603:7;6566:14;:25;6581:9;6566:25;;;;;;;;;;;;;;;:33;6592:6;6566:33;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;6414:204;;;:::o;6720:461::-;6886:7;6848:14;:26;6863:10;6848:26;;;;;;;;;;;;;;;:34;6875:6;6848:34;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;6905:12;6922:6;:11;;6986:7;6995;6934:69;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6922:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6904:100;;;7046:7;7038:16;;;;;;7073:7;7065:34;;;7100:6;7108;7116:7;7125:5;7132:14;7065:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6720:461;;;;;;:::o;5941:401::-;6014:11;6038:14;6062:6;6055:24;;;6088:4;6055:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6038:56;;6106:12;6123:6;:11;;6200:10;6220:4;6227:7;6135:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6123:113;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6105:131;;;6255:7;6247:16;;;;;;6324:9;6289:6;6282:24;;;6315:4;6282:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;;;:::i;:::-;6274:60;;;;5941:401;;;;:::o;24:623:1:-;;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;274:6;267:5;260:21;300:4;293:5;289:16;282:23;;325:6;375:3;367:4;359:6;355:17;350:3;346:27;343:36;340:2;;;392:1;389;382:12;340:2;420:1;405:236;430:6;427:1;424:13;405:236;;;497:3;525:37;558:3;546:10;525:37;:::i;:::-;520:3;513:50;592:4;587:3;583:14;576:21;;626:4;621:3;617:14;610:21;;465:176;452:1;449;445:9;440:14;;405:236;;;409:14;126:521;;;;;;;:::o;669:616::-;;800:91;816:74;883:6;816:74;:::i;:::-;800:91;:::i;:::-;791:100;;911:5;939:6;932:5;925:21;965:4;958:5;954:16;947:23;;990:6;1021:1;1006:273;1031:6;1028:1;1025:13;1006:273;;;1123:3;1110:17;1102:6;1098:30;1153:47;1196:3;1184:10;1153:47;:::i;:::-;1148:3;1141:60;1230:4;1225:3;1221:14;1214:21;;1264:4;1259:3;1255:14;1248:21;;1066:213;1053:1;1050;1046:9;1041:14;;1006:273;;;1010:14;781:504;;;;;;;:::o;1329:683::-;;1470:101;1486:84;1563:6;1486:84;:::i;:::-;1470:101;:::i;:::-;1461:110;;1591:5;1619:6;1612:5;1605:21;1645:4;1638:5;1634:16;1627:23;;1670:6;1720:3;1712:4;1704:6;1700:17;1695:3;1691:27;1688:36;1685:2;;;1737:1;1734;1727:12;1685:2;1765:1;1750:256;1775:6;1772:1;1769:13;1750:256;;;1842:3;1870:57;1923:3;1911:10;1870:57;:::i;:::-;1865:3;1858:70;1957:4;1952:3;1948:14;1941:21;;1991:4;1986:3;1982:14;1975:21;;1810:196;1797:1;1794;1790:9;1785:14;;1750:256;;;1754:14;1451:561;;;;;;;:::o;2018:345::-;;2121:66;2137:49;2179:6;2137:49;:::i;:::-;2121:66;:::i;:::-;2112:75;;2210:6;2203:5;2196:21;2248:4;2241:5;2237:16;2286:3;2277:6;2272:3;2268:16;2265:25;2262:2;;;2303:1;2300;2293:12;2262:2;2316:41;2350:6;2345:3;2340;2316:41;:::i;:::-;2102:261;;;;;;:::o;2369:139::-;;2453:6;2440:20;2431:29;;2469:33;2496:5;2469:33;:::i;:::-;2421:87;;;;:::o;2514:155::-;;2606:6;2593:20;2584:29;;2622:41;2657:5;2622:41;:::i;:::-;2574:95;;;;:::o;2692:303::-;;2812:3;2805:4;2797:6;2793:17;2789:27;2779:2;;2830:1;2827;2820:12;2779:2;2870:6;2857:20;2895:94;2985:3;2977:6;2970:4;2962:6;2958:17;2895:94;:::i;:::-;2886:103;;2769:226;;;;;:::o;3017:323::-;;3147:3;3140:4;3132:6;3128:17;3124:27;3114:2;;3165:1;3162;3155:12;3114:2;3205:6;3192:20;3230:104;3330:3;3322:6;3315:4;3307:6;3303:17;3230:104;:::i;:::-;3221:113;;3104:236;;;;;:::o;3384:343::-;;3524:3;3517:4;3509:6;3505:17;3501:27;3491:2;;3542:1;3539;3532:12;3491:2;3582:6;3569:20;3607:114;3717:3;3709:6;3702:4;3694:6;3690:17;3607:114;:::i;:::-;3598:123;;3481:246;;;;;:::o;3733:137::-;;3818:6;3812:13;3803:22;;3834:30;3858:5;3834:30;:::i;:::-;3793:77;;;;:::o;3890:273::-;;3995:3;3988:4;3980:6;3976:17;3972:27;3962:2;;4013:1;4010;4003:12;3962:2;4053:6;4040:20;4078:79;4153:3;4145:6;4138:4;4130:6;4126:17;4078:79;:::i;:::-;4069:88;;3952:211;;;;;:::o;4205:505::-;;4318:4;4306:9;4301:3;4297:19;4293:30;4290:2;;;4336:1;4333;4326:12;4290:2;4358:21;4374:4;4358:21;:::i;:::-;4349:30;;4439:1;4479:49;4524:3;4515:6;4504:9;4500:22;4479:49;:::i;:::-;4472:4;4465:5;4461:16;4454:75;4389:151;4601:2;4642:49;4687:3;4678:6;4667:9;4663:22;4642:49;:::i;:::-;4635:4;4628:5;4624:16;4617:75;4550:153;4280:430;;;;:::o;4716:139::-;;4800:6;4787:20;4778:29;;4816:33;4843:5;4816:33;:::i;:::-;4768:87;;;;:::o;4861:143::-;;4949:6;4943:13;4934:22;;4965:33;4992:5;4965:33;:::i;:::-;4924:80;;;;:::o;5010:827::-;;;;;5187:3;5175:9;5166:7;5162:23;5158:33;5155:2;;;5204:1;5201;5194:12;5155:2;5247:1;5272:61;5325:7;5316:6;5305:9;5301:22;5272:61;:::i;:::-;5262:71;;5218:125;5382:2;5408:53;5453:7;5444:6;5433:9;5429:22;5408:53;:::i;:::-;5398:63;;5353:118;5510:2;5536:53;5581:7;5572:6;5561:9;5557:22;5536:53;:::i;:::-;5526:63;;5481:118;5666:2;5655:9;5651:18;5638:32;5697:18;5689:6;5686:30;5683:2;;;5729:1;5726;5719:12;5683:2;5757:63;5812:7;5803:6;5792:9;5788:22;5757:63;:::i;:::-;5747:73;;5609:221;5145:692;;;;;;;:::o;5843:973::-;;;;;;6037:3;6025:9;6016:7;6012:23;6008:33;6005:2;;;6054:1;6051;6044:12;6005:2;6097:1;6122:61;6175:7;6166:6;6155:9;6151:22;6122:61;:::i;:::-;6112:71;;6068:125;6232:2;6258:53;6303:7;6294:6;6283:9;6279:22;6258:53;:::i;:::-;6248:63;;6203:118;6360:2;6386:53;6431:7;6422:6;6411:9;6407:22;6386:53;:::i;:::-;6376:63;;6331:118;6516:2;6505:9;6501:18;6488:32;6547:18;6539:6;6536:30;6533:2;;;6579:1;6576;6569:12;6533:2;6607:63;6662:7;6653:6;6642:9;6638:22;6607:63;:::i;:::-;6597:73;;6459:221;6719:3;6746:53;6791:7;6782:6;6771:9;6767:22;6746:53;:::i;:::-;6736:63;;6690:119;5995:821;;;;;;;;:::o;6822:407::-;;;6947:2;6935:9;6926:7;6922:23;6918:32;6915:2;;;6963:1;6960;6953:12;6915:2;7006:1;7031:53;7076:7;7067:6;7056:9;7052:22;7031:53;:::i;:::-;7021:63;;6977:117;7133:2;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7104:118;6905:324;;;;;:::o;7235:1010::-;;;;;7457:3;7445:9;7436:7;7432:23;7428:33;7425:2;;;7474:1;7471;7464:12;7425:2;7517:1;7542:53;7587:7;7578:6;7567:9;7563:22;7542:53;:::i;:::-;7532:63;;7488:117;7644:2;7670:61;7723:7;7714:6;7703:9;7699:22;7670:61;:::i;:::-;7660:71;;7615:126;7808:2;7797:9;7793:18;7780:32;7839:18;7831:6;7828:30;7825:2;;;7871:1;7868;7861:12;7825:2;7899:98;7989:7;7980:6;7969:9;7965:22;7899:98;:::i;:::-;7889:108;;7751:256;8074:2;8063:9;8059:18;8046:32;8105:18;8097:6;8094:30;8091:2;;;8137:1;8134;8127:12;8091:2;8165:63;8220:7;8211:6;8200:9;8196:22;8165:63;:::i;:::-;8155:73;;8017:221;7415:830;;;;;;;:::o;8251:957::-;;;;;;8437:3;8425:9;8416:7;8412:23;8408:33;8405:2;;;8454:1;8451;8444:12;8405:2;8497:1;8522:53;8567:7;8558:6;8547:9;8543:22;8522:53;:::i;:::-;8512:63;;8468:117;8624:2;8650:53;8695:7;8686:6;8675:9;8671:22;8650:53;:::i;:::-;8640:63;;8595:118;8752:2;8778:53;8823:7;8814:6;8803:9;8799:22;8778:53;:::i;:::-;8768:63;;8723:118;8880:2;8906:53;8951:7;8942:6;8931:9;8927:22;8906:53;:::i;:::-;8896:63;;8851:118;9036:3;9025:9;9021:19;9008:33;9068:18;9060:6;9057:30;9054:2;;;9100:1;9097;9090:12;9054:2;9128:63;9183:7;9174:6;9163:9;9159:22;9128:63;:::i;:::-;9118:73;;8979:222;8395:813;;;;;;;;:::o;9214:1041::-;;;;9461:2;9449:9;9440:7;9436:23;9432:32;9429:2;;;9477:1;9474;9467:12;9429:2;9548:1;9537:9;9533:17;9520:31;9578:18;9570:6;9567:30;9564:2;;;9610:1;9607;9600:12;9564:2;9638:78;9708:7;9699:6;9688:9;9684:22;9638:78;:::i;:::-;9628:88;;9491:235;9793:2;9782:9;9778:18;9765:32;9824:18;9816:6;9813:30;9810:2;;;9856:1;9853;9846:12;9810:2;9884:98;9974:7;9965:6;9954:9;9950:22;9884:98;:::i;:::-;9874:108;;9736:256;10059:2;10048:9;10044:18;10031:32;10090:18;10082:6;10079:30;10076:2;;;10122:1;10119;10112:12;10076:2;10150:88;10230:7;10221:6;10210:9;10206:22;10150:88;:::i;:::-;10140:98;;10002:246;9419:836;;;;;:::o;10261:278::-;;10377:2;10365:9;10356:7;10352:23;10348:32;10345:2;;;10393:1;10390;10383:12;10345:2;10436:1;10461:61;10514:7;10505:6;10494:9;10490:22;10461:61;:::i;:::-;10451:71;;10407:125;10335:204;;;;:::o;10545:284::-;;10664:2;10652:9;10643:7;10639:23;10635:32;10632:2;;;10680:1;10677;10670:12;10632:2;10723:1;10748:64;10804:7;10795:6;10784:9;10780:22;10748:64;:::i;:::-;10738:74;;10694:128;10622:207;;;;:::o;10835:259::-;;10965:86;11047:3;11039:6;10965:86;:::i;:::-;11083:4;11078:3;11074:14;11060:28;;10955:139;;;;:::o;11100:142::-;11203:32;11229:5;11203:32;:::i;:::-;11198:3;11191:45;11181:61;;:::o;11248:108::-;11325:24;11343:5;11325:24;:::i;:::-;11320:3;11313:37;11303:53;;:::o;11362:118::-;11449:24;11467:5;11449:24;:::i;:::-;11444:3;11437:37;11427:53;;:::o;11558:892::-;;11746:74;11814:5;11746:74;:::i;:::-;11836:106;11935:6;11930:3;11836:106;:::i;:::-;11829:113;;11966:76;12036:5;11966:76;:::i;:::-;12065:7;12096:1;12081:344;12106:6;12103:1;12100:13;12081:344;;;12182:6;12176:13;12209:103;12308:3;12293:13;12209:103;:::i;:::-;12202:110;;12335:80;12408:6;12335:80;:::i;:::-;12325:90;;12141:284;12128:1;12125;12121:9;12116:14;;12081:344;;;12085:14;12441:3;12434:10;;11722:728;;;;;;;:::o;12456:373::-;;12588:38;12620:5;12588:38;:::i;:::-;12642:88;12723:6;12718:3;12642:88;:::i;:::-;12635:95;;12739:52;12784:6;12779:3;12772:4;12765:5;12761:16;12739:52;:::i;:::-;12816:6;12811:3;12807:16;12800:23;;12564:265;;;;;:::o;12835:364::-;;12951:39;12984:5;12951:39;:::i;:::-;13006:71;13070:6;13065:3;13006:71;:::i;:::-;12999:78;;13086:52;13131:6;13126:3;13119:4;13112:5;13108:16;13086:52;:::i;:::-;13163:29;13185:6;13163:29;:::i;:::-;13158:3;13154:39;13147:46;;12927:272;;;;;:::o;13205:398::-;;13385:83;13466:1;13461:3;13385:83;:::i;:::-;13378:90;;13477:93;13566:3;13477:93;:::i;:::-;13595:1;13590:3;13586:11;13579:18;;13368:235;;;:::o;13609:366::-;;13772:67;13836:2;13831:3;13772:67;:::i;:::-;13765:74;;13848:93;13937:3;13848:93;:::i;:::-;13966:2;13961:3;13957:12;13950:19;;13755:220;;;:::o;13981:366::-;;14144:67;14208:2;14203:3;14144:67;:::i;:::-;14137:74;;14220:93;14309:3;14220:93;:::i;:::-;14338:2;14333:3;14329:12;14322:19;;14127:220;;;:::o;14421:490::-;14548:4;14543:3;14539:14;14636:4;14629:5;14625:16;14619:23;14655:63;14712:4;14707:3;14703:14;14689:12;14655:63;:::i;:::-;14563:165;14812:4;14805:5;14801:16;14795:23;14831:63;14888:4;14883:3;14879:14;14865:12;14831:63;:::i;:::-;14738:166;14517:394;;;:::o;14917:108::-;14994:24;15012:5;14994:24;:::i;:::-;14989:3;14982:37;14972:53;;:::o;15031:118::-;15118:24;15136:5;15118:24;:::i;:::-;15113:3;15106:37;15096:53;;:::o;15155:271::-;;15307:93;15396:3;15387:6;15307:93;:::i;:::-;15300:100;;15417:3;15410:10;;15289:137;;;;:::o;15432:379::-;;15638:147;15781:3;15638:147;:::i;:::-;15631:154;;15802:3;15795:10;;15620:191;;;:::o;15817:222::-;;15948:2;15937:9;15933:18;15925:26;;15961:71;16029:1;16018:9;16014:17;16005:6;15961:71;:::i;:::-;15915:124;;;;:::o;16045:364::-;;16220:2;16209:9;16205:18;16197:26;;16233:87;16317:1;16306:9;16302:17;16293:6;16233:87;:::i;:::-;16330:72;16398:2;16387:9;16383:18;16374:6;16330:72;:::i;:::-;16187:222;;;;;:::o;16415:442::-;;16602:2;16591:9;16587:18;16579:26;;16615:71;16683:1;16672:9;16668:17;16659:6;16615:71;:::i;:::-;16696:72;16764:2;16753:9;16749:18;16740:6;16696:72;:::i;:::-;16778;16846:2;16835:9;16831:18;16822:6;16778:72;:::i;:::-;16569:288;;;;;;:::o;16863:755::-;;17126:3;17115:9;17111:19;17103:27;;17140:71;17208:1;17197:9;17193:17;17184:6;17140:71;:::i;:::-;17221:72;17289:2;17278:9;17274:18;17265:6;17221:72;:::i;:::-;17303;17371:2;17360:9;17356:18;17347:6;17303:72;:::i;:::-;17422:9;17416:4;17412:20;17407:2;17396:9;17392:18;17385:48;17450:78;17523:4;17514:6;17450:78;:::i;:::-;17442:86;;17538:73;17606:3;17595:9;17591:19;17582:6;17538:73;:::i;:::-;17093:525;;;;;;;;:::o;17624:332::-;;17783:2;17772:9;17768:18;17760:26;;17796:71;17864:1;17853:9;17849:17;17840:6;17796:71;:::i;:::-;17877:72;17945:2;17934:9;17930:18;17921:6;17877:72;:::i;:::-;17750:206;;;;;:::o;17962:533::-;;18169:2;18158:9;18154:18;18146:26;;18182:71;18250:1;18239:9;18235:17;18226:6;18182:71;:::i;:::-;18263:72;18331:2;18320:9;18316:18;18307:6;18263:72;:::i;:::-;18382:9;18376:4;18372:20;18367:2;18356:9;18352:18;18345:48;18410:78;18483:4;18474:6;18410:78;:::i;:::-;18402:86;;18136:359;;;;;;:::o;18501:654::-;;18770:2;18759:9;18755:18;18747:26;;18819:9;18813:4;18809:20;18805:1;18794:9;18790:17;18783:47;18847:148;18990:4;18981:6;18847:148;:::i;:::-;18839:156;;19042:9;19036:4;19032:20;19027:2;19016:9;19012:18;19005:48;19070:78;19143:4;19134:6;19070:78;:::i;:::-;19062:86;;18737:418;;;;;:::o;19161:419::-;;19365:2;19354:9;19350:18;19342:26;;19414:9;19408:4;19404:20;19400:1;19389:9;19385:17;19378:47;19442:131;19568:4;19442:131;:::i;:::-;19434:139;;19332:248;;;:::o;19586:419::-;;19790:2;19779:9;19775:18;19767:26;;19839:9;19833:4;19829:20;19825:1;19814:9;19810:17;19803:47;19867:131;19993:4;19867:131;:::i;:::-;19859:139;;19757:248;;;:::o;20011:222::-;;20142:2;20131:9;20127:18;20119:26;;20155:71;20223:1;20212:9;20208:17;20199:6;20155:71;:::i;:::-;20109:124;;;;:::o;20239:423::-;;20418:2;20407:9;20403:18;20395:26;;20431:71;20499:1;20488:9;20484:17;20475:6;20431:71;:::i;:::-;20549:9;20543:4;20539:20;20534:2;20523:9;20519:18;20512:48;20577:78;20650:4;20641:6;20577:78;:::i;:::-;20569:86;;20385:277;;;;;:::o;20668:129::-;;20729:20;;:::i;:::-;20719:30;;20758:33;20786:4;20778:6;20758:33;:::i;:::-;20709:88;;;:::o;20803:75::-;;20869:2;20863:9;20853:19;;20843:35;:::o;20884:311::-;;21051:18;21043:6;21040:30;21037:2;;;21073:18;;:::i;:::-;21037:2;21123:4;21115:6;21111:17;21103:25;;21183:4;21177;21173:15;21165:23;;20966:229;;;:::o;21201:321::-;;21378:18;21370:6;21367:30;21364:2;;;21400:18;;:::i;:::-;21364:2;21450:4;21442:6;21438:17;21430:25;;21510:4;21504;21500:15;21492:23;;21293:229;;;:::o;21528:331::-;;21715:18;21707:6;21704:30;21701:2;;;21737:18;;:::i;:::-;21701:2;21787:4;21779:6;21775:17;21767:25;;21847:4;21841;21837:15;21829:23;;21630:229;;;:::o;21865:308::-;;22017:18;22009:6;22006:30;22003:2;;;22039:18;;:::i;:::-;22003:2;22077:29;22099:6;22077:29;:::i;:::-;22069:37;;22161:4;22155;22151:15;22143:23;;21932:241;;;:::o;22179:152::-;;22289:3;22281:11;;22319:4;22314:3;22310:14;22302:22;;22271:60;;;:::o;22337:134::-;;22458:5;22452:12;22442:22;;22431:40;;;:::o;22477:98::-;;22562:5;22556:12;22546:22;;22535:40;;;:::o;22581:99::-;;22667:5;22661:12;22651:22;;22640:40;;;:::o;22686:133::-;;22808:4;22803:3;22799:14;22791:22;;22781:38;;;:::o;22825:204::-;;22978:6;22973:3;22966:19;23018:4;23013:3;23009:14;22994:29;;22956:73;;;;:::o;23035:147::-;;23173:3;23158:18;;23148:34;;;;:::o;23188:169::-;;23306:6;23301:3;23294:19;23346:4;23341:3;23337:14;23322:29;;23284:73;;;;:::o;23363:305::-;;23422:20;23440:1;23422:20;:::i;:::-;23417:25;;23456:20;23474:1;23456:20;:::i;:::-;23451:25;;23610:1;23542:66;23538:74;23535:1;23532:81;23529:2;;;23616:18;;:::i;:::-;23529:2;23660:1;23657;23653:9;23646:16;;23407:261;;;;:::o;23674:191::-;;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23807:1;23804;23801:8;23798:2;;;23812:18;;:::i;:::-;23798:2;23857:1;23854;23850:9;23842:17;;23719:146;;;;:::o;23871:96::-;;23937:24;23955:5;23937:24;:::i;:::-;23926:35;;23916:51;;;:::o;23973:104::-;;24047:24;24065:5;24047:24;:::i;:::-;24036:35;;24026:51;;;:::o;24083:90::-;;24160:5;24153:13;24146:21;24135:32;;24125:48;;;:::o;24179:126::-;;24256:42;24249:5;24245:54;24234:65;;24224:81;;;:::o;24311:77::-;;24377:5;24366:16;;24356:32;;;:::o;24394:154::-;24478:6;24473:3;24468;24455:30;24540:1;24531:6;24526:3;24522:16;24515:27;24445:103;;;:::o;24554:307::-;24622:1;24632:113;24646:6;24643:1;24640:13;24632:113;;;24731:1;24726:3;24722:11;24716:18;24712:1;24707:3;24703:11;24696:39;24668:2;24665:1;24661:10;24656:15;;24632:113;;;24763:6;24760:1;24757:13;24754:2;;;24843:1;24834:6;24829:3;24825:16;24818:27;24754:2;24603:258;;;;:::o;24867:281::-;24950:27;24972:4;24950:27;:::i;:::-;24942:6;24938:40;25080:6;25068:10;25065:22;25044:18;25032:10;25029:34;25026:62;25023:2;;;25091:18;;:::i;:::-;25023:2;25131:10;25127:2;25120:22;24910:238;;;:::o;25154:233::-;;25216:24;25234:5;25216:24;:::i;:::-;25207:33;;25262:66;25255:5;25252:77;25249:2;;;25332:18;;:::i;:::-;25249:2;25379:1;25372:5;25368:13;25361:20;;25197:190;;;:::o;25393:180::-;25441:77;25438:1;25431:88;25538:4;25535:1;25528:15;25562:4;25559:1;25552:15;25579:180;25627:77;25624:1;25617:88;25724:4;25721:1;25714:15;25748:4;25745:1;25738:15;25765:102;;25857:2;25853:7;25848:2;25841:5;25837:14;25833:28;25823:38;;25813:54;;;:::o;25873:114::-;25979:8;:::o;25993:181::-;26133:33;26129:1;26121:6;26117:14;26110:57;26099:75;:::o;26180:175::-;26320:27;26316:1;26308:6;26304:14;26297:51;26286:69;:::o;26361:122::-;26434:24;26452:5;26434:24;:::i;:::-;26427:5;26424:35;26414:2;;26473:1;26470;26463:12;26414:2;26404:79;:::o;26489:138::-;26570:32;26596:5;26570:32;:::i;:::-;26563:5;26560:43;26550:2;;26617:1;26614;26607:12;26550:2;26540:87;:::o;26633:116::-;26703:21;26718:5;26703:21;:::i;:::-;26696:5;26693:32;26683:2;;26739:1;26736;26729:12;26683:2;26673:76;:::o;26755:122::-;26828:24;26846:5;26828:24;:::i;:::-;26821:5;26818:35;26808:2;;26867:1;26864;26857:12;26808:2;26798:79;:::o

Swarm Source

ipfs://f79e9e57b8b1b470b5f862af9e6c744317fa82587c4abfd4889568f3376d34d5
Block Transaction Difficulty Gas Used Reward
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.