Contract 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d4 8

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5f2524ed44e549dc7cee7a65c9c170403f5f8429247152784a3a0ffebc8661c00x60a0604017711392022-08-31 19:58:30203 days 14 hrs ago0x6f24a47fc8ae5441eb47effc3665e70e69ac3f05 IN  Create: AxelarGasService0 GLMR0.1469538315
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1abc00efcc49a20fff6aa10c61d7c2587dc0caf5b212cf92292cb1bf2bcd079031998642023-03-23 10:13:123 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xb6cf1ec7f7e832a7b4949c3f8467c9a2b74df3a90.250602482607196975 GLMR
0x092be270bd68a0952a1c918f07a1ab7076362fbd7ebfdd5d4c892eaf148b6d6931998612023-03-23 10:12:303 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xcc2cf78064081483371adb4858f788704924bd380.680189720225225281 GLMR
0x6a26d6ee7fff5cf2a5e95b76f003ba2c25c5102774cb9be56f3d3f915d84250831998542023-03-23 10:11:065 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x578fa6428445463c8456b559ecd55bcd9a0344f84.308787621461642736 GLMR
0x25fab55d1648bbdce86dbd0fae98fda086dae12f2d32a65dd60aa17dcfc3a7eb31998532023-03-23 10:10:485 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x8f3c62e33c948c08e3b1679901e60929dfe49c6b0.26267732668268573 GLMR
0x716765cae7acfdf3049ed0a6a5f18c8525a1ab2db3ecb9faf7eba308c959216531998512023-03-23 10:10:246 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x395ec3a7591fbcc6925a1744c181cc44ce3477fc0.121181860038599945 GLMR
0xc5d0c1d43e87f09270efb443520e6af243e1f200d2f704ad1c54b04690ad129931998482023-03-23 10:09:486 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xac2c17a5018680c2368e747532b47a55d7debe1a0.189490194512367066 GLMR
0x71e7ba185d38dc94ff24706d680275d83173728b62e3399aefa42302e7f4fe7631997922023-03-23 9:58:0018 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x578fa6428445463c8456b559ecd55bcd9a0344f84.170336153848894334 GLMR
0x1d05a91cd5d6bfb95bb14e2b23e760a41232cc718aa429bd86a408eaf12546d731997632023-03-23 9:52:1224 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xb459f049f2d58ccca380d2d8f1d21216dae6ee2c0.128472558795370978 GLMR
0x931358b95bd83460401894e12576fa22bef732166f6a53d8f591b70b8777393031997572023-03-23 9:51:0025 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x4db769e71c3fa143a91391e91a9209f0e9618bb90.326898098396834813 GLMR
0xa0d509c301b21bd1f888eafe57f069a3857d693b3c7501226afbc94a2269ccd631997412023-03-23 9:47:4228 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x4f781ddb7f439d24d311e987e4f08c15993e35833.874515706263236048 GLMR
0xba9837a2890f9231983d452bd5084f5af8c52383a1e5d3bf1e7841d1159a5ce031997002023-03-23 9:39:1837 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x7ea9da6ac18016459e79ffb4d0979d75ae1eea630.176652806455101757 GLMR
0x8c0eccfe0c6261750bce37a70e06839e7db2bfd46225d4be597f6838a6b3fdd531996922023-03-23 9:37:4238 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x2e9922a1b2b8d9c38210504b7bb8d2409ad189600.15206728305118275 GLMR
0x3d222c86234b29104821d5f4cb9f8334010b4ae903f1ffbfa478eb1b8432a8da31996732023-03-23 9:33:3042 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xabfaefc644a54f8971b16a7e89b3627406deccf00.342144820796415783 GLMR
0x70667ead63d06cd936813e7f522a4c1258058400666ed57253a47e2a464db06c31996732023-03-23 9:33:3042 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x553c81d85c57e30c999ebde1a1e65b5f6d9da77c4.040512101297025538 GLMR
0x18f778c565afc35beab573a2b9660496a27f8a01deb3129d89dca7e302facf1831996702023-03-23 9:32:5443 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xc986782911d4028eb7cf1d652cbbdedaffa124d53.934325822637350978 GLMR
0x69156f05d57d7936aa0db12d187d15adf4b12384ae9b24eab44cf3d85d519e0431996532023-03-23 9:29:3046 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xabfaefc644a54f8971b16a7e89b3627406deccf00.314909552718651897 GLMR
0x29b936b192030a8f1cc134ae208e5cdcc245141dda3f813f382161887d0fd9a731996102023-03-23 9:20:4855 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x508fa92dd3ae590400f2eed4e815ad2946c009c82.035529702438461097 GLMR
0x70ce45e78da361ea7b0c812a107e9125845e3a0b570c14da2e7aaf37d15b7aa131995962023-03-23 9:17:4858 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xc85c7fb7e76f02186550eaaa7be4505726d59ed414.841298944355919787 GLMR
0x772279327b3bcc7c0c2fa908af9fe49c376655ff9acf17d27e2b2a21bbbb76bc31995542023-03-23 9:09:121 hr 7 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xb9e9735a381b9163ce6ffe4c298073db5ffd2c4a3.666576163556879653 GLMR
0x6cc126d5ecebe70d6fad2a14793935c682ca4d1206ef835f2157b63b2d988ab831995522023-03-23 9:08:421 hr 7 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xabfaefc644a54f8971b16a7e89b3627406deccf00.235070740014850843 GLMR
0xd5f78d2644f4fd36ab3ea0ea4d5e6813585887f3ac802dddeba30da54be61c6531995502023-03-23 9:08:181 hr 8 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x2e9922a1b2b8d9c38210504b7bb8d2409ad189600.259700862590999282 GLMR
0xe03c8c17cd82667a38a1fab09c3b80ddb98998beca9ca799aff27ac3e9b7cb8d31995112023-03-23 9:00:301 hr 15 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x080a906a37e6a5bce54f263b525e61b548d4fbfd0.219970867743861598 GLMR
0x08c4c33f072f730d871bbd094c153c134941ea25949dac76e41a77a3d71502fa31994952023-03-23 8:57:121 hr 19 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xd49e79a2f10cba5e801d79d29081c87cffd8608a0.466340547836254671 GLMR
0xafecfeb35942356429b3aacd195ad6e3ed9adf0b7125684d3b9185488eeb649431994862023-03-23 8:55:241 hr 21 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40xbeff09846b58a36c541da9b120d997426ec9a2353.959489932224871556 GLMR
0x3a530eaf49bc41171751224b3dcc19a13c79e0ea03e52eaf40e8f38f1d88012231994802023-03-23 8:54:121 hr 22 mins ago 0xe622b1d44f5061db10aba2594f1a8eb2dc1fc1d40x92fdedf1108d6db9677c3b09915b41a96e1c3eff0.3094704099748532 GLMR
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
AxelarGasService

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at moonbeam.moonscan.io on 2022-09-02
*/

/**
 *Submitted for verification at Etherscan.io on 2022-08-31
*/

// Sources flattened with hardhat v2.9.9 https://hardhat.org

// File contracts/interfaces/IUpgradable.sol

// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

// General interface for upgradable contracts
interface IUpgradable {
    error NotOwner();
    error InvalidOwner();
    error InvalidCodeHash();
    error InvalidImplementation();
    error SetupFailed();
    error NotProxy();

    event Upgraded(address indexed newImplementation);
    event OwnershipTransferred(address indexed newOwner);

    // Get current owner
    function owner() external view returns (address);

    function contractId() external pure returns (bytes32);

    function implementation() external view returns (address);

    function upgrade(
        address newImplementation,
        bytes32 newImplementationCodeHash,
        bytes calldata params
    ) external;

    function setup(bytes calldata data) external;
}


// File contracts/interfaces/IAxelarGasService.sol

// This should be owned by the microservice that is paying for gas.
interface IAxelarGasService is IUpgradable {
    error NothingReceived();
    error TransferFailed();
    error InvalidAddress();
    error NotCollector();
    error InvalidAmounts();

    event GasPaidForContractCall(
        address indexed sourceAddress,
        string destinationChain,
        string destinationAddress,
        bytes32 indexed payloadHash,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    );

    event GasPaidForContractCallWithToken(
        address indexed sourceAddress,
        string destinationChain,
        string destinationAddress,
        bytes32 indexed payloadHash,
        string symbol,
        uint256 amount,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    );

    event NativeGasPaidForContractCall(
        address indexed sourceAddress,
        string destinationChain,
        string destinationAddress,
        bytes32 indexed payloadHash,
        uint256 gasFeeAmount,
        address refundAddress
    );

    event NativeGasPaidForContractCallWithToken(
        address indexed sourceAddress,
        string destinationChain,
        string destinationAddress,
        bytes32 indexed payloadHash,
        string symbol,
        uint256 amount,
        uint256 gasFeeAmount,
        address refundAddress
    );

    event GasAdded(bytes32 indexed txHash, uint256 indexed logIndex, address gasToken, uint256 gasFeeAmount, address refundAddress);

    event NativeGasAdded(bytes32 indexed txHash, uint256 indexed logIndex, uint256 gasFeeAmount, address refundAddress);

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payGasForContractCall(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external;

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payGasForContractCallWithToken(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        string calldata symbol,
        uint256 amount,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external;

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payNativeGasForContractCall(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        address refundAddress
    ) external payable;

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payNativeGasForContractCallWithToken(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        string calldata symbol,
        uint256 amount,
        address refundAddress
    ) external payable;

    function addGas(
        bytes32 txHash,
        uint256 txIndex,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external;

    function addNativeGas(
        bytes32 txHash,
        uint256 logIndex,
        address refundAddress
    ) external payable;

    function collectFees(
        address payable receiver,
        address[] calldata tokens,
        uint256[] calldata amounts
    ) external;

    function refund(
        address payable receiver,
        address token,
        uint256 amount
    ) external;

    function gasCollector() external returns (address);
}


// File contracts/interfaces/IERC20.sol

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    error InvalidAccount();

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// File contracts/util/Upgradable.sol

abstract contract Upgradable is IUpgradable {
    // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
    // keccak256('owner')
    bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0;

    modifier onlyOwner() {
        if (owner() != msg.sender) revert NotOwner();
        _;
    }

    function owner() public view returns (address owner_) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            owner_ := sload(_OWNER_SLOT)
        }
    }

    function transferOwnership(address newOwner) external virtual onlyOwner {
        if (newOwner == address(0)) revert InvalidOwner();

        emit OwnershipTransferred(newOwner);
        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(_OWNER_SLOT, newOwner)
        }
    }

    function implementation() public view returns (address implementation_) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            implementation_ := sload(_IMPLEMENTATION_SLOT)
        }
    }

    function upgrade(
        address newImplementation,
        bytes32 newImplementationCodeHash,
        bytes calldata params
    ) external override onlyOwner {
        if (IUpgradable(newImplementation).contractId() != IUpgradable(this).contractId()) revert InvalidImplementation();
        if (newImplementationCodeHash != newImplementation.codehash) revert InvalidCodeHash();

        if (params.length > 0) {
            // solhint-disable-next-line avoid-low-level-calls
            (bool success, ) = newImplementation.delegatecall(abi.encodeWithSelector(this.setup.selector, params));

            if (!success) revert SetupFailed();
        }

        emit Upgraded(newImplementation);
        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(_IMPLEMENTATION_SLOT, newImplementation)
        }
    }

    function setup(bytes calldata data) external override {
        // Prevent setup from being called on the implementation
        if (implementation() == address(0)) revert NotProxy();

        _setup(data);
    }

    // solhint-disable-next-line no-empty-blocks
    function _setup(bytes calldata data) internal virtual {}
}


// File contracts/gas-service/AxelarGasService.sol

// This should be owned by the microservice that is paying for gas.
contract AxelarGasService is Upgradable, IAxelarGasService {
    address public immutable gasCollector;

    constructor(address gasCollector_) {
        gasCollector = gasCollector_;
    }

    modifier onlyCollector() {
        if (msg.sender != gasCollector) revert NotCollector();

        _;
    }

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payGasForContractCall(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external override {
        _safeTransferFrom(gasToken, msg.sender, gasFeeAmount);

        emit GasPaidForContractCall(
            sender,
            destinationChain,
            destinationAddress,
            keccak256(payload),
            gasToken,
            gasFeeAmount,
            refundAddress
        );
    }

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payGasForContractCallWithToken(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        string memory symbol,
        uint256 amount,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external override {
        _safeTransferFrom(gasToken, msg.sender, gasFeeAmount);

        emit GasPaidForContractCallWithToken(
            sender,
            destinationChain,
            destinationAddress,
            keccak256(payload),
            symbol,
            amount,
            gasToken,
            gasFeeAmount,
            refundAddress
        );
    }

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payNativeGasForContractCall(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        address refundAddress
    ) external payable override {
        if (msg.value == 0) revert NothingReceived();

        emit NativeGasPaidForContractCall(sender, destinationChain, destinationAddress, keccak256(payload), msg.value, refundAddress);
    }

    // This is called on the source chain before calling the gateway to execute a remote contract.
    function payNativeGasForContractCallWithToken(
        address sender,
        string calldata destinationChain,
        string calldata destinationAddress,
        bytes calldata payload,
        string calldata symbol,
        uint256 amount,
        address refundAddress
    ) external payable override {
        if (msg.value == 0) revert NothingReceived();

        emit NativeGasPaidForContractCallWithToken(
            sender,
            destinationChain,
            destinationAddress,
            keccak256(payload),
            symbol,
            amount,
            msg.value,
            refundAddress
        );
    }

    function addGas(
        bytes32 txHash,
        uint256 logIndex,
        address gasToken,
        uint256 gasFeeAmount,
        address refundAddress
    ) external override {
        _safeTransferFrom(gasToken, msg.sender, gasFeeAmount);

        emit GasAdded(txHash, logIndex, gasToken, gasFeeAmount, refundAddress);
    }

    function addNativeGas(
        bytes32 txHash,
        uint256 logIndex,
        address refundAddress
    ) external payable override {
        if (msg.value == 0) revert NothingReceived();

        emit NativeGasAdded(txHash, logIndex, msg.value, refundAddress);
    }

    function collectFees(
        address payable receiver,
        address[] calldata tokens,
        uint256[] calldata amounts
    ) external onlyCollector {
        if (receiver == address(0)) revert InvalidAddress();

        uint256 tokensLength = tokens.length;
        if (tokensLength != amounts.length) revert InvalidAmounts();

        for (uint256 i; i < tokensLength; i++) {
            address token = tokens[i];
            uint256 amount = amounts[i];
            if (amount == 0) revert InvalidAmounts();

            if (token == address(0)) {
                if (amount <= address(this).balance) receiver.transfer(amount);
            } else {
                if (amount <= IERC20(token).balanceOf(address(this))) _safeTransfer(token, receiver, amount);
            }
        }
    }

    function refund(
        address payable receiver,
        address token,
        uint256 amount
    ) external onlyCollector {
        if (receiver == address(0)) revert InvalidAddress();

        if (token == address(0)) {
            receiver.transfer(amount);
        } else {
            _safeTransfer(token, receiver, amount);
        }
    }

    function _safeTransfer(
        address tokenAddress,
        address receiver,
        uint256 amount
    ) internal {
        if (amount == 0) revert NothingReceived();

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returnData) = tokenAddress.call(abi.encodeWithSelector(IERC20.transfer.selector, receiver, amount));
        bool transferred = success && (returnData.length == uint256(0) || abi.decode(returnData, (bool)));

        if (!transferred || tokenAddress.code.length == 0) revert TransferFailed();
    }

    function _safeTransferFrom(
        address tokenAddress,
        address from,
        uint256 amount
    ) internal {
        if (amount == 0) revert NothingReceived();

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returnData) = tokenAddress.call(
            abi.encodeWithSelector(IERC20.transferFrom.selector, from, address(this), amount)
        );
        bool transferred = success && (returnData.length == uint256(0) || abi.decode(returnData, (bool)));

        if (!transferred || tokenAddress.code.length == 0) revert TransferFailed();
    }

    function contractId() external pure returns (bytes32) {
        return keccak256('axelar-gas-service');
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"gasCollector_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidAmounts","type":"error"},{"inputs":[],"name":"InvalidCodeHash","type":"error"},{"inputs":[],"name":"InvalidImplementation","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"NotCollector","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotProxy","type":"error"},{"inputs":[],"name":"NothingReceived","type":"error"},{"inputs":[],"name":"SetupFailed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"logIndex","type":"uint256"},{"indexed":false,"internalType":"address","name":"gasToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"GasAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sourceAddress","type":"address"},{"indexed":false,"internalType":"string","name":"destinationChain","type":"string"},{"indexed":false,"internalType":"string","name":"destinationAddress","type":"string"},{"indexed":true,"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"gasToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"GasPaidForContractCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sourceAddress","type":"address"},{"indexed":false,"internalType":"string","name":"destinationChain","type":"string"},{"indexed":false,"internalType":"string","name":"destinationAddress","type":"string"},{"indexed":true,"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"gasToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"GasPaidForContractCallWithToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"logIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"NativeGasAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sourceAddress","type":"address"},{"indexed":false,"internalType":"string","name":"destinationChain","type":"string"},{"indexed":false,"internalType":"string","name":"destinationAddress","type":"string"},{"indexed":true,"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"NativeGasPaidForContractCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sourceAddress","type":"address"},{"indexed":false,"internalType":"string","name":"destinationChain","type":"string"},{"indexed":false,"internalType":"string","name":"destinationAddress","type":"string"},{"indexed":true,"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"refundAddress","type":"address"}],"name":"NativeGasPaidForContractCallWithToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"addGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"addNativeGas","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"collectFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"gasCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"destinationChain","type":"string"},{"internalType":"string","name":"destinationAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"payGasForContractCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"destinationChain","type":"string"},{"internalType":"string","name":"destinationAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"uint256","name":"gasFeeAmount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"payGasForContractCallWithToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"destinationChain","type":"string"},{"internalType":"string","name":"destinationAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"payNativeGasForContractCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"destinationChain","type":"string"},{"internalType":"string","name":"destinationAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"payNativeGasForContractCallWithToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes32","name":"newImplementationCodeHash","type":"bytes32"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b506040516119df3803806119df83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611946610099600039600081816101dc015281816103ae01526105c401526119466000f3fe6080604052600436106100e85760003560e01c80639ded06df1161008a578063cd433ada11610059578063cd433ada146102a5578063edb6b3a5146102b8578063f2fde38b146102d8578063fd09e3bd146102f857600080fd5b80639ded06df14610232578063a3499c7314610252578063ab1999ba14610272578063c62c20021461029257600080fd5b80638291286c116100c65780638291286c1461016f57806382ad6f35146101aa578063892b5007146101ca5780638da5cb5b146101fe57600080fd5b80630c93e3bb146100ed5780631055eaaf146101025780635c60da1b14610122575b600080fd5b6101006100fb366004610fc5565b610318565b005b34801561010e57600080fd5b5061010061011d3660046110ca565b6103a3565b34801561012e57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017b57600080fd5b506040517ffaa2f015f2ce5aee225904728de2def86eb8837491efd21f1a04fc20d8e923f68152602001610166565b3480156101b657600080fd5b506101006101c536600461114d565b6105b9565b3480156101d657600080fd5b506101527f000000000000000000000000000000000000000000000000000000000000000081565b34801561020a57600080fd5b507f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c054610152565b34801561023e57600080fd5b5061010061024d36600461118e565b610682565b34801561025e57600080fd5b5061010061026d3660046111d0565b6106f1565b34801561027e57600080fd5b5061010061028d36600461122c565b610a0d565b6101006102a0366004611282565b610a6d565b6101006102b3366004611375565b610b01565b3480156102c457600080fd5b506101006102d3366004611451565b610b69565b3480156102e457600080fd5b506101006102f336600461156f565b610beb565b34801561030457600080fd5b50610100610313366004611593565b610cd3565b346103365760405163b5c74a2760e01b815260040160405180910390fd5b828260405161034692919061166b565b6040518091039020886001600160a01b03167f617332c1832058df6ee45fcbdf471251474c9945a8e5d229287a21a5f67ccf0a898989893488604051610391969594939291906116a4565b60405180910390a35050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103eb57604051623bb10360e91b815260040160405180910390fd5b6001600160a01b0385166104125760405163e6c4247b60e01b815260040160405180910390fd5b8281811461043357604051636c2b7e2d60e11b815260040160405180910390fd5b60005b818110156105b0576000868683818110610452576104526116ee565b9050602002016020810190610467919061156f565b9050600085858481811061047d5761047d6116ee565b90506020020135905080600014156104a857604051636c2b7e2d60e11b815260040160405180910390fd5b6001600160a01b0382166104fa574781116104f5576040516001600160a01b038a169082156108fc029083906000818181858888f193505050501580156104f3573d6000803e3d6000fd5b505b61059b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038316906370a082319060240160206040518083038186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a9190611704565b811161059b5761059b828a83610d4f565b505080806105a89061171d565b915050610436565b50505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461060157604051623bb10360e91b815260040160405180910390fd5b6001600160a01b0383166106285760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216610672576040516001600160a01b0384169082156108fc029083906000818181858888f1935050505015801561066c573d6000803e3d6000fd5b50505050565b61067d828483610d4f565b505050565b60006106ac7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031614156106ed576040517fbf10dd3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b3361071a7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b6001600160a01b031614610741576040516330cd747160e01b815260040160405180910390fd5b306001600160a01b0316638291286c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561077a57600080fd5b505afa15801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190611704565b846001600160a01b0316638291286c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107eb57600080fd5b505afa1580156107ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108239190611704565b1461085a576040517f68155f9a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b03163f831461089d576040517f8f84fb2400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156109b2576000846001600160a01b0316639ded06df60e01b84846040516024016108ca929190611746565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610935919061178e565b600060405180830381855af49150503d8060008114610970576040519150601f19603f3d011682016040523d82523d6000602084013e610975565b606091505b50509050806109b0576040517f97905dfb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6040516001600160a01b038516907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b610a18833384610ee4565b604080516001600160a01b038581168252602082018590528316818301529051859187917f2275e75614080f9782f72563c2c1688c901c5339c7f9f436d323f9386fed700a9181900360600190a35050505050565b34610a8b5760405163b5c74a2760e01b815260040160405180910390fd5b8585604051610a9b92919061166b565b60405180910390208b6001600160a01b03167f999d431b58761213cf53af96262b67a069cbd963499fd8effd1e21556217b8418c8c8c8c8a8a8a348b604051610aec999897969594939291906117aa565b60405180910390a35050505050505050505050565b34610b1f5760405163b5c74a2760e01b815260040160405180910390fd5b604080513481526001600160a01b0383166020820152839185917ffeb6b00343feee0f29a1a4345f8bf93ca1c73ee922248a4237a4e50d6447604e910160405180910390a3505050565b610b74833384610ee4565b8686604051610b8492919061166b565b60405180910390208c6001600160a01b03167f8875f9764f28fa82d3e7ff1b80bd5c8f665e1f42fcd8c2faebc7c400a4ba1bbd8d8d8d8d8b8b8b8b8b604051610bd599989796959493929190611811565b60405180910390a3505050505050505050505050565b33610c147f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05490565b6001600160a01b031614610c3b576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b038116610c7b576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c055565b610cde833384610ee4565b8484604051610cee92919061166b565b60405180910390208a6001600160a01b03167f99206760f0be19dd093729bd35e5924daff5e217bcedc5223ed067b60008cf8a8b8b8b8b898989604051610d3b979695949392919061189a565b60405180910390a350505050505050505050565b80610d6d5760405163b5c74a2760e01b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905260009182918616907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610e20919061178e565b6000604051808303816000865af19150503d8060008114610e5d576040519150601f19603f3d011682016040523d82523d6000602084013e610e62565b606091505b50915091506000828015610e8e575081511580610e8e575081806020019051810190610e8e91906118ee565b9050801580610ea557506001600160a01b0386163b155b15610edc576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b80610f025760405163b5c74a2760e01b815260040160405180910390fd5b6040516001600160a01b0383811660248301523060448301526064820183905260009182918616907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610db5565b6001600160a01b0381168114610f6957600080fd5b50565b8035610f7781610f54565b919050565b60008083601f840112610f8e57600080fd5b50813567ffffffffffffffff811115610fa657600080fd5b602083019150836020828501011115610fbe57600080fd5b9250929050565b60008060008060008060008060a0898b031215610fe157600080fd5b8835610fec81610f54565b9750602089013567ffffffffffffffff8082111561100957600080fd5b6110158c838d01610f7c565b909950975060408b013591508082111561102e57600080fd5b61103a8c838d01610f7c565b909750955060608b013591508082111561105357600080fd5b506110608b828c01610f7c565b909450925050608089013561107481610f54565b809150509295985092959890939650565b60008083601f84011261109757600080fd5b50813567ffffffffffffffff8111156110af57600080fd5b6020830191508360208260051b8501011115610fbe57600080fd5b6000806000806000606086880312156110e257600080fd5b85356110ed81610f54565b9450602086013567ffffffffffffffff8082111561110a57600080fd5b61111689838a01611085565b9096509450604088013591508082111561112f57600080fd5b5061113c88828901611085565b969995985093965092949392505050565b60008060006060848603121561116257600080fd5b833561116d81610f54565b9250602084013561117d81610f54565b929592945050506040919091013590565b600080602083850312156111a157600080fd5b823567ffffffffffffffff8111156111b857600080fd5b6111c485828601610f7c565b90969095509350505050565b600080600080606085870312156111e657600080fd5b84356111f181610f54565b935060208501359250604085013567ffffffffffffffff81111561121457600080fd5b61122087828801610f7c565b95989497509550505050565b600080600080600060a0868803121561124457600080fd5b8535945060208601359350604086013561125d81610f54565b925060608601359150608086013561127481610f54565b809150509295509295909350565b600080600080600080600080600080600060e08c8e0312156112a357600080fd5b6112ac8c610f6c565b9a5067ffffffffffffffff8060208e013511156112c857600080fd5b6112d88e60208f01358f01610f7c565b909b50995060408d01358110156112ee57600080fd5b6112fe8e60408f01358f01610f7c565b909950975060608d013581101561131457600080fd5b6113248e60608f01358f01610f7c565b909750955060808d013581101561133a57600080fd5b5061134b8d60808e01358e01610f7c565b909450925060a08c0135915061136360c08d01610f6c565b90509295989b509295989b9093969950565b60008060006060848603121561138a57600080fd5b833592506020840135915060408401356113a381610f54565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113d557600080fd5b813567ffffffffffffffff808211156113f0576113f06113ae565b604051601f8301601f19908116603f01168101908282118183101715611418576114186113ae565b8160405283815286602085880101111561143157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806000806000806000806000806101208d8f03121561147457600080fd5b61147d8d610f6c565b9b5067ffffffffffffffff60208e0135111561149857600080fd5b6114a88e60208f01358f01610f7c565b909b50995067ffffffffffffffff60408e013511156114c657600080fd5b6114d68e60408f01358f01610f7c565b909950975067ffffffffffffffff60608e013511156114f457600080fd5b6115048e60608f01358f01610f7c565b909750955067ffffffffffffffff60808e0135111561152257600080fd5b6115328e60808f01358f016113c4565b945060a08d0135935061154760c08e01610f6c565b925060e08d0135915061155d6101008e01610f6c565b90509295989b509295989b509295989b565b60006020828403121561158157600080fd5b813561158c81610f54565b9392505050565b60008060008060008060008060008060e08b8d0312156115b257600080fd5b8a356115bd81610f54565b995060208b013567ffffffffffffffff808211156115da57600080fd5b6115e68e838f01610f7c565b909b50995060408d01359150808211156115ff57600080fd5b61160b8e838f01610f7c565b909950975060608d013591508082111561162457600080fd5b506116318d828e01610f7c565b90965094505060808b013561164581610f54565b925060a08b0135915061165a60c08c01610f6c565b90509295989b9194979a5092959850565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6080815260006116b860808301888a61167b565b82810360208401526116cb81878961167b565b9150508360408301526001600160a01b0383166060830152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561171657600080fd5b5051919050565b600060001982141561173f57634e487b7160e01b600052601160045260246000fd5b5060010190565b60208152600061175a60208301848661167b565b949350505050565b60005b8381101561177d578181015183820152602001611765565b8381111561066c5750506000910152565b600082516117a0818460208701611762565b9190910192915050565b60c0815260006117be60c083018b8d61167b565b82810360208401526117d1818a8c61167b565b905082810360408401526117e681888a61167b565b6060840196909652505060808101929092526001600160a01b031660a0909101529695505050505050565b60e08152600061182560e083018b8d61167b565b8281036020840152611838818a8c61167b565b905082810360408401528751808252611858816020840160208c01611762565b60608401979097526001600160a01b03958616608084015260a083019490945250921660c0909201919091526020601f909201601f1916010195945050505050565b60a0815260006118ae60a08301898b61167b565b82810360208401526118c181888a61167b565b6001600160a01b039687166040850152606084019590955250509216608090920191909152949350505050565b60006020828403121561190057600080fd5b8151801515811461158c57600080fdfea2646970667358221220b0657a9f6bf7e3bb821fd517ab4ab84085688357cf69f3c2551a7a743a9ca79364736f6c63430008090033000000000000000000000000345662abfe0e257e23552a434d02ef274ccb6a90

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

000000000000000000000000345662abfe0e257e23552a434d02ef274ccb6a90

-----Decoded View---------------
Arg [0] : gasCollector_ (address): 0x345662abfe0e257e23552a434d02ef274ccb6a90

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000345662abfe0e257e23552a434d02ef274ccb6a90


Deployed ByteCode Sourcemap

10523:6346:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:449;;;;;;:::i;:::-;;:::i;:::-;;14351:819;;;;;;;;;;-1:-1:-1;14351:819:0;;;;;:::i;:::-;;:::i;8951:228::-;;;;;;;;;;-1:-1:-1;9140:20:0;9134:27;8951:228;;;-1:-1:-1;;;;;3414:55:1;;;3396:74;;3384:2;3369:18;8951:228:0;;;;;;;;16755:111;;;;;;;;;;-1:-1:-1;16755:111:0;;16827:31;3627:25:1;;3615:2;3600:18;16755:111:0;3481:177:1;15178:360:0;;;;;;;;;;-1:-1:-1;15178:360:0;;;;;:::i;:::-;;:::i;10589:37::-;;;;;;;;;;;;;;;8424:192;;;;;;;;;;-1:-1:-1;8586:11:0;8580:18;8424:192;;10060:217;;;;;;;;;;-1:-1:-1;10060:217:0;;;;;:::i;:::-;;:::i;9187:865::-;;;;;;;;;;-1:-1:-1;9187:865:0;;;;;:::i;:::-;;:::i;13719:338::-;;;;;;;;;;-1:-1:-1;13719:338:0;;;;;:::i;:::-;;:::i;13055:656::-;;;;;;:::i;:::-;;:::i;14065:278::-;;;;;;:::i;:::-;;:::i;11663:727::-;;;;;;;;;;-1:-1:-1;11663:727:0;;;;;:::i;:::-;;:::i;8624:319::-;;;;;;;;;;-1:-1:-1;8624:319:0;;;;;:::i;:::-;;:::i;10944:611::-;;;;;;;;;;-1:-1:-1;10944:611:0;;;;;:::i;:::-;;:::i;12498:449::-;12761:9;12757:44;;12784:17;;-1:-1:-1;;;12784:17:0;;;;;;;;;;;12757:44;12904:7;;12894:18;;;;;;;:::i;:::-;;;;;;;;12848:6;-1:-1:-1;;;;;12819:120:0;;12856:16;;12874:18;;12914:9;12925:13;12819:120;;;;;;;;;;;:::i;:::-;;;;;;;;12498:449;;;;;;;;:::o;14351:819::-;10765:10;-1:-1:-1;;;;;10779:12:0;10765:26;;10761:53;;10800:14;;-1:-1:-1;;;10800:14:0;;;;;;;;;;;10761:53;-1:-1:-1;;;;;14525:22:0;::::1;14521:51;;14556:16;;-1:-1:-1::0;;;14556:16:0::1;;;;;;;;;;;14521:51;14608:6:::0;14636:30;;::::1;14632:59;;14675:16;;-1:-1:-1::0;;;14675:16:0::1;;;;;;;;;;;14632:59;14709:9;14704:459;14724:12;14720:1;:16;14704:459;;;14758:13;14774:6;;14781:1;14774:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14758:25;;14798:14;14815:7;;14823:1;14815:10;;;;;;;:::i;:::-;;;;;;;14798:27;;14844:6;14854:1;14844:11;14840:40;;;14864:16;;-1:-1:-1::0;;;14864:16:0::1;;;;;;;;;;;14840:40;-1:-1:-1::0;;;;;14901:19:0;::::1;14897:255;;14955:21;14945:6;:31;14941:62;;14978:25;::::0;-1:-1:-1;;;;;14978:17:0;::::1;::::0;:25;::::1;;;::::0;14996:6;;14978:25:::1;::::0;;;14996:6;14978:17;:25;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14941:62;14897:255;;;15058:38;::::0;;;;15090:4:::1;15058:38;::::0;::::1;3396:74:1::0;-1:-1:-1;;;;;15058:23:0;::::1;::::0;::::1;::::0;3369:18:1;;15058:38:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15048:6;:48;15044:92;;15098:38;15112:5;15119:8;15129:6;15098:13;:38::i;:::-;14743:420;;14738:3;;;;;:::i;:::-;;;;14704:459;;;;14510:660;14351:819:::0;;;;;:::o;15178:360::-;10765:10;-1:-1:-1;;;;;10779:12:0;10765:26;;10761:53;;10800:14;;-1:-1:-1;;;10800:14:0;;;;;;;;;;;10761:53;-1:-1:-1;;;;;15323:22:0;::::1;15319:51;;15354:16;;-1:-1:-1::0;;;15354:16:0::1;;;;;;;;;;;15319:51;-1:-1:-1::0;;;;;15387:19:0;::::1;15383:148;;15423:25;::::0;-1:-1:-1;;;;;15423:17:0;::::1;::::0;:25;::::1;;;::::0;15441:6;;15423:25:::1;::::0;;;15441:6;15423:17;:25;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15178:360:::0;;;:::o;15383:148::-:1;15481:38;15495:5;15502:8;15512:6;15481:13;:38::i;:::-;15178:360:::0;;;:::o;10060:217::-;10223:1;10195:16;9140:20;9134:27;;8951:228;10195:16;-1:-1:-1;;;;;10195:30:0;;10191:53;;;10234:10;;;;;;;;;;;;;;10191:53;10060:217;;:::o;9187:865::-;8367:10;8356:7;8586:11;8580:18;;8424:192;8356:7;-1:-1:-1;;;;;8356:21:0;;8352:44;;8386:10;;-1:-1:-1;;;8386:10:0;;;;;;;;;;;8352:44;9425:4:::1;-1:-1:-1::0;;;;;9413:28:0::1;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9378:17;-1:-1:-1::0;;;;;9366:41:0::1;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;9362:113;;9452:23;;;;;;;;;;;;;;9362:113;9519:17;-1:-1:-1::0;;;;;9519:26:0::1;;9490:25;:55;9486:85;;9554:17;;;;;;;;;;;;;;9486:85;9588:17:::0;;9584:267:::1;;9687:12;9705:17;-1:-1:-1::0;;;;;9705:30:0::1;9759:19;;;9780:6;;9736:51;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;9736:51:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;9705:83;;::::1;::::0;9736:51;9705:83:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9686:102;;;9810:7;9805:34;;9826:13;;;;;;;;;;;;;;9805:34;9607:244;9584:267;9868:27;::::0;-1:-1:-1;;;;;9868:27:0;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;9994:20:0::1;9987:47:::0;9187:865::o;13719:338::-;13913:53;13931:8;13941:10;13953:12;13913:17;:53::i;:::-;13984:65;;;-1:-1:-1;;;;;14946:15:1;;;14928:34;;14993:2;14978:18;;14971:34;;;15041:15;;15021:18;;;15014:43;13984:65:0;;14001:8;;13993:6;;13984:65;;;;;14855:2:1;13984:65:0;;;13719:338;;;;;:::o;13055:656::-;13385:9;13381:44;;13408:17;;-1:-1:-1;;;13408:17:0;;;;;;;;;;;13381:44;13590:7;;13580:18;;;;;;;:::i;:::-;;;;;;;;13495:6;-1:-1:-1;;;;;13443:260:0;;13516:16;;13547:18;;13613:6;;13634;13655:9;13679:13;13443:260;;;;;;;;;;;;;;:::i;:::-;;;;;;;;13055:656;;;;;;;;;;;:::o;14065:278::-;14219:9;14215:44;;14242:17;;-1:-1:-1;;;14242:17:0;;;;;;;;;;;14215:44;14277:58;;;14310:9;16140:25:1;;-1:-1:-1;;;;;16201:55:1;;16196:2;16181:18;;16174:83;14300:8:0;;14292:6;;14277:58;;16113:18:1;14277:58:0;;;;;;;14065:278;;;:::o;11663:727::-;12031:53;12049:8;12059:10;12071:12;12031:17;:53::i;:::-;12243:7;;12233:18;;;;;;;:::i;:::-;;;;;;;;12148:6;-1:-1:-1;;;;;12102:280:0;;12169:16;;12200:18;;12266:6;12287;12308:8;12331:12;12358:13;12102:280;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11663:727;;;;;;;;;;;;:::o;8624:319::-;8367:10;8356:7;8586:11;8580:18;;8424:192;8356:7;-1:-1:-1;;;;;8356:21:0;;8352:44;;8386:10;;-1:-1:-1;;;8386:10:0;;;;;;;;;;;8352:44;-1:-1:-1;;;;;8711:22:0;::::1;8707:49;;8742:14;;;;;;;;;;;;;;8707:49;8774:30;::::0;-1:-1:-1;;;;;8774:30:0;::::1;::::0;::::1;::::0;;;::::1;8903:11;8896:29:::0;8624:319::o;10944:611::-;11247:53;11265:8;11275:10;11287:12;11247:17;:53::i;:::-;11450:7;;11440:18;;;;;;;:::i;:::-;;;;;;;;11355:6;-1:-1:-1;;;;;11318:229:0;;11376:16;;11407:18;;11473:8;11496:12;11523:13;11318:229;;;;;;;;;;;;:::i;:::-;;;;;;;;10944:611;;;;;;;;;;:::o;15546:577::-;15683:11;15679:41;;15703:17;;-1:-1:-1;;;15703:17:0;;;;;;;;;;;15679:41;15853:66;;-1:-1:-1;;;;;18327:55:1;;;15853:66:0;;;18309:74:1;18399:18;;;18392:34;;;15794:12:0;;;;15835:17;;;15876:24;;18282:18:1;;15853:66:0;;;;-1:-1:-1;;15853:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15835:85;;;;15853:66;15835:85;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15793:127;;;;15931:16;15950:7;:78;;;;-1:-1:-1;15962:17:0;;:31;;:65;;;16008:10;15997:30;;;;;;;;;;;;:::i;:::-;15931:97;;16046:11;16045:12;:45;;;-1:-1:-1;;;;;;16061:24:0;;;:29;16045:45;16041:74;;;16099:16;;;;;;;;;;;;;;16041:74;15668:455;;;15546:577;;;:::o;16131:616::-;16268:11;16264:41;;16288:17;;-1:-1:-1;;;16288:17:0;;;;;;;;;;;16264:41;16452:81;;-1:-1:-1;;;;;19000:15:1;;;16452:81:0;;;18982:34:1;16519:4:0;19032:18:1;;;19025:43;19084:18;;;19077:34;;;16379:12:0;;;;16420:17;;;16475:28;;18894:18:1;;16452:81:0;18719:398:1;14:154;-1:-1:-1;;;;;93:5:1;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:134::-;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:348::-;364:8;374:6;428:3;421:4;413:6;409:17;405:27;395:55;;446:1;443;436:12;395:55;-1:-1:-1;469:20:1;;512:18;501:30;;498:50;;;544:1;541;534:12;498:50;581:4;573:6;569:17;557:29;;633:3;626:4;617:6;609;605:19;601:30;598:39;595:59;;;650:1;647;640:12;595:59;312:348;;;;;:::o;665:1287::-;795:6;803;811;819;827;835;843;851;904:3;892:9;883:7;879:23;875:33;872:53;;;921:1;918;911:12;872:53;960:9;947:23;979:31;1004:5;979:31;:::i;:::-;1029:5;-1:-1:-1;1085:2:1;1070:18;;1057:32;1108:18;1138:14;;;1135:34;;;1165:1;1162;1155:12;1135:34;1204:59;1255:7;1246:6;1235:9;1231:22;1204:59;:::i;:::-;1282:8;;-1:-1:-1;1178:85:1;-1:-1:-1;1370:2:1;1355:18;;1342:32;;-1:-1:-1;1386:16:1;;;1383:36;;;1415:1;1412;1405:12;1383:36;1454:61;1507:7;1496:8;1485:9;1481:24;1454:61;:::i;:::-;1534:8;;-1:-1:-1;1428:87:1;-1:-1:-1;1622:2:1;1607:18;;1594:32;;-1:-1:-1;1638:16:1;;;1635:36;;;1667:1;1664;1657:12;1635:36;;1706:61;1759:7;1748:8;1737:9;1733:24;1706:61;:::i;:::-;1786:8;;-1:-1:-1;1680:87:1;-1:-1:-1;;1873:3:1;1858:19;;1845:33;1887;1845;1887;:::i;:::-;1939:7;1929:17;;;665:1287;;;;;;;;;;;:::o;1957:367::-;2020:8;2030:6;2084:3;2077:4;2069:6;2065:17;2061:27;2051:55;;2102:1;2099;2092:12;2051:55;-1:-1:-1;2125:20:1;;2168:18;2157:30;;2154:50;;;2200:1;2197;2190:12;2154:50;2237:4;2229:6;2225:17;2213:29;;2297:3;2290:4;2280:6;2277:1;2273:14;2265:6;2261:27;2257:38;2254:47;2251:67;;;2314:1;2311;2304:12;2329:916;2468:6;2476;2484;2492;2500;2553:2;2541:9;2532:7;2528:23;2524:32;2521:52;;;2569:1;2566;2559:12;2521:52;2608:9;2595:23;2627:31;2652:5;2627:31;:::i;:::-;2677:5;-1:-1:-1;2733:2:1;2718:18;;2705:32;2756:18;2786:14;;;2783:34;;;2813:1;2810;2803:12;2783:34;2852:70;2914:7;2905:6;2894:9;2890:22;2852:70;:::i;:::-;2941:8;;-1:-1:-1;2826:96:1;-1:-1:-1;3029:2:1;3014:18;;3001:32;;-1:-1:-1;3045:16:1;;;3042:36;;;3074:1;3071;3064:12;3042:36;;3113:72;3177:7;3166:8;3155:9;3151:24;3113:72;:::i;:::-;2329:916;;;;-1:-1:-1;2329:916:1;;-1:-1:-1;3204:8:1;;3087:98;2329:916;-1:-1:-1;;;2329:916:1:o;3663:464::-;3748:6;3756;3764;3817:2;3805:9;3796:7;3792:23;3788:32;3785:52;;;3833:1;3830;3823:12;3785:52;3872:9;3859:23;3891:31;3916:5;3891:31;:::i;:::-;3941:5;-1:-1:-1;3998:2:1;3983:18;;3970:32;4011:33;3970:32;4011:33;:::i;:::-;3663:464;;4063:7;;-1:-1:-1;;;4117:2:1;4102:18;;;;4089:32;;3663:464::o;4132:410::-;4202:6;4210;4263:2;4251:9;4242:7;4238:23;4234:32;4231:52;;;4279:1;4276;4269:12;4231:52;4319:9;4306:23;4352:18;4344:6;4341:30;4338:50;;;4384:1;4381;4374:12;4338:50;4423:59;4474:7;4465:6;4454:9;4450:22;4423:59;:::i;:::-;4501:8;;4397:85;;-1:-1:-1;4132:410:1;-1:-1:-1;;;;4132:410:1:o;4547:613::-;4635:6;4643;4651;4659;4712:2;4700:9;4691:7;4687:23;4683:32;4680:52;;;4728:1;4725;4718:12;4680:52;4767:9;4754:23;4786:31;4811:5;4786:31;:::i;:::-;4836:5;-1:-1:-1;4888:2:1;4873:18;;4860:32;;-1:-1:-1;4943:2:1;4928:18;;4915:32;4970:18;4959:30;;4956:50;;;5002:1;4999;4992:12;4956:50;5041:59;5092:7;5083:6;5072:9;5068:22;5041:59;:::i;:::-;4547:613;;;;-1:-1:-1;5119:8:1;-1:-1:-1;;;;4547:613:1:o;5165:594::-;5260:6;5268;5276;5284;5292;5345:3;5333:9;5324:7;5320:23;5316:33;5313:53;;;5362:1;5359;5352:12;5313:53;5398:9;5385:23;5375:33;;5455:2;5444:9;5440:18;5427:32;5417:42;;5509:2;5498:9;5494:18;5481:32;5522:31;5547:5;5522:31;:::i;:::-;5572:5;-1:-1:-1;5624:2:1;5609:18;;5596:32;;-1:-1:-1;5680:3:1;5665:19;;5652:33;5694;5652;5694;:::i;:::-;5746:7;5736:17;;;5165:594;;;;;;;;:::o;5764:1491::-;5924:6;5932;5940;5948;5956;5964;5972;5980;5988;5996;6004:7;6058:3;6046:9;6037:7;6033:23;6029:33;6026:53;;;6075:1;6072;6065:12;6026:53;6098:29;6117:9;6098:29;:::i;:::-;6088:39;;6146:18;6213:2;6207;6196:9;6192:18;6179:32;6176:40;6173:60;;;6229:1;6226;6219:12;6173:60;6268:85;6345:7;6338:2;6327:9;6323:18;6310:32;6299:9;6295:48;6268:85;:::i;:::-;6372:8;;-1:-1:-1;6399:8:1;-1:-1:-1;6450:2:1;6435:18;;6422:32;6419:40;-1:-1:-1;6416:60:1;;;6472:1;6469;6462:12;6416:60;6511:85;6588:7;6581:2;6570:9;6566:18;6553:32;6542:9;6538:48;6511:85;:::i;:::-;6615:8;;-1:-1:-1;6642:8:1;-1:-1:-1;6693:2:1;6678:18;;6665:32;6662:40;-1:-1:-1;6659:60:1;;;6715:1;6712;6705:12;6659:60;6754:85;6831:7;6824:2;6813:9;6809:18;6796:32;6785:9;6781:48;6754:85;:::i;:::-;6858:8;;-1:-1:-1;6885:8:1;-1:-1:-1;6936:3:1;6921:19;;6908:33;6905:41;-1:-1:-1;6902:61:1;;;6959:1;6956;6949:12;6902:61;;6998:86;7076:7;7068:3;7057:9;7053:19;7040:33;7029:9;7025:49;6998:86;:::i;:::-;7103:8;;-1:-1:-1;7130:8:1;-1:-1:-1;7185:3:1;7170:19;;7157:33;;-1:-1:-1;7210:39:1;7244:3;7229:19;;7210:39;:::i;:::-;7199:50;;5764:1491;;;;;;;;;;;;;;:::o;7260:383::-;7337:6;7345;7353;7406:2;7394:9;7385:7;7381:23;7377:32;7374:52;;;7422:1;7419;7412:12;7374:52;7458:9;7445:23;7435:33;;7515:2;7504:9;7500:18;7487:32;7477:42;;7569:2;7558:9;7554:18;7541:32;7582:31;7607:5;7582:31;:::i;:::-;7632:5;7622:15;;;7260:383;;;;;:::o;7648:184::-;-1:-1:-1;;;7697:1:1;7690:88;7797:4;7794:1;7787:15;7821:4;7818:1;7811:15;7837:719;7880:5;7933:3;7926:4;7918:6;7914:17;7910:27;7900:55;;7951:1;7948;7941:12;7900:55;7987:6;7974:20;8013:18;8050:2;8046;8043:10;8040:36;;;8056:18;;:::i;:::-;8131:2;8125:9;8099:2;8185:13;;-1:-1:-1;;8181:22:1;;;8205:2;8177:31;8173:40;8161:53;;;8229:18;;;8249:22;;;8226:46;8223:72;;;8275:18;;:::i;:::-;8315:10;8311:2;8304:22;8350:2;8342:6;8335:18;8396:3;8389:4;8384:2;8376:6;8372:15;8368:26;8365:35;8362:55;;;8413:1;8410;8403:12;8362:55;8477:2;8470:4;8462:6;8458:17;8451:4;8443:6;8439:17;8426:54;8524:1;8517:4;8512:2;8504:6;8500:15;8496:26;8489:37;8544:6;8535:15;;;;;;7837:719;;;;:::o;8561:1575::-;8737:6;8745;8753;8761;8769;8777;8785;8793;8801;8809;8817:7;8826;8880:3;8868:9;8859:7;8855:23;8851:33;8848:53;;;8897:1;8894;8887:12;8848:53;8920:29;8939:9;8920:29;:::i;:::-;8910:39;;8998:18;8992:2;8981:9;8977:18;8964:32;8961:56;8958:76;;;9030:1;9027;9020:12;8958:76;9069:85;9146:7;9139:2;9128:9;9124:18;9111:32;9100:9;9096:48;9069:85;:::i;:::-;9173:8;;-1:-1:-1;9200:8:1;-1:-1:-1;9257:18:1;9251:2;9236:18;;9223:32;9220:56;9217:76;;;9289:1;9286;9279:12;9217:76;9328:85;9405:7;9398:2;9387:9;9383:18;9370:32;9359:9;9355:48;9328:85;:::i;:::-;9432:8;;-1:-1:-1;9459:8:1;-1:-1:-1;9516:18:1;9510:2;9495:18;;9482:32;9479:56;9476:76;;;9548:1;9545;9538:12;9476:76;9587:85;9664:7;9657:2;9646:9;9642:18;9629:32;9618:9;9614:48;9587:85;:::i;:::-;9691:8;;-1:-1:-1;9718:8:1;-1:-1:-1;9776:18:1;9769:3;9754:19;;9741:33;9738:57;9735:77;;;9808:1;9805;9798:12;9735:77;9831;9900:7;9892:3;9881:9;9877:19;9864:33;9853:9;9849:49;9831:77;:::i;:::-;9821:87;;9955:3;9944:9;9940:19;9927:33;9917:43;;9979:39;10013:3;10002:9;9998:19;9979:39;:::i;:::-;9969:49;;10066:3;10055:9;10051:19;10038:33;10027:44;;10091:39;10125:3;10114:9;10110:19;10091:39;:::i;:::-;10080:50;;8561:1575;;;;;;;;;;;;;;:::o;10141:247::-;10200:6;10253:2;10241:9;10232:7;10228:23;10224:32;10221:52;;;10269:1;10266;10259:12;10221:52;10308:9;10295:23;10327:31;10352:5;10327:31;:::i;:::-;10377:5;10141:247;-1:-1:-1;;;10141:247:1:o;10393:1431::-;10541:6;10549;10557;10565;10573;10581;10589;10597;10605;10613;10666:3;10654:9;10645:7;10641:23;10637:33;10634:53;;;10683:1;10680;10673:12;10634:53;10722:9;10709:23;10741:31;10766:5;10741:31;:::i;:::-;10791:5;-1:-1:-1;10847:2:1;10832:18;;10819:32;10870:18;10900:14;;;10897:34;;;10927:1;10924;10917:12;10897:34;10966:59;11017:7;11008:6;10997:9;10993:22;10966:59;:::i;:::-;11044:8;;-1:-1:-1;10940:85:1;-1:-1:-1;11132:2:1;11117:18;;11104:32;;-1:-1:-1;11148:16:1;;;11145:36;;;11177:1;11174;11167:12;11145:36;11216:61;11269:7;11258:8;11247:9;11243:24;11216:61;:::i;:::-;11296:8;;-1:-1:-1;11190:87:1;-1:-1:-1;11384:2:1;11369:18;;11356:32;;-1:-1:-1;11400:16:1;;;11397:36;;;11429:1;11426;11419:12;11397:36;;11468:61;11521:7;11510:8;11499:9;11495:24;11468:61;:::i;:::-;11548:8;;-1:-1:-1;11442:87:1;-1:-1:-1;;11635:3:1;11620:19;;11607:33;11649;11607;11649;:::i;:::-;11701:7;-1:-1:-1;11755:3:1;11740:19;;11727:33;;-1:-1:-1;11779:39:1;11813:3;11798:19;;11779:39;:::i;:::-;11769:49;;10393:1431;;;;;;;;;;;;;:::o;11829:271::-;12012:6;12004;11999:3;11986:33;11968:3;12038:16;;12063:13;;;12038:16;11829:271;-1:-1:-1;11829:271:1:o;12105:267::-;12194:6;12189:3;12182:19;12246:6;12239:5;12232:4;12227:3;12223:14;12210:43;-1:-1:-1;12298:1:1;12273:16;;;12291:4;12269:27;;;12262:38;;;;12354:2;12333:15;;;-1:-1:-1;;12329:29:1;12320:39;;;12316:50;;12105:267::o;12377:630::-;12650:3;12639:9;12632:22;12613:4;12677:63;12735:3;12724:9;12720:19;12712:6;12704;12677:63;:::i;:::-;12788:9;12780:6;12776:22;12771:2;12760:9;12756:18;12749:50;12816;12859:6;12851;12843;12816:50;:::i;:::-;12808:58;;;12902:6;12897:2;12886:9;12882:18;12875:34;-1:-1:-1;;;;;12949:6:1;12945:55;12940:2;12929:9;12925:18;12918:83;12377:630;;;;;;;;;:::o;13012:184::-;-1:-1:-1;;;13061:1:1;13054:88;13161:4;13158:1;13151:15;13185:4;13182:1;13175:15;13201:184;13271:6;13324:2;13312:9;13303:7;13299:23;13295:32;13292:52;;;13340:1;13337;13330:12;13292:52;-1:-1:-1;13363:16:1;;13201:184;-1:-1:-1;13201:184:1:o;13390:289::-;13429:3;-1:-1:-1;;13450:17:1;;13447:197;;;-1:-1:-1;;;13497:1:1;13490:88;13601:4;13598:1;13591:15;13629:4;13626:1;13619:15;13447:197;-1:-1:-1;13671:1:1;13660:13;;13390:289::o;13873:245::-;14030:2;14019:9;14012:21;13993:4;14050:62;14108:2;14097:9;14093:18;14085:6;14077;14050:62;:::i;:::-;14042:70;13873:245;-1:-1:-1;;;;13873:245:1:o;14123:258::-;14195:1;14205:113;14219:6;14216:1;14213:13;14205:113;;;14295:11;;;14289:18;14276:11;;;14269:39;14241:2;14234:10;14205:113;;;14336:6;14333:1;14330:13;14327:48;;;-1:-1:-1;;14371:1:1;14353:16;;14346:27;14123:258::o;14386:274::-;14515:3;14553:6;14547:13;14569:53;14615:6;14610:3;14603:4;14595:6;14591:17;14569:53;:::i;:::-;14638:16;;;;;14386:274;-1:-1:-1;;14386:274:1:o;15068:893::-;15427:3;15416:9;15409:22;15390:4;15454:63;15512:3;15501:9;15497:19;15489:6;15481;15454:63;:::i;:::-;15565:9;15557:6;15553:22;15548:2;15537:9;15533:18;15526:50;15599;15642:6;15634;15626;15599:50;:::i;:::-;15585:64;;15697:9;15689:6;15685:22;15680:2;15669:9;15665:18;15658:50;15725;15768:6;15760;15752;15725:50;:::i;:::-;15806:2;15791:18;;15784:34;;;;-1:-1:-1;;15849:3:1;15834:19;;15827:35;;;;-1:-1:-1;;;;;15899:55:1;15893:3;15878:19;;;15871:84;15717:58;15068:893;-1:-1:-1;;;;;;15068:893:1:o;16268:1125::-;16645:3;16634:9;16627:22;16608:4;16672:63;16730:3;16719:9;16715:19;16707:6;16699;16672:63;:::i;:::-;16783:9;16775:6;16771:22;16766:2;16755:9;16751:18;16744:50;16817;16860:6;16852;16844;16817:50;:::i;:::-;16803:64;;16915:9;16907:6;16903:22;16898:2;16887:9;16883:18;16876:50;16955:6;16949:13;16986:6;16978;16971:22;17002:63;17058:6;17053:2;17045:6;17041:15;17036:2;17028:6;17024:15;17002:63;:::i;:::-;17164:2;17149:18;;17142:34;;;;-1:-1:-1;;;;;17274:15:1;;;17268:3;17253:19;;17246:44;17321:3;17306:19;;17299:35;;;;-1:-1:-1;17371:15:1;;17365:3;17350:19;;;17343:44;;;;17130:2;17123;17102:15;;;-1:-1:-1;;17098:29:1;17086:42;17082:51;;;-1:-1:-1;;;;;16268:1125:1:o;17398:732::-;17699:3;17688:9;17681:22;17662:4;17726:63;17784:3;17773:9;17769:19;17761:6;17753;17726:63;:::i;:::-;17837:9;17829:6;17825:22;17820:2;17809:9;17805:18;17798:50;17865;17908:6;17900;17892;17865:50;:::i;:::-;-1:-1:-1;;;;;18012:15:1;;;18007:2;17992:18;;17985:43;18059:2;18044:18;;18037:34;;;;-1:-1:-1;;18108:15:1;;18102:3;18087:19;;;18080:44;;;;17857:58;17398:732;-1:-1:-1;;;;17398:732:1:o;18437:277::-;18504:6;18557:2;18545:9;18536:7;18532:23;18528:32;18525:52;;;18573:1;18570;18563:12;18525:52;18605:9;18599:16;18658:5;18651:13;18644:21;18637:5;18634:32;18624:60;;18680:1;18677;18670:12

Swarm Source

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