ETH Price: $2,518.27 (+0.40%)

Contract

0x5a464C28D19848f44199D003BeF5ecc87d090F87
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update126918482021-06-23 17:53:561223 days ago1624470836IN
Sky: IlkRegistry
0 ETH0.0006739614
Update126918392021-06-23 17:51:461223 days ago1624470706IN
Sky: IlkRegistry
0 ETH0.0005895713
Update126918092021-06-23 17:46:501223 days ago1624470410IN
Sky: IlkRegistry
0 ETH0.0010111921
Update126918072021-06-23 17:46:231223 days ago1624470383IN
Sky: IlkRegistry
0 ETH0.0006741214
Update126918062021-06-23 17:46:211223 days ago1624470381IN
Sky: IlkRegistry
0 ETH0.0006741214
Update126918062021-06-23 17:46:211223 days ago1624470381IN
Sky: IlkRegistry
0 ETH0.0006741214
Update126918042021-06-23 17:45:221223 days ago1624470322IN
Sky: IlkRegistry
0 ETH0.0006741214
Update126918022021-06-23 17:45:001223 days ago1624470300IN
Sky: IlkRegistry
0 ETH0.0005826312.1
Update126918022021-06-23 17:45:001223 days ago1624470300IN
Sky: IlkRegistry
0 ETH0.0005296711
Update126917942021-06-23 17:43:491223 days ago1624470229IN
Sky: IlkRegistry
0 ETH0.0005826312.1
Update126917812021-06-23 17:42:181223 days ago1624470138IN
Sky: IlkRegistry
0 ETH0.0007269115.1
Deny122524642021-04-16 17:27:471291 days ago1618594067IN
Sky: IlkRegistry
0 ETH0.00446509320.01
Add122521952021-04-16 16:33:261291 days ago1618590806IN
Sky: IlkRegistry
0 ETH0.01199429320.01
Rely122519702021-04-16 15:47:451291 days ago1618588065IN
Sky: IlkRegistry
0 ETH0.01508143320.01
Put122519662021-04-16 15:47:231291 days ago1618588043IN
Sky: IlkRegistry
0 ETH0.06165824320.01
Put122519642021-04-16 15:46:501291 days ago1618588010IN
Sky: IlkRegistry
0 ETH0.0545073320.01
Add122519592021-04-16 15:46:091291 days ago1618587969IN
Sky: IlkRegistry
0 ETH0.08811443320.01
Add122519562021-04-16 15:45:251291 days ago1618587925IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519552021-04-16 15:44:581291 days ago1618587898IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519542021-04-16 15:44:531291 days ago1618587893IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519502021-04-16 15:44:001291 days ago1618587840IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519472021-04-16 15:43:011291 days ago1618587781IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519462021-04-16 15:42:341291 days ago1618587754IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519452021-04-16 15:42:321291 days ago1618587752IN
Sky: IlkRegistry
0 ETH0.0840231320.01
Add122519402021-04-16 15:41:591291 days ago1618587719IN
Sky: IlkRegistry
0 ETH0.0840231320.01
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
122518712021-04-16 15:27:221291 days ago1618586842
Sky: IlkRegistry
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IlkRegistry

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-16
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

/// IlkRegistry.sol -- Publicly updatable ilk registry

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.6.12;

interface JoinLike {
  function vat()          external view returns (address);
  function ilk()          external view returns (bytes32);
  function gem()          external view returns (address);
  function dec()          external view returns (uint256);
  function live()         external view returns (uint256);
}

interface VatLike {
  function wards(address) external view returns (uint256);
  function live()         external view returns (uint256);
}

interface DogLike {
  function vat()          external view returns (address);
  function live()         external view returns (uint256);
  function ilks(bytes32)  external view returns (address, uint256, uint256, uint256);
}

interface CatLike {
  function vat()          external view returns (address);
  function live()         external view returns (uint256);
  function ilks(bytes32)  external view returns (address, uint256, uint256);
}

interface FlipLike {
  function vat()          external view returns (address);
  function cat()          external view returns (address);
}

interface ClipLike {
  function vat()          external view returns (address);
  function dog()          external view returns (address);
}

interface SpotLike {
  function live()         external view returns (uint256);
  function vat()          external view returns (address);
  function ilks(bytes32)  external view returns (address, uint256);
}

interface TokenLike {
    function name()       external view returns (string memory);
    function symbol()     external view returns (string memory);
}

contract GemInfo {
    function name(address token) external view returns (string memory) {
        return TokenLike(token).name();
    }

    function symbol(address token) external view returns (string memory) {
        return TokenLike(token).symbol();
    }
}

contract IlkRegistry {

    event Rely(address usr);
    event Deny(address usr);
    event File(bytes32 what, address data);
    event File(bytes32 ilk, bytes32 what, address data);
    event File(bytes32 ilk, bytes32 what, uint256 data);
    event File(bytes32 ilk, bytes32 what, string data);
    event AddIlk(bytes32 ilk);
    event RemoveIlk(bytes32 ilk);
    event UpdateIlk(bytes32 ilk);
    event NameError(bytes32 ilk);
    event SymbolError(bytes32 ilk);

    // --- Auth ---
    mapping (address => uint) public wards;
    function rely(address usr) external auth { wards[usr] = 1; emit Rely(usr); }
    function deny(address usr) external auth { wards[usr] = 0; emit Deny(usr); }
    modifier auth {
        require(wards[msg.sender] == 1, "IlkRegistry/not-authorized");
        _;
    }

    VatLike  public  immutable vat;
    GemInfo  private immutable gemInfo;

    DogLike  public dog;
    CatLike  public cat;
    SpotLike public spot;

    struct Ilk {
        uint96  pos;     // Index in ilks array
        address join;    // DSS GemJoin adapter
        address gem;     // The token contract
        uint8   dec;     // Token decimals
        uint96  class;   // Classification code (1 - clip, 2 - flip, 3+ - other)
        address pip;     // Token price
        address xlip;    // Auction contract
        string  name;    // Token name
        string  symbol;  // Token symbol
    }

    mapping (bytes32 => Ilk) public ilkData;
    bytes32[] ilks;

    // Initialize the registry
    constructor(address vat_, address dog_, address cat_, address spot_) public {

        VatLike _vat = vat = VatLike(vat_);
        dog = DogLike(dog_);
        cat = CatLike(cat_);
        spot = SpotLike(spot_);

        require(dog.vat() == vat_,      "IlkRegistry/invalid-dog-vat");
        require(cat.vat() == vat_,      "IlkRegistry/invalid-cat-vat");
        require(spot.vat() == vat_,     "IlkRegistry/invalid-spotter-vat");
        require(_vat.wards(cat_) == 1,  "IlkRegistry/cat-not-authorized");
        require(_vat.wards(spot_) == 1, "IlkRegistry/spot-not-authorized");
        require(_vat.live() == 1,       "IlkRegistry/vat-not-live");
        require(cat.live() == 1,        "IlkRegistry/cat-not-live");
        require(spot.live() == 1,       "IlkRegistry/spot-not-live");

        gemInfo = new GemInfo();

        wards[msg.sender] = 1;
    }

    // Pass an active join adapter to the registry to add it to the set
    function add(address adapter) external {
        JoinLike _join = JoinLike(adapter);

        // Validate adapter
        require(_join.vat() == address(vat),    "IlkRegistry/invalid-join-adapter-vat");
        require(vat.wards(address(_join)) == 1, "IlkRegistry/adapter-not-authorized");

        // Validate ilk
        bytes32 _ilk = _join.ilk();
        require(_ilk != 0, "IlkRegistry/ilk-adapter-invalid");
        require(ilkData[_ilk].join == address(0), "IlkRegistry/ilk-already-exists");

        (address _pip,) = spot.ilks(_ilk);
        require(_pip != address(0), "IlkRegistry/pip-invalid");

        (address _xlip,,,) = dog.ilks(_ilk);

        uint96  _class = 1;
        if (_xlip == address(0)) {
            (_xlip,,)  = cat.ilks(_ilk);
            require(_xlip != address(0), "IlkRegistry/invalid-auction-contract");
            _class = 2;
        }

        string memory name = bytes32ToStr(_ilk);
        try gemInfo.name(_join.gem()) returns (string memory _name) {
            if (bytes(_name).length != 0) {
                name = _name;
            }
        } catch {
            emit NameError(_ilk);
        }

        string memory symbol = bytes32ToStr(_ilk);
        try gemInfo.symbol(_join.gem()) returns (string memory _symbol) {
            if (bytes(_symbol).length != 0) {
                symbol = _symbol;
            }
        } catch {
            emit SymbolError(_ilk);
        }

        require(ilks.length < uint96(-1), "IlkRegistry/too-many-ilks");
        ilks.push(_ilk);
        ilkData[ilks[ilks.length - 1]] = Ilk({
            pos: uint96(ilks.length - 1),
            join: address(_join),
            gem: _join.gem(),
            dec: uint8(_join.dec()),
            class: _class,
            pip: _pip,
            xlip: _xlip,
            name: name,
            symbol: symbol
        });

        emit AddIlk(_ilk);
    }

    // Anyone can remove an ilk if the adapter has been caged
    function remove(bytes32 ilk) external {
        JoinLike _join = JoinLike(ilkData[ilk].join);
        require(address(_join) != address(0), "IlkRegistry/invalid-ilk");
        uint96 _class = ilkData[ilk].class;
        require(_class == 1 || _class == 2, "IlkRegistry/invalid-class");
        require(_join.live() == 0, "IlkRegistry/ilk-live");
        _remove(ilk);
        emit RemoveIlk(ilk);
    }

    // Admin can remove an ilk without any precheck
    function removeAuth(bytes32 ilk) external auth {
        _remove(ilk);
        emit RemoveIlk(ilk);
    }

    // Authed edit function
    function file(bytes32 what, address data) external auth {
        if      (what == "dog")  dog  = DogLike(data);
        else if (what == "cat")  cat  = CatLike(data);
        else if (what == "spot") spot = SpotLike(data);
        else revert("IlkRegistry/file-unrecognized-param-address");
        emit File(what, data);
    }

    // Authed edit function
    function file(bytes32 ilk, bytes32 what, address data) external auth {
        if      (what == "gem")  ilkData[ilk].gem  = data;
        else if (what == "join") ilkData[ilk].join = data;
        else if (what == "pip")  ilkData[ilk].pip  = data;
        else if (what == "xlip") ilkData[ilk].xlip = data;
        else revert("IlkRegistry/file-unrecognized-param-address");
        emit File(ilk, what, data);
    }

    // Authed edit function
    function file(bytes32 ilk, bytes32 what, uint256 data) external auth {
        if      (what == "class") { require(data <= uint96(-1) && data != 0); ilkData[ilk].class = uint96(data); }
        else if (what == "dec")   { require(data <= uint8(-1));  ilkData[ilk].dec   = uint8(data); }
        else revert("IlkRegistry/file-unrecognized-param-uint256");
        emit File(ilk, what, data);
    }

    // Authed edit function
    function file(bytes32 ilk, bytes32 what, string calldata data) external auth {
        if      (what == "name")   ilkData[ilk].name   = data;
        else if (what == "symbol") ilkData[ilk].symbol = data;
        else revert("IlkRegistry/file-unrecognized-param-string");
        emit File(ilk, what, data);
    }

    // Remove ilk from the ilks array by replacing the ilk with the
    //  last in the array and then trimming the end.
    function _remove(bytes32 ilk) internal {
        // Get the position in the array
        uint256 _index = ilkData[ilk].pos;
        // Get the last ilk in the array
        bytes32 _moveIlk = ilks[ilks.length - 1];
        // Replace the ilk we are removing
        ilks[_index] = _moveIlk;
        // Update the array position for the moved ilk
        ilkData[_moveIlk].pos = uint96(_index);
        // Trim off the end of the ilks array
        ilks.pop();
        // Delete struct data
        delete ilkData[ilk];
    }

    // The number of active ilks
    function count() external view returns (uint256) {
        return ilks.length;
    }

    // Return an array of the available ilks
    function list() external view returns (bytes32[] memory) {
        return ilks;
    }

    // Get a splice of the available ilks, useful when ilks array is large.
    function list(uint256 start, uint256 end) external view returns (bytes32[] memory) {
        require(start <= end && end < ilks.length, "IlkRegistry/invalid-input");
        bytes32[] memory _ilks = new bytes32[]((end - start) + 1);
        uint256 _count = 0;
        for (uint256 i = start; i <= end; i++) {
            _ilks[_count] = ilks[i];
            _count++;
        }
        return _ilks;
    }

    // Get the ilk at a specific position in the array
    function get(uint256 pos) external view returns (bytes32) {
        require(pos < ilks.length, "IlkRegistry/index-out-of-range");
        return ilks[pos];
    }

    // Get information about an ilk, including name and symbol
    function info(bytes32 ilk) external view returns (
        string memory name,
        string memory symbol,
        uint256 class,
        uint256 dec,
        address gem,
        address pip,
        address join,
        address xlip
    ) {
        Ilk memory _ilk = ilkData[ilk];
        return (
            _ilk.name,
            _ilk.symbol,
            _ilk.class,
            _ilk.dec,
            _ilk.gem,
            _ilk.pip,
            _ilk.join,
            _ilk.xlip
        );
    }

    // The location of the ilk in the ilks array
    function pos(bytes32 ilk) external view returns (uint256) {
        return ilkData[ilk].pos;
    }

    // The classification code of the ilk
    //  1  - Flipper
    //  2  - Clipper
    //  3+ - RWA or custom adapter
    function class(bytes32 ilk) external view returns (uint256) {
        return ilkData[ilk].class;
    }

    // The token address
    function gem(bytes32 ilk) external view returns (address) {
        return ilkData[ilk].gem;
    }

    // The ilk's price feed
    function pip(bytes32 ilk) external view returns (address) {
        return ilkData[ilk].pip;
    }

    // The ilk's join adapter
    function join(bytes32 ilk) external view returns (address) {
        return ilkData[ilk].join;
    }

    // The auction contract for the ilk
    function xlip(bytes32 ilk) external view returns (address) {
        return ilkData[ilk].xlip;
    }

    // The number of decimals on the ilk
    function dec(bytes32 ilk) external view returns (uint256) {
        return ilkData[ilk].dec;
    }

    // Return the symbol of the token, if available
    function symbol(bytes32 ilk) external view returns (string memory) {
        return ilkData[ilk].symbol;
    }

    // Return the name of the token, if available
    function name(bytes32 ilk) external view returns (string memory) {
        return ilkData[ilk].name;
    }

    // Public function to update an ilk's pip and flip if the ilk has been updated.
    function update(bytes32 ilk) external {
        require(JoinLike(ilkData[ilk].join).vat() == address(vat), "IlkRegistry/invalid-ilk");
        require(JoinLike(ilkData[ilk].join).live() == 1, "IlkRegistry/ilk-not-live-use-remove-instead");
        uint96 _class = ilkData[ilk].class;
        require(_class == 1 || _class == 2, "IlkRegistry/invalid-class");

        (address _pip,) = spot.ilks(ilk);
        require(_pip != address(0), "IlkRegistry/pip-invalid");

        ilkData[ilk].pip    = _pip;
        emit UpdateIlk(ilk);
    }

    // Force addition or update of a collateral type. (i.e. for RWA, etc.)
    //  Governance managed
    function put(
            bytes32 _ilk,
            address _join,
            address _gem,
            uint256 _dec,
            uint256 _class,
            address _pip,
            address _xlip,
            string calldata _name,
            string calldata _symbol
            )
        external auth {

            require(_class != 0 && _class <= uint96(-1), "IlkRegistry/invalid-class");
            require(_dec <= uint8(-1), "IlkRegistry/invalid-dec");
            uint96 _pos;

            if (ilkData[_ilk].class == 0) {
                require(ilks.length < uint96(-1), "IlkRegistry/too-many-ilks");
                ilks.push(_ilk);
                _pos = uint96(ilks.length - 1);
                emit AddIlk(_ilk);
            } else {
                _pos = ilkData[_ilk].pos;
                emit UpdateIlk(_ilk);
            }

            ilkData[ilks[_pos]] = Ilk({
                pos: _pos,
                join: _join,
                gem: _gem,
                dec: uint8(_dec),
                class: uint96(_class),
                pip: _pip,
                xlip: _xlip,
                name: _name,
                symbol: _symbol
            });
    }

    function bytes32ToStr(bytes32 _bytes32) internal pure returns (string memory) {
        bytes memory _bytesArray = new bytes(32);
        for (uint256 i; i < 32; i++) {
            _bytesArray[i] = _bytes32[i];
        }
        return string(_bytesArray);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"vat_","type":"address"},{"internalType":"address","name":"dog_","type":"address"},{"internalType":"address","name":"cat_","type":"address"},{"internalType":"address","name":"spot_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"AddIlk","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"string","name":"data","type":"string"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"NameError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"RemoveIlk","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"SymbolError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"UpdateIlk","type":"event"},{"inputs":[{"internalType":"address","name":"adapter","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cat","outputs":[{"internalType":"contract CatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"class","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"dec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dog","outputs":[{"internalType":"contract DogLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"string","name":"data","type":"string"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"},{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"gem","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pos","type":"uint256"}],"name":"get","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"ilkData","outputs":[{"internalType":"uint96","name":"pos","type":"uint96"},{"internalType":"address","name":"join","type":"address"},{"internalType":"address","name":"gem","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"uint96","name":"class","type":"uint96"},{"internalType":"address","name":"pip","type":"address"},{"internalType":"address","name":"xlip","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"info","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"class","type":"uint256"},{"internalType":"uint256","name":"dec","type":"uint256"},{"internalType":"address","name":"gem","type":"address"},{"internalType":"address","name":"pip","type":"address"},{"internalType":"address","name":"join","type":"address"},{"internalType":"address","name":"xlip","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"join","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"list","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"list","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"pip","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"pos","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_ilk","type":"bytes32"},{"internalType":"address","name":"_join","type":"address"},{"internalType":"address","name":"_gem","type":"address"},{"internalType":"uint256","name":"_dec","type":"uint256"},{"internalType":"uint256","name":"_class","type":"uint256"},{"internalType":"address","name":"_pip","type":"address"},{"internalType":"address","name":"_xlip","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"put","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"remove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"removeAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spot","outputs":[{"internalType":"contract SpotLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ilk","type":"bytes32"}],"name":"xlip","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60c06040523480156200001157600080fd5b5060405162004c9f38038062004c9f833981810160405260808110156200003757600080fd5b5080516020808301516040808501516060958601519585901b6001600160601b031916608052600180546001600160a01b03199081166001600160a01b03808716919091179283905560028054831682861617905560038054909216818a161790915583516336569e7760e01b8152935196979496929581891694859493909216926336569e77926004808201939291829003018186803b158015620000dc57600080fd5b505afa158015620000f1573d6000803e3d6000fd5b505050506040513d60208110156200010857600080fd5b50516001600160a01b03161462000166576040805162461bcd60e51b815260206004820152601b60248201527f496c6b52656769737472792f696e76616c69642d646f672d7661740000000000604482015290519081900360640190fd5b600254604080516336569e7760e01b815290516001600160a01b038089169316916336569e77916004808301926020929190829003018186803b158015620001ad57600080fd5b505afa158015620001c2573d6000803e3d6000fd5b505050506040513d6020811015620001d957600080fd5b50516001600160a01b03161462000237576040805162461bcd60e51b815260206004820152601b60248201527f496c6b52656769737472792f696e76616c69642d6361742d7661740000000000604482015290519081900360640190fd5b600354604080516336569e7760e01b815290516001600160a01b038089169316916336569e77916004808301926020929190829003018186803b1580156200027e57600080fd5b505afa15801562000293573d6000803e3d6000fd5b505050506040513d6020811015620002aa57600080fd5b50516001600160a01b03161462000308576040805162461bcd60e51b815260206004820152601f60248201527f496c6b52656769737472792f696e76616c69642d73706f747465722d76617400604482015290519081900360640190fd5b806001600160a01b031663bf353dbb846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156200035657600080fd5b505afa1580156200036b573d6000803e3d6000fd5b505050506040513d60208110156200038257600080fd5b5051600114620003d9576040805162461bcd60e51b815260206004820152601e60248201527f496c6b52656769737472792f6361742d6e6f742d617574686f72697a65640000604482015290519081900360640190fd5b806001600160a01b031663bf353dbb836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156200042757600080fd5b505afa1580156200043c573d6000803e3d6000fd5b505050506040513d60208110156200045357600080fd5b5051600114620004aa576040805162461bcd60e51b815260206004820152601f60248201527f496c6b52656769737472792f73706f742d6e6f742d617574686f72697a656400604482015290519081900360640190fd5b806001600160a01b031663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e457600080fd5b505afa158015620004f9573d6000803e3d6000fd5b505050506040513d60208110156200051057600080fd5b505160011462000567576040805162461bcd60e51b815260206004820152601860248201527f496c6b52656769737472792f7661742d6e6f742d6c6976650000000000000000604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015620005b657600080fd5b505afa158015620005cb573d6000803e3d6000fd5b505050506040513d6020811015620005e257600080fd5b505160011462000639576040805162461bcd60e51b815260206004820152601860248201527f496c6b52656769737472792f6361742d6e6f742d6c6976650000000000000000604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200068857600080fd5b505afa1580156200069d573d6000803e3d6000fd5b505050506040513d6020811015620006b457600080fd5b50516001146200070b576040805162461bcd60e51b815260206004820152601960248201527f496c6b52656769737472792f73706f742d6e6f742d6c69766500000000000000604482015290519081900360640190fd5b604051620007199062000766565b604051809103906000f08015801562000736573d6000803e3d6000fd5b5060601b6001600160601b03191660a0525050336000908152602081905260409020600190555062000774915050565b61030e806200499183390190565b60805160601c60a05160601c6141df620007b26000398061117652806113e8525080610adb5280610bf05280611dbb52806127a252506141df6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636f265b931161010f578063ad677d0b116100a2578063c8b97f7111610071578063c8b97f71146109d2578063d4e8be8314610a4e578063e488181314610a87578063ebecb39d14610a8f576101e5565b8063ad677d0b146107fd578063b64a097e1461081a578063bf353dbb14610997578063c3b3ad7f146109ca576101e5565b80639c52a7f1116100de5780639c52a7f1146105ed578063a19555d914610620578063a49030361461063d578063a53a42b51461065a576101e5565b80636f265b931461058e5780638b147245146105965780639507d39a146105b357806395bc2673146105d0576101e5565b806336569e771161018757806356eac7dc1161015657806356eac7dc1461048f57806365fae35e146104ac578063691f3431146104df5780636baa033014610571576101e5565b806336569e771461033a57806341f0b723146103425780634d8835e61461035f57806350fd73671461046c576101e5565b80631a0b287e116101c35780631a0b287e14610291578063217cf12b146102ba578063247c803f146102d75780633017a54d1461031d576101e5565b806306661abd146101ea5780630a3b0a4f146102045780630f560cd714610239575b600080fd5b6101f2610ace565b60408051918252519081900360200190f35b6102376004803603602081101561021a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad4565b005b610241611aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b610237600480360360608110156102a757600080fd5b5080359060208101359060400135611b01565b6101f2600480360360208110156102d057600080fd5b5035611d3b565b6102f4600480360360208110156102ed57600080fd5b5035611d5e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f26004803603602081101561033357600080fd5b5035611d89565b6102f4611db9565b6102f46004803603602081101561035857600080fd5b5035611ddd565b610237600480360361012081101561037657600080fd5b81359173ffffffffffffffffffffffffffffffffffffffff6020820135811692604083013582169260608101359260808201359260a083013582169260c08101359092169190810190610100810160e08201356401000000008111156103db57600080fd5b8201836020820111156103ed57600080fd5b8035906020019184600183028401116401000000008311171561040f57600080fd5b91939092909160208101903564010000000081111561042d57600080fd5b82018360208201111561043f57600080fd5b8035906020019184600183028401116401000000008311171561046157600080fd5b509092509050611e08565b6102416004803603604081101561048257600080fd5b50803590602001356123d2565b6101f2600480360360208110156104a557600080fd5b50356124eb565b610237600480360360208110156104c257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661250b565b6104fc600480360360208110156104f557600080fd5b50356125e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053657818101518382015260200161051e565b50505050905090810190601f1680156105635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fc6004803603602081101561058757600080fd5b50356126aa565b6102f4612735565b610237600480360360208110156105ac57600080fd5b5035612751565b6101f2600480360360208110156105c957600080fd5b5035612bf7565b610237600480360360208110156105e657600080fd5b5035612c89565b6102376004803603602081101561060357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ef1565b6102376004803603602081101561063657600080fd5b5035612fcd565b6102f46004803603602081101561065357600080fd5b503561308a565b6106776004803603602081101561067057600080fd5b50356130c5565b604051808a6bffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018760ff168152602001866bffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610759578181015183820152602001610741565b50505050905090810190601f1680156107865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156107b95781810151838201526020016107a1565b50505050905090810190601f1680156107e65780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b6102f46004803603602081101561081357600080fd5b50356132ac565b6108376004803603602081101561083057600080fd5b50356132e4565b6040518080602001806020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528b818151815260200191508051906020019080838360005b838110156108f45781810151838201526020016108dc565b50505050905090810190601f1680156109215780820380516001836020036101000a031916815260200191505b5083810382528a5181528a516020918201918c019080838360005b8381101561095457818101518382015260200161093c565b50505050905090810190601f1680156109815780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b6101f2600480360360208110156109ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613567565b6102f4613579565b610237600480360360608110156109e857600080fd5b813591602081013591810190606081016040820135640100000000811115610a0f57600080fd5b820183602082011115610a2157600080fd5b80359060200191846001830284011164010000000083111715610a4357600080fd5b509092509050613595565b61023760048036036040811015610a6457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16613787565b6102f46139f1565b61023760048036036060811015610aa557600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff16613a0d565b60055490565b60008190507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5657600080fd5b505afa158015610b6a573d6000803e3d6000fd5b505050506040513d6020811015610b8057600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141646024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf353dbb826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c7557600080fd5b505afa158015610c89573d6000803e3d6000fd5b505050506040513d6020811015610c9f57600080fd5b5051600114610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141886022913960400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4157600080fd5b505afa158015610d55573d6000803e3d6000fd5b505050506040513d6020811015610d6b57600080fd5b5051905080610ddb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496c6b52656769737472792f696c6b2d616461707465722d696e76616c696400604482015290519081900360640190fd5b6000818152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615610e7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496c6b52656769737472792f696c6b2d616c72656164792d6578697374730000604482015290519081900360640190fd5b600354604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101849052815160009373ffffffffffffffffffffffffffffffffffffffff169263d9638d369260248082019391829003018186803b158015610eea57600080fd5b505afa158015610efe573d6000803e3d6000fd5b505050506040513d6040811015610f1457600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8116610f9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f7069702d696e76616c6964000000000000000000604482015290519081900360640190fd5b600154604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101859052905160009273ffffffffffffffffffffffffffffffffffffffff169163d9638d36916024808301926080929190829003018186803b15801561100c57600080fd5b505afa158015611020573d6000803e3d6000fd5b505050506040513d608081101561103657600080fd5b50519050600173ffffffffffffffffffffffffffffffffffffffff821661116757600254604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101879052905173ffffffffffffffffffffffffffffffffffffffff9092169163d9638d3691602480820192606092909190829003018186803b1580156110c957600080fd5b505afa1580156110dd573d6000803e3d6000fd5b505050506040513d60608110156110f357600080fd5b5051915073ffffffffffffffffffffffffffffffffffffffff8216611163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141406024913960400191505060405180910390fd5b5060025b606061117285613cc4565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663019848928773ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152516024808301926000929190829003018186803b15801561128c57600080fd5b505afa92505050801561139057506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156112dd57600080fd5b81019080805160405193929190846401000000008211156112fd57600080fd5b90830190602082018581111561131257600080fd5b825164010000000081118282018810171561132c57600080fd5b82525081516020918201929091019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b5060405250505060015b6113cc576040805186815290517f93272f551c7dd0dd38e4c01ae7b4eeef80d2557b4460caa3ee96697d93bc809a9181900360200190a16113d9565b8051156113d7578091505b505b60606113e486613cc4565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a86e35768873ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b15801561146857600080fd5b505afa15801561147c573d6000803e3d6000fd5b505050506040513d602081101561149257600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152516024808301926000929190829003018186803b1580156114fe57600080fd5b505afa92505050801561160257506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561154f57600080fd5b810190808051604051939291908464010000000082111561156f57600080fd5b90830190602082018581111561158457600080fd5b825164010000000081118282018810171561159e57600080fd5b82525081516020918201929091019080838360005b838110156115cb5781810151838201526020016115b3565b50505050905090810190601f1680156115f85780820380516001836020036101000a031916815260200191505b5060405250505060015b61163e576040805187815290517fd4596cfd8cc9635c5a006e070f5c23e1af9b5d2e65665a8d73958c9e6cc17b4d9181900360200190a161164b565b805115611649578091505b505b6005546bffffffffffffffffffffffff116116c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f746f6f2d6d616e792d696c6b7300000000000000604482015290519081900360640190fd5b6005805460018101825560008290527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604080516101208101825291547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016bffffffffffffffffffffffff16825273ffffffffffffffffffffffffffffffffffffffff8916602080840182905282517f7bd2bea7000000000000000000000000000000000000000000000000000000008152835193850193637bd2bea792600480840193919291829003018186803b1580156117a757600080fd5b505afa1580156117bb573d6000803e3d6000fd5b505050506040513d60208110156117d157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff9081168252604080517fb3bcfa820000000000000000000000000000000000000000000000000000000081529051602093840193928c169263b3bcfa829260048082019391829003018186803b15801561184157600080fd5b505afa158015611855573d6000803e3d6000fd5b505050506040513d602081101561186b57600080fd5b505160ff1681526bffffffffffffffffffffffff8516602082015273ffffffffffffffffffffffffffffffffffffffff8088166040830152861660608201526080810184905260a001829052600580546004916000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106118ed57fe5b600091825260208083209091015483528281019390935260409182019020835181548585015173ffffffffffffffffffffffffffffffffffffffff9081166c010000000000000000000000009081026bffffffffffffffffffffffff9485167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009485161785161785559487015160018501805460608a015160ff1674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9385167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161793909316929092179055608088015160028601805460a08b01518516909802918616979094169690961790931694909417905560c08501516003830180549190941691161790915560e083015180519192611a4b92600485019290910190613ee0565b506101008201518051611a68916005840191602090910190613ee0565b50506040805188815290517f74ceb2982b813d6b690af89638316706e6acb9a48fced388741b61b510f165b792509081900360200190a15050505050505050565b60606005805480602002602001604051908101604052809291908181526020018280548015611af757602002820191906000526020600020905b815481526020019060010190808311611ae3575b5050505050905090565b33600090815260208190526040902054600114611b7f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f636c6173730000000000000000000000000000000000000000000000000000001415611c17576bffffffffffffffffffffffff8111801590611bc257508015155b611bcb57600080fd5b600083815260046020526040902060020180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff8316179055611cf6565b817f64656300000000000000000000000000000000000000000000000000000000001415611ca55760ff811115611c4d57600080fd5b600083815260046020526040902060010180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff841602179055611cf6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614095602b913960400191505060405180910390fd5b604080518481526020810184905280820183905290517f851aa1caf4888170ad8875449d18f0f512fd6deb2a6571ea1a41fb9f95acbcd19181900360600190a1505050565b6000908152600460205260409020600201546bffffffffffffffffffffffff1690565b60009081526004602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b60009081526004602052604090206001015474010000000000000000000000000000000000000000900460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b60009081526004602052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b33600090815260208190526040902054600114611e8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b8615801590611ea157506bffffffffffffffffffffffff8711155b611f0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b60ff881115611f7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d646563000000000000000000604482015290519081900360640190fd5b60008b8152600460205260408120600201546bffffffffffffffffffffffff166120b0576005546bffffffffffffffffffffffff1161201c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f746f6f2d6d616e792d696c6b7300000000000000604482015290519081900360640190fd5b506005805460018101825560008290527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018c905554604080518d815290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909201917f74ceb2982b813d6b690af89638316706e6acb9a48fced388741b61b510f165b79181900360200190a1612106565b5060008b8152600460209081526040918290205482518e815292516bffffffffffffffffffffffff909116927f176e1433f84712b82b982cc7a7b738797bd98e17b0882a6edc1a9a89e3dcbdfa92908290030190a15b604051806101200160405280826bffffffffffffffffffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a60ff168152602001896bffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f870181900481028201810190925285815291810191908690869081908401838280828437600092018290525093909452505060058054600493506bffffffffffffffffffffffff861690811061224657fe5b600091825260208083209091015483528281019390935260409182019020835181548585015173ffffffffffffffffffffffffffffffffffffffff9081166c010000000000000000000000009081026bffffffffffffffffffffffff9485167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009485161785161785559487015160018501805460608a015160ff1674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9385167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161793909316929092179055608088015160028601805460a08b01518516909802918616979094169690961790931694909417905560c08501516003830180549190941691161790915560e0830151805191926123a492600485019290910190613ee0565b5061010082015180516123c1916005840191602090910190613ee0565b505050505050505050505050505050565b60608183111580156123e5575060055482105b61245057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d696e70757400000000000000604482015290519081900360640190fd5b606083830360010167ffffffffffffffff8111801561246e57600080fd5b50604051908082528060200260200182016040528015612498578160200160208202803683370190505b5090506000845b8481116124e157600581815481106124b357fe5b90600052602060002001548383815181106124ca57fe5b60209081029190910101526001918201910161249f565b5090949350505050565b6000908152600460205260409020546bffffffffffffffffffffffff1690565b3360009081526020819052604090205460011461258957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902060019055815192835290517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609281900390910190a150565b60008181526004602081815260409283902090910180548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561269e5780601f106126735761010080835404028352916020019161269e565b820191906000526020600020905b81548152906001019060200180831161268157829003601f168201915b50505050509050919050565b60008181526004602090815260409182902060050180548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561269e5780601f106126735761010080835404028352916020019161269e565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000818152600460208181526040928390205483517f36569e77000000000000000000000000000000000000000000000000000000008152935173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116956c0100000000000000000000000090930416936336569e77938382019390929190829003018186803b1580156127f957600080fd5b505afa15801561280d573d6000803e3d6000fd5b505050506040513d602081101561282357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16146128a757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d696c6b000000000000000000604482015290519081900360640190fd5b6000818152600460208181526040928390205483517f957aa58c00000000000000000000000000000000000000000000000000000000815293516c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169363957aa58c93818101939291829003018186803b15801561292957600080fd5b505afa15801561293d573d6000803e3d6000fd5b505050506040513d602081101561295357600080fd5b50516001146129ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806140c0602b913960400191505060405180910390fd5b6000818152600460205260409020600201546bffffffffffffffffffffffff1660018114806129ea5750806bffffffffffffffffffffffff166002145b612a5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b600354604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101859052815160009373ffffffffffffffffffffffffffffffffffffffff169263d9638d369260248082019391829003018186803b158015612ac357600080fd5b505afa158015612ad7573d6000803e3d6000fd5b505050506040513d6040811015612aed57600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8116612b7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f7069702d696e76616c6964000000000000000000604482015290519081900360640190fd5b60008381526004602090815260409182902060020180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff861602179055815185815291517f176e1433f84712b82b982cc7a7b738797bd98e17b0882a6edc1a9a89e3dcbdfa9281900390910190a1505050565b6005546000908210612c6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496c6b52656769737472792f696e6465782d6f75742d6f662d72616e67650000604482015290519081900360640190fd5b60058281548110612c7757fe5b90600052602060002001549050919050565b6000818152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1680612d2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d696c6b000000000000000000604482015290519081900360640190fd5b6000828152600460205260409020600201546bffffffffffffffffffffffff166001811480612d675750806bffffffffffffffffffffffff166002145b612dd257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e1857600080fd5b505afa158015612e2c573d6000803e3d6000fd5b505050506040513d6020811015612e4257600080fd5b505115612eb057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496c6b52656769737472792f696c6b2d6c697665000000000000000000000000604482015290519081900360640190fd5b612eb983613d4e565b6040805184815290517f42f3b824eb9d522b949ff3d8f70db1872c46f3fc68b6df1a4c8d6aaebfcb67969181900360200190a1505050565b33600090815260208190526040902054600114612f6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020818152604080832092909255815192835290517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9281900390910190a150565b3360009081526020819052604090205460011461304b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b61305481613d4e565b6040805182815290517f42f3b824eb9d522b949ff3d8f70db1872c46f3fc68b6df1a4c8d6aaebfcb67969181900360200190a150565b6000908152600460205260409020600201546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6004602081815260009283526040928390208054600180830154600280850154600386015497860180548a5161010096821615969096027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff011692909204601f81018890048802850188019099528884526bffffffffffffffffffffffff808616996c010000000000000000000000009687900473ffffffffffffffffffffffffffffffffffffffff9081169a8187169a7401000000000000000000000000000000000000000090970460ff1699938516989094048116969316949193918301828280156131f45780601f106131c9576101008083540402835291602001916131f4565b820191906000526020600020905b8154815290600101906020018083116131d757829003601f168201915b5050505060058301805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529495949350908301828280156132a25780601f10613277576101008083540402835291602001916132a2565b820191906000526020600020905b81548152906001019060200180831161328557829003601f168201915b5050505050905089565b6000908152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060806000806000806000806132f8613f5e565b60008a81526004602081815260409283902083516101208101855281546bffffffffffffffffffffffff80821683526c010000000000000000000000009182900473ffffffffffffffffffffffffffffffffffffffff90811684870152600180860154808316868b015274010000000000000000000000000000000000000000900460ff166060860152600280870154938416608087015293909204811660a085015260038501541660c08401529483018054875161010097821615979097027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff011691909104601f81018590048502860185019096528585529094919360e086019390929083018282801561344f5780601f106134245761010080835404028352916020019161344f565b820191906000526020600020905b81548152906001019060200180831161343257829003601f168201915b505050918352505060058201805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529382019392918301828280156135015780601f106134d657610100808354040283529160200191613501565b820191906000526020600020905b8154815290600101906020018083116134e457829003601f168201915b5050509190925250505060e081015161010082015160808301516060840151604085015160a0860151602087015160c090970151959f50939d506bffffffffffffffffffffffff9092169b5060ff16995097509550909350915050919395975091939597565b60006020819052908152604090205481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b3360009081526020819052604090205460011461361357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b827f6e616d6500000000000000000000000000000000000000000000000000000000141561365e57600084815260046020819052604090912061365891018383613fac565b506136f3565b827f73796d626f6c000000000000000000000000000000000000000000000000000014156136a2576000848152600460205260409020613658906005018383613fac565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614116602a913960400191505060405180910390fd5b7f6a04c0a277676f3a4d382fc6167bf871235d53006834505ea2d2c6101041eda88484848460405180858152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920182900397509095505050505050a150505050565b3360009081526020819052604090205460011461380557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f646f670000000000000000000000000000000000000000000000000000000000141561387257600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b817f636174000000000000000000000000000000000000000000000000000000000014156138df57600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b817f73706f7400000000000000000000000000000000000000000000000000000000141561394c57600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806140eb602b913960400191505060405180910390fd5b6040805183815273ffffffffffffffffffffffffffffffffffffffff8316602082015281517f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b33600090815260208190526040902054600114613a8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f67656d00000000000000000000000000000000000000000000000000000000001415613b0757600083815260046020526040902060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055613c6a565b817f6a6f696e000000000000000000000000000000000000000000000000000000001415613b7b57600083815260046020526040902080546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff841602179055613c6a565b817f70697000000000000000000000000000000000000000000000000000000000001415613bf257600083815260046020526040902060020180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff841602179055613c6a565b817f786c697000000000000000000000000000000000000000000000000000000000141561394c57600083815260046020526040902060030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff83168183015290517f4ff2caaa972a7c6629ea01fae9c93d73cc307d13ea4c369f9bbbb7f9b7e9461d9181900360600190a1505050565b60408051602080825281830190925260609182919060208201818036833701905050905060005b6020811015613d4757838160208110613d0057fe5b1a60f81b828281518110613d1057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101613ceb565b5092915050565b600081815260046020526040812054600580546bffffffffffffffffffffffff90921692917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110613d9f57fe5b906000526020600020015490508060058381548110613dba57fe5b60009182526020808320919091019290925582815260049091526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff84161790556005805480613e1957fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101839055909201909255848252600490819052604082208281556001810180547fffffffffffffffffffffff000000000000000000000000000000000000000000169055600281018390556003810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190613ecb90830182614038565b613ed9600583016000614038565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613f2157805160ff1916838001178555613f4e565b82800160010185558215613f4e579182015b82811115613f4e578251825591602001919060010190613f33565b50613f5a92915061407f565b5090565b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e0810182905261010081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061400b578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613f4e565b82800160010185558215613f4e579182015b82811115613f4e57823582559160200191906001019061401d565b50805460018160011615610100020316600290046000825580601f1061405e575061407c565b601f01602090049060005260206000209081019061407c919061407f565b50565b5b80821115613f5a576000815560010161408056fe496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d75696e74323536496c6b52656769737472792f696c6b2d6e6f742d6c6976652d7573652d72656d6f76652d696e7374656164496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d61646472657373496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d737472696e67496c6b52656769737472792f696e76616c69642d61756374696f6e2d636f6e7472616374496c6b52656769737472792f696e76616c69642d6a6f696e2d616461707465722d766174496c6b52656769737472792f616461707465722d6e6f742d617574686f72697a6564a2646970667358221220d843537e2ddecadd26a94b08219645ac97fd4d1fa6d605d803bfed0196d56f7f64736f6c634300060c0033608060405234801561001057600080fd5b506102ee806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063019848921461003b578063a86e3576146100e3575b600080fd5b61006e6004803603602081101561005157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610116565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100a8578181015183820152602001610090565b50505050905090810190601f1680156100d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61006e600480360360208110156100f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610270565b60608173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561015e57600080fd5b505afa158015610172573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156101b957600080fd5b81019080805160405193929190846401000000008211156101d957600080fd5b9083019060208201858111156101ee57600080fd5b825164010000000081118282018810171561020857600080fd5b82525081516020918201929091019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b506040525050509050919050565b60608173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561015e57600080fdfea264697066735822122099545ff64066da3a0b1e9e0b0ab51f7c89419894287159d88cd3e845f01e526a64736f6c634300060c003300000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b000000000000000000000000135954d155898d42c90d2a57824c690e0c7bef1b000000000000000000000000a5679c04fc3d9d8b0aab1f0ab83555b301ca70ea00000000000000000000000065c79fcb50ca1594b025960e539ed7a9a6d434a3

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80636f265b931161010f578063ad677d0b116100a2578063c8b97f7111610071578063c8b97f71146109d2578063d4e8be8314610a4e578063e488181314610a87578063ebecb39d14610a8f576101e5565b8063ad677d0b146107fd578063b64a097e1461081a578063bf353dbb14610997578063c3b3ad7f146109ca576101e5565b80639c52a7f1116100de5780639c52a7f1146105ed578063a19555d914610620578063a49030361461063d578063a53a42b51461065a576101e5565b80636f265b931461058e5780638b147245146105965780639507d39a146105b357806395bc2673146105d0576101e5565b806336569e771161018757806356eac7dc1161015657806356eac7dc1461048f57806365fae35e146104ac578063691f3431146104df5780636baa033014610571576101e5565b806336569e771461033a57806341f0b723146103425780634d8835e61461035f57806350fd73671461046c576101e5565b80631a0b287e116101c35780631a0b287e14610291578063217cf12b146102ba578063247c803f146102d75780633017a54d1461031d576101e5565b806306661abd146101ea5780630a3b0a4f146102045780630f560cd714610239575b600080fd5b6101f2610ace565b60408051918252519081900360200190f35b6102376004803603602081101561021a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad4565b005b610241611aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b610237600480360360608110156102a757600080fd5b5080359060208101359060400135611b01565b6101f2600480360360208110156102d057600080fd5b5035611d3b565b6102f4600480360360208110156102ed57600080fd5b5035611d5e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f26004803603602081101561033357600080fd5b5035611d89565b6102f4611db9565b6102f46004803603602081101561035857600080fd5b5035611ddd565b610237600480360361012081101561037657600080fd5b81359173ffffffffffffffffffffffffffffffffffffffff6020820135811692604083013582169260608101359260808201359260a083013582169260c08101359092169190810190610100810160e08201356401000000008111156103db57600080fd5b8201836020820111156103ed57600080fd5b8035906020019184600183028401116401000000008311171561040f57600080fd5b91939092909160208101903564010000000081111561042d57600080fd5b82018360208201111561043f57600080fd5b8035906020019184600183028401116401000000008311171561046157600080fd5b509092509050611e08565b6102416004803603604081101561048257600080fd5b50803590602001356123d2565b6101f2600480360360208110156104a557600080fd5b50356124eb565b610237600480360360208110156104c257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661250b565b6104fc600480360360208110156104f557600080fd5b50356125e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053657818101518382015260200161051e565b50505050905090810190601f1680156105635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fc6004803603602081101561058757600080fd5b50356126aa565b6102f4612735565b610237600480360360208110156105ac57600080fd5b5035612751565b6101f2600480360360208110156105c957600080fd5b5035612bf7565b610237600480360360208110156105e657600080fd5b5035612c89565b6102376004803603602081101561060357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ef1565b6102376004803603602081101561063657600080fd5b5035612fcd565b6102f46004803603602081101561065357600080fd5b503561308a565b6106776004803603602081101561067057600080fd5b50356130c5565b604051808a6bffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018760ff168152602001866bffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610759578181015183820152602001610741565b50505050905090810190601f1680156107865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156107b95781810151838201526020016107a1565b50505050905090810190601f1680156107e65780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b6102f46004803603602081101561081357600080fd5b50356132ac565b6108376004803603602081101561083057600080fd5b50356132e4565b6040518080602001806020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528b818151815260200191508051906020019080838360005b838110156108f45781810151838201526020016108dc565b50505050905090810190601f1680156109215780820380516001836020036101000a031916815260200191505b5083810382528a5181528a516020918201918c019080838360005b8381101561095457818101518382015260200161093c565b50505050905090810190601f1680156109815780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b6101f2600480360360208110156109ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613567565b6102f4613579565b610237600480360360608110156109e857600080fd5b813591602081013591810190606081016040820135640100000000811115610a0f57600080fd5b820183602082011115610a2157600080fd5b80359060200191846001830284011164010000000083111715610a4357600080fd5b509092509050613595565b61023760048036036040811015610a6457600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16613787565b6102f46139f1565b61023760048036036060811015610aa557600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff16613a0d565b60055490565b60008190507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5657600080fd5b505afa158015610b6a573d6000803e3d6000fd5b505050506040513d6020811015610b8057600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141646024913960400191505060405180910390fd5b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663bf353dbb826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c7557600080fd5b505afa158015610c89573d6000803e3d6000fd5b505050506040513d6020811015610c9f57600080fd5b5051600114610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141886022913960400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4157600080fd5b505afa158015610d55573d6000803e3d6000fd5b505050506040513d6020811015610d6b57600080fd5b5051905080610ddb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496c6b52656769737472792f696c6b2d616461707465722d696e76616c696400604482015290519081900360640190fd5b6000818152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615610e7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496c6b52656769737472792f696c6b2d616c72656164792d6578697374730000604482015290519081900360640190fd5b600354604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101849052815160009373ffffffffffffffffffffffffffffffffffffffff169263d9638d369260248082019391829003018186803b158015610eea57600080fd5b505afa158015610efe573d6000803e3d6000fd5b505050506040513d6040811015610f1457600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8116610f9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f7069702d696e76616c6964000000000000000000604482015290519081900360640190fd5b600154604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101859052905160009273ffffffffffffffffffffffffffffffffffffffff169163d9638d36916024808301926080929190829003018186803b15801561100c57600080fd5b505afa158015611020573d6000803e3d6000fd5b505050506040513d608081101561103657600080fd5b50519050600173ffffffffffffffffffffffffffffffffffffffff821661116757600254604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101879052905173ffffffffffffffffffffffffffffffffffffffff9092169163d9638d3691602480820192606092909190829003018186803b1580156110c957600080fd5b505afa1580156110dd573d6000803e3d6000fd5b505050506040513d60608110156110f357600080fd5b5051915073ffffffffffffffffffffffffffffffffffffffff8216611163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141406024913960400191505060405180910390fd5b5060025b606061117285613cc4565b90507f000000000000000000000000d986ace7b674fe0434d721f5339868845158195c73ffffffffffffffffffffffffffffffffffffffff1663019848928773ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152516024808301926000929190829003018186803b15801561128c57600080fd5b505afa92505050801561139057506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156112dd57600080fd5b81019080805160405193929190846401000000008211156112fd57600080fd5b90830190602082018581111561131257600080fd5b825164010000000081118282018810171561132c57600080fd5b82525081516020918201929091019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b5060405250505060015b6113cc576040805186815290517f93272f551c7dd0dd38e4c01ae7b4eeef80d2557b4460caa3ee96697d93bc809a9181900360200190a16113d9565b8051156113d7578091505b505b60606113e486613cc4565b90507f000000000000000000000000d986ace7b674fe0434d721f5339868845158195c73ffffffffffffffffffffffffffffffffffffffff1663a86e35768873ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b15801561146857600080fd5b505afa15801561147c573d6000803e3d6000fd5b505050506040513d602081101561149257600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152516024808301926000929190829003018186803b1580156114fe57600080fd5b505afa92505050801561160257506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561154f57600080fd5b810190808051604051939291908464010000000082111561156f57600080fd5b90830190602082018581111561158457600080fd5b825164010000000081118282018810171561159e57600080fd5b82525081516020918201929091019080838360005b838110156115cb5781810151838201526020016115b3565b50505050905090810190601f1680156115f85780820380516001836020036101000a031916815260200191505b5060405250505060015b61163e576040805187815290517fd4596cfd8cc9635c5a006e070f5c23e1af9b5d2e65665a8d73958c9e6cc17b4d9181900360200190a161164b565b805115611649578091505b505b6005546bffffffffffffffffffffffff116116c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f746f6f2d6d616e792d696c6b7300000000000000604482015290519081900360640190fd5b6005805460018101825560008290527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604080516101208101825291547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016bffffffffffffffffffffffff16825273ffffffffffffffffffffffffffffffffffffffff8916602080840182905282517f7bd2bea7000000000000000000000000000000000000000000000000000000008152835193850193637bd2bea792600480840193919291829003018186803b1580156117a757600080fd5b505afa1580156117bb573d6000803e3d6000fd5b505050506040513d60208110156117d157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff9081168252604080517fb3bcfa820000000000000000000000000000000000000000000000000000000081529051602093840193928c169263b3bcfa829260048082019391829003018186803b15801561184157600080fd5b505afa158015611855573d6000803e3d6000fd5b505050506040513d602081101561186b57600080fd5b505160ff1681526bffffffffffffffffffffffff8516602082015273ffffffffffffffffffffffffffffffffffffffff8088166040830152861660608201526080810184905260a001829052600580546004916000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106118ed57fe5b600091825260208083209091015483528281019390935260409182019020835181548585015173ffffffffffffffffffffffffffffffffffffffff9081166c010000000000000000000000009081026bffffffffffffffffffffffff9485167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009485161785161785559487015160018501805460608a015160ff1674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9385167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161793909316929092179055608088015160028601805460a08b01518516909802918616979094169690961790931694909417905560c08501516003830180549190941691161790915560e083015180519192611a4b92600485019290910190613ee0565b506101008201518051611a68916005840191602090910190613ee0565b50506040805188815290517f74ceb2982b813d6b690af89638316706e6acb9a48fced388741b61b510f165b792509081900360200190a15050505050505050565b60606005805480602002602001604051908101604052809291908181526020018280548015611af757602002820191906000526020600020905b815481526020019060010190808311611ae3575b5050505050905090565b33600090815260208190526040902054600114611b7f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f636c6173730000000000000000000000000000000000000000000000000000001415611c17576bffffffffffffffffffffffff8111801590611bc257508015155b611bcb57600080fd5b600083815260046020526040902060020180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff8316179055611cf6565b817f64656300000000000000000000000000000000000000000000000000000000001415611ca55760ff811115611c4d57600080fd5b600083815260046020526040902060010180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff841602179055611cf6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614095602b913960400191505060405180910390fd5b604080518481526020810184905280820183905290517f851aa1caf4888170ad8875449d18f0f512fd6deb2a6571ea1a41fb9f95acbcd19181900360600190a1505050565b6000908152600460205260409020600201546bffffffffffffffffffffffff1690565b60009081526004602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b60009081526004602052604090206001015474010000000000000000000000000000000000000000900460ff1690565b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b60009081526004602052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b33600090815260208190526040902054600114611e8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b8615801590611ea157506bffffffffffffffffffffffff8711155b611f0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b60ff881115611f7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d646563000000000000000000604482015290519081900360640190fd5b60008b8152600460205260408120600201546bffffffffffffffffffffffff166120b0576005546bffffffffffffffffffffffff1161201c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f746f6f2d6d616e792d696c6b7300000000000000604482015290519081900360640190fd5b506005805460018101825560008290527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018c905554604080518d815290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909201917f74ceb2982b813d6b690af89638316706e6acb9a48fced388741b61b510f165b79181900360200190a1612106565b5060008b8152600460209081526040918290205482518e815292516bffffffffffffffffffffffff909116927f176e1433f84712b82b982cc7a7b738797bd98e17b0882a6edc1a9a89e3dcbdfa92908290030190a15b604051806101200160405280826bffffffffffffffffffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a60ff168152602001896bffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f870181900481028201810190925285815291810191908690869081908401838280828437600092018290525093909452505060058054600493506bffffffffffffffffffffffff861690811061224657fe5b600091825260208083209091015483528281019390935260409182019020835181548585015173ffffffffffffffffffffffffffffffffffffffff9081166c010000000000000000000000009081026bffffffffffffffffffffffff9485167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009485161785161785559487015160018501805460608a015160ff1674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9385167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161793909316929092179055608088015160028601805460a08b01518516909802918616979094169690961790931694909417905560c08501516003830180549190941691161790915560e0830151805191926123a492600485019290910190613ee0565b5061010082015180516123c1916005840191602090910190613ee0565b505050505050505050505050505050565b60608183111580156123e5575060055482105b61245057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d696e70757400000000000000604482015290519081900360640190fd5b606083830360010167ffffffffffffffff8111801561246e57600080fd5b50604051908082528060200260200182016040528015612498578160200160208202803683370190505b5090506000845b8481116124e157600581815481106124b357fe5b90600052602060002001548383815181106124ca57fe5b60209081029190910101526001918201910161249f565b5090949350505050565b6000908152600460205260409020546bffffffffffffffffffffffff1690565b3360009081526020819052604090205460011461258957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902060019055815192835290517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609281900390910190a150565b60008181526004602081815260409283902090910180548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561269e5780601f106126735761010080835404028352916020019161269e565b820191906000526020600020905b81548152906001019060200180831161268157829003601f168201915b50505050509050919050565b60008181526004602090815260409182902060050180548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561269e5780601f106126735761010080835404028352916020019161269e565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000818152600460208181526040928390205483517f36569e77000000000000000000000000000000000000000000000000000000008152935173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b8116956c0100000000000000000000000090930416936336569e77938382019390929190829003018186803b1580156127f957600080fd5b505afa15801561280d573d6000803e3d6000fd5b505050506040513d602081101561282357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16146128a757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d696c6b000000000000000000604482015290519081900360640190fd5b6000818152600460208181526040928390205483517f957aa58c00000000000000000000000000000000000000000000000000000000815293516c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169363957aa58c93818101939291829003018186803b15801561292957600080fd5b505afa15801561293d573d6000803e3d6000fd5b505050506040513d602081101561295357600080fd5b50516001146129ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806140c0602b913960400191505060405180910390fd5b6000818152600460205260409020600201546bffffffffffffffffffffffff1660018114806129ea5750806bffffffffffffffffffffffff166002145b612a5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b600354604080517fd9638d3600000000000000000000000000000000000000000000000000000000815260048101859052815160009373ffffffffffffffffffffffffffffffffffffffff169263d9638d369260248082019391829003018186803b158015612ac357600080fd5b505afa158015612ad7573d6000803e3d6000fd5b505050506040513d6040811015612aed57600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8116612b7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f7069702d696e76616c6964000000000000000000604482015290519081900360640190fd5b60008381526004602090815260409182902060020180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff861602179055815185815291517f176e1433f84712b82b982cc7a7b738797bd98e17b0882a6edc1a9a89e3dcbdfa9281900390910190a1505050565b6005546000908210612c6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496c6b52656769737472792f696e6465782d6f75742d6f662d72616e67650000604482015290519081900360640190fd5b60058281548110612c7757fe5b90600052602060002001549050919050565b6000818152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1680612d2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496c6b52656769737472792f696e76616c69642d696c6b000000000000000000604482015290519081900360640190fd5b6000828152600460205260409020600201546bffffffffffffffffffffffff166001811480612d675750806bffffffffffffffffffffffff166002145b612dd257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496c6b52656769737472792f696e76616c69642d636c61737300000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e1857600080fd5b505afa158015612e2c573d6000803e3d6000fd5b505050506040513d6020811015612e4257600080fd5b505115612eb057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496c6b52656769737472792f696c6b2d6c697665000000000000000000000000604482015290519081900360640190fd5b612eb983613d4e565b6040805184815290517f42f3b824eb9d522b949ff3d8f70db1872c46f3fc68b6df1a4c8d6aaebfcb67969181900360200190a1505050565b33600090815260208190526040902054600114612f6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526020818152604080832092909255815192835290517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9281900390910190a150565b3360009081526020819052604090205460011461304b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b61305481613d4e565b6040805182815290517f42f3b824eb9d522b949ff3d8f70db1872c46f3fc68b6df1a4c8d6aaebfcb67969181900360200190a150565b6000908152600460205260409020600201546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6004602081815260009283526040928390208054600180830154600280850154600386015497860180548a5161010096821615969096027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff011692909204601f81018890048802850188019099528884526bffffffffffffffffffffffff808616996c010000000000000000000000009687900473ffffffffffffffffffffffffffffffffffffffff9081169a8187169a7401000000000000000000000000000000000000000090970460ff1699938516989094048116969316949193918301828280156131f45780601f106131c9576101008083540402835291602001916131f4565b820191906000526020600020905b8154815290600101906020018083116131d757829003601f168201915b5050505060058301805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529495949350908301828280156132a25780601f10613277576101008083540402835291602001916132a2565b820191906000526020600020905b81548152906001019060200180831161328557829003601f168201915b5050505050905089565b6000908152600460205260409020546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060806000806000806000806132f8613f5e565b60008a81526004602081815260409283902083516101208101855281546bffffffffffffffffffffffff80821683526c010000000000000000000000009182900473ffffffffffffffffffffffffffffffffffffffff90811684870152600180860154808316868b015274010000000000000000000000000000000000000000900460ff166060860152600280870154938416608087015293909204811660a085015260038501541660c08401529483018054875161010097821615979097027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff011691909104601f81018590048502860185019096528585529094919360e086019390929083018282801561344f5780601f106134245761010080835404028352916020019161344f565b820191906000526020600020905b81548152906001019060200180831161343257829003601f168201915b505050918352505060058201805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529382019392918301828280156135015780601f106134d657610100808354040283529160200191613501565b820191906000526020600020905b8154815290600101906020018083116134e457829003601f168201915b5050509190925250505060e081015161010082015160808301516060840151604085015160a0860151602087015160c090970151959f50939d506bffffffffffffffffffffffff9092169b5060ff16995097509550909350915050919395975091939597565b60006020819052908152604090205481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b3360009081526020819052604090205460011461361357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b827f6e616d6500000000000000000000000000000000000000000000000000000000141561365e57600084815260046020819052604090912061365891018383613fac565b506136f3565b827f73796d626f6c000000000000000000000000000000000000000000000000000014156136a2576000848152600460205260409020613658906005018383613fac565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614116602a913960400191505060405180910390fd5b7f6a04c0a277676f3a4d382fc6167bf871235d53006834505ea2d2c6101041eda88484848460405180858152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920182900397509095505050505050a150505050565b3360009081526020819052604090205460011461380557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f646f670000000000000000000000000000000000000000000000000000000000141561387257600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b817f636174000000000000000000000000000000000000000000000000000000000014156138df57600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b817f73706f7400000000000000000000000000000000000000000000000000000000141561394c57600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561399d565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806140eb602b913960400191505060405180910390fd5b6040805183815273ffffffffffffffffffffffffffffffffffffffff8316602082015281517f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b33600090815260208190526040902054600114613a8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496c6b52656769737472792f6e6f742d617574686f72697a6564000000000000604482015290519081900360640190fd5b817f67656d00000000000000000000000000000000000000000000000000000000001415613b0757600083815260046020526040902060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055613c6a565b817f6a6f696e000000000000000000000000000000000000000000000000000000001415613b7b57600083815260046020526040902080546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff841602179055613c6a565b817f70697000000000000000000000000000000000000000000000000000000000001415613bf257600083815260046020526040902060020180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff841602179055613c6a565b817f786c697000000000000000000000000000000000000000000000000000000000141561394c57600083815260046020526040902060030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff83168183015290517f4ff2caaa972a7c6629ea01fae9c93d73cc307d13ea4c369f9bbbb7f9b7e9461d9181900360600190a1505050565b60408051602080825281830190925260609182919060208201818036833701905050905060005b6020811015613d4757838160208110613d0057fe5b1a60f81b828281518110613d1057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101613ceb565b5092915050565b600081815260046020526040812054600580546bffffffffffffffffffffffff90921692917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110613d9f57fe5b906000526020600020015490508060058381548110613dba57fe5b60009182526020808320919091019290925582815260049091526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff84161790556005805480613e1957fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101839055909201909255848252600490819052604082208281556001810180547fffffffffffffffffffffff000000000000000000000000000000000000000000169055600281018390556003810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190613ecb90830182614038565b613ed9600583016000614038565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613f2157805160ff1916838001178555613f4e565b82800160010185558215613f4e579182015b82811115613f4e578251825591602001919060010190613f33565b50613f5a92915061407f565b5090565b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e0810182905261010081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061400b578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613f4e565b82800160010185558215613f4e579182015b82811115613f4e57823582559160200191906001019061401d565b50805460018160011615610100020316600290046000825580601f1061405e575061407c565b601f01602090049060005260206000209081019061407c919061407f565b50565b5b80821115613f5a576000815560010161408056fe496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d75696e74323536496c6b52656769737472792f696c6b2d6e6f742d6c6976652d7573652d72656d6f76652d696e7374656164496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d61646472657373496c6b52656769737472792f66696c652d756e7265636f676e697a65642d706172616d2d737472696e67496c6b52656769737472792f696e76616c69642d61756374696f6e2d636f6e7472616374496c6b52656769737472792f696e76616c69642d6a6f696e2d616461707465722d766174496c6b52656769737472792f616461707465722d6e6f742d617574686f72697a6564a2646970667358221220d843537e2ddecadd26a94b08219645ac97fd4d1fa6d605d803bfed0196d56f7f64736f6c634300060c0033

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

00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b000000000000000000000000135954d155898d42c90d2a57824c690e0c7bef1b000000000000000000000000a5679c04fc3d9d8b0aab1f0ab83555b301ca70ea00000000000000000000000065c79fcb50ca1594b025960e539ed7a9a6d434a3

-----Decoded View---------------
Arg [0] : vat_ (address): 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B
Arg [1] : dog_ (address): 0x135954d155898D42C90D2a57824C690e0c7BEf1B
Arg [2] : cat_ (address): 0xa5679C04fc3d9d8b0AaB1F0ab83555b301cA70Ea
Arg [3] : spot_ (address): 0x65C79fcB50Ca1594B025960e539eD7A9a6D434A3

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b
Arg [1] : 000000000000000000000000135954d155898d42c90d2a57824c690e0c7bef1b
Arg [2] : 000000000000000000000000a5679c04fc3d9d8b0aab1f0ab83555b301ca70ea
Arg [3] : 00000000000000000000000065c79fcb50ca1594b025960e539ed7a9a6d434a3


Deployed Bytecode Sourcemap

2690:12696:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10141:86;;;:::i;:::-;;;;;;;;;;;;;;;;5212:1944;;;;;;;;;;;;;;;;-1:-1:-1;5212:1944:0;;;;:::i;:::-;;10281:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:401;;;;;;;;;;;;;;;;-1:-1:-1;8674:401:0;;;;;;;;;;;;:::i;11980:104::-;;;;;;;;;;;;;;;;-1:-1:-1;11980:104:0;;:::i;12545:102::-;;;;;;;;;;;;;;;;-1:-1:-1;12545:102:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;12697:100;;;;;;;;;;;;;;;;-1:-1:-1;12697:100:0;;:::i;3518:30::-;;;:::i;12118:100::-;;;;;;;;;;;;;;;;-1:-1:-1;12118:100:0;;:::i;13889:1218::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13889:1218:0;;-1:-1:-1;13889:1218:0;-1:-1:-1;13889:1218:0;:::i;10453:415::-;;;;;;;;;;;;;;;;-1:-1:-1;10453:415:0;;;;;;;:::i;11749:100::-;;;;;;;;;;;;;;;;-1:-1:-1;11749:100:0;;:::i;3240:76::-;;;;;;;;;;;;;;;;-1:-1:-1;3240:76:0;;;;:::i;13029:108::-;;;;;;;;;;;;;;;;-1:-1:-1;13029:108:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12858:112;;;;;;;;;;;;;;;;-1:-1:-1;12858:112:0;;:::i;3650:20::-;;;:::i;13230:547::-;;;;;;;;;;;;;;;;-1:-1:-1;13230:547:0;;:::i;10932:164::-;;;;;;;;;;;;;;;;-1:-1:-1;10932:164:0;;:::i;7227:410::-;;;;;;;;;;;;;;;;-1:-1:-1;7227:410:0;;:::i;3322:76::-;;;;;;;;;;;;;;;;-1:-1:-1;3322:76:0;;;;:::i;7698:108::-;;;;;;;;;;;;;;;;-1:-1:-1;7698:108:0;;:::i;12255:100::-;;;;;;;;;;;;;;;;-1:-1:-1;12255:100:0;;:::i;4147:39::-;;;;;;;;;;;;;;;;-1:-1:-1;4147:39:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4147:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12394:102;;;;;;;;;;;;;;;;-1:-1:-1;12394:102:0;;:::i;11168:523::-;;;;;;;;;;;;;;;;-1:-1:-1;11168:523:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11168:523:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:38;;;;;;;;;;;;;;;;-1:-1:-1;3195:38:0;;;;:::i;3598:19::-;;;:::i;9112:318::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9112:318:0;;-1:-1:-1;9112:318:0;-1:-1:-1;9112:318:0;:::i;7843:334::-;;;;;;;;;;;;;;;;-1:-1:-1;7843:334:0;;;;;;;;;:::i;3624:19::-;;;:::i;8214:423::-;;;;;;;;;;;;;;;;-1:-1:-1;8214:423:0;;;;;;;;;;;;;;:::i;10141:86::-;10208:4;:11;10141:86;:::o;5212:1944::-;5262:14;5288:7;5262:34;;5369:3;5346:27;;:5;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5346:11:0;:27;;;5338:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5436:3;:9;;;5454:5;5436:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5436:25:0;5465:1;5436:30;5428:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5543:12;5558:5;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5558:11:0;;-1:-1:-1;5588:9:0;5580:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5682:1;5652:13;;;:7;:13;;;;;:18;;;;:32;:18;:32;5644:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:4;;:15;;;;;;;;;;;;;;5733:12;;5750:4;;;:9;;:15;;;;;;;;;;;:4;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5750:15:0;;-1:-1:-1;5784:18:0;;;5776:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:3;;:14;;;;;;;;;;;;;;5844:13;;5864:3;;;:8;;:14;;;;;;;;;;;;;;:3;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5864:14:0;;-1:-1:-1;5908:1:0;5924:19;;;5920:187;;5973:3;;:14;;;;;;;;;;;;;;:3;;;;;:8;;:14;;;;;;;;;;;;;;;:3;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5973:14:0;;-1:-1:-1;6010:19:0;;;6002:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6094:1:0;5920:187;6119:18;6140;6153:4;6140:12;:18::i;:::-;6119:39;;6173:7;:12;;;6186:5;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6186:11:0;6173:25;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6173:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6173:25:0;;;;;;;;;;-1:-1:-1;6173:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6169:217;;6359:15;;;;;;;;;;;;;;;;;6169:217;;;6248:19;;:24;6244:77;;6300:5;6293:12;;6244:77;6199:133;6169:217;6398:20;6421:18;6434:4;6421:12;:18::i;:::-;6398:41;;6454:7;:14;;;6469:5;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6469:11:0;6454:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6454:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6454:27:0;;;;;;;;;;-1:-1:-1;6454:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6450:229;;6650:17;;;;;;;;;;;;;;;;;6450:229;;;6533:21;;:26;6529:83;;6589:7;6580:16;;6529:83;6482:141;6450:229;6699:4;:11;:24;-1:-1:-1;6691:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6764:4;:15;;;;;;;-1:-1:-1;6764:15:0;;;;;;;;6823:295;;;;;;;;6854:11;;6764:15;6854;6823:295;;;;;;;6764:15;6823:295;;;;;;6925:11;;;;;;;6823:295;;;;6925:9;;:11;;;;;6764:15;;6925:11;;;;;;6823:295;6925:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6925:11:0;6823:295;;;;;;6962:11;;;;;;;;6925;6823:295;;;;6962:9;;;;;;:11;;;;;;;;;;;:9;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6962:11:0;6823:295;;;;;;;6962:11;6823:295;;;;;;;;;;;;;;;;;;;;;;;;;;;;6798:4;6803:11;;6790:7;;-1:-1:-1;;6803:15:0;;;;6798:21;;;;;;;;;;;;;;;;;;6790:30;;;;;;;;;;;;;;;:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;:328;;;;;;;;;;;:::i;:::-;-1:-1:-1;6790:328:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7136:12:0;;;;;;;;;;-1:-1:-1;7136:12:0;;;;;;;;5212:1944;;;;;;;;:::o;10281:87::-;10320:16;10356:4;10349:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10281:87;:::o;8674:401::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8763:4:::1;:15;;8754:276;;;8790:18;::::0;::::1;::::0;::::1;::::0;:31:::1;;-1:-1:-1::0;8812:9:0;;::::1;8790:31;8782:40;;;::::0;::::1;;8824:12;::::0;;;:7:::1;:12;::::0;;;;:18:::1;;:33:::0;;;::::1;;::::0;::::1;;::::0;;8754:276:::1;;;8879:4;:13;;8875:155;;;8906:17;::::0;::::1;;8898:26;;;::::0;::::1;;8927:12;::::0;;;:7:::1;:12;::::0;;;;:16:::1;;:32:::0;;;::::1;::::0;::::1;::::0;::::1;;;::::0;;8875:155:::1;;;8977:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8875:155;9046:21;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;8674:401:::0;;;:::o;11980:104::-;12031:7;12058:12;;;:7;:12;;;;;:18;;;;;;11980:104::o;12545:102::-;12595:7;12622:12;;;:7;:12;;;;;:17;;;;;;12545:102::o;12697:100::-;12746:7;12773:12;;;:7;:12;;;;;:16;;;;;;;;;12697:100::o;3518:30::-;;;:::o;12118:100::-;12167:7;12194:12;;;:7;:12;;;;;:16;;;;;;12118:100::o;13889:1218::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14232:11;;;::::1;::::0;:35:::1;;-1:-1:-1::0;14247:20:0::1;::::0;::::1;;14232:35;14224:73;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14320:17;::::0;::::1;;14312:53;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14380:11;14412:13:::0;;;:7:::1;:13;::::0;;;;:19:::1;;::::0;::::1;;14408:350;;14465:4;:11:::0;:24:::1;-1:-1:-1::0;14457:62:0::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;14538:4:0::1;:15:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;14538:15:0;;;;::::1;::::0;;;14586:11;14626:12:::1;::::0;;;;;;;14538:15;14586;;;;;14626:12:::1;::::0;;;;14538:15:::1;14626:12:::0;;::::1;14408:350;;;-1:-1:-1::0;14686:13:0::1;::::0;;;:7:::1;:13;::::0;;;;;;;;:17;14727:15;;;;;;;14686:17:::1;::::0;;::::1;::::0;14727:15:::1;::::0;;;;;;;::::1;14408:350;14796:303;;;;;;;;14824:4;14796:303;;;;;;14853:5;14796:303;;;;;;14882:4;14796:303;;;;;;14916:4;14796:303;;;;;;14954:6;14796:303;;;;;;14985:4;14796:303;;;;;;15014:5;14796:303;;;;;;15044:5;;14796:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;14796:303:0;;;-1:-1:-1;14796:303:0::1;::::0;;::::1;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;::::1;::::0;;15076:7;;;;;;14796:303;::::1;15076:7:::0;;;;14796:303;::::1;;::::0;::::1;::::0;;;-1:-1:-1;14796:303:0;;;;-1:-1:-1;;14782:4:0::1;:10:::0;;14774:7:::1;::::0;-1:-1:-1;14782:10:0::1;::::0;::::1;::::0;;::::1;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;14774:19;;;;::::1;::::0;;;;;;;;;;:325;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;::::0;;;::::1;;::::0;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;:19;;:325:::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14774:325:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;;;;;13889:1218:0:o;10453:415::-;10518:16;10564:3;10555:5;:12;;:33;;;;-1:-1:-1;10577:4:0;:11;10571:17;;10555:33;10547:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10629:22;10675:5;10669:3;:11;10684:1;10668:17;10654:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10654:32:0;-1:-1:-1;10629:57:0;-1:-1:-1;10697:14:0;10743:5;10726:112;10755:3;10750:1;:8;10726:112;;10796:4;10801:1;10796:7;;;;;;;;;;;;;;;;10780:5;10786:6;10780:13;;;;;;;;;;;;;;;;;:23;10818:8;;;;;10760:3;10726:112;;;-1:-1:-1;10855:5:0;;10453:415;-1:-1:-1;;;;10453:415:0:o;11749:100::-;11798:7;11825:12;;;:7;:12;;;;;:16;;;;11749:100::o;3240:76::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3283:10:::1;::::0;::::1;:5;:10:::0;;;::::1;::::0;;;;;;;;3296:1:::1;3283:14:::0;;3304:9;;;;;;;::::1;::::0;;;;;;;;::::1;3240:76:::0;:::o;13029:108::-;13112:12;;;;:7;:12;;;;;;;;;:17;;;13105:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13079:13;;13105:24;;;13112:17;13105:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13029:108;;;:::o;12858:112::-;12943:12;;;;:7;:12;;;;;;;;;:19;;12936:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12910:13;;12936:26;;;12943:19;12936:26;;;;;;;;;;;;;;;;;;;;;;;;3650:20;;;;;;:::o;13230:547::-;13296:12;;;;:7;:12;;;;;;;;;:17;13287:33;;;;;;;:49;13332:3;13287:49;;;13296:17;;;;;;13287:31;;:33;;;;13296:12;;13287:33;;;;;;;13296:17;13287:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13287:33:0;:49;;;13279:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13392:12;;;;:7;:12;;;;;;;;;:17;13383:34;;;;;;;13392:17;;;;;;;13383:32;;:34;;;;13392:12;13383:34;;;;;;13392:17;13383:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13383:34:0;13421:1;13383:39;13375:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13481:13;13497:12;;;:7;:12;;;;;:18;;;;;;13534:11;;;:26;;;13549:6;:11;;13559:1;13549:11;13534:26;13526:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13621:4;;:14;;;;;;;;;;;;;;13604:12;;13621:4;;;:9;;:14;;;;;;;;;;;:4;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13621:14:0;;-1:-1:-1;13654:18:0;;;13646:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13713:12;;;;:7;:12;;;;;;;;;:16;;:26;;;;;;;;;;;;13755:14;;;;;;;;;;;;;;;;;13230:547;;;:::o;10932:164::-;11015:4;:11;10981:7;;11009:17;;11001:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11079:4;11084:3;11079:9;;;;;;;;;;;;;;;;11072:16;;10932:164;;;:::o;7227:410::-;7276:14;7302:12;;;:7;:12;;;;;:17;;;;;;;7331:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7406:13;7422:12;;;:7;:12;;;;;:18;;;;;;7459:11;;;:26;;;7474:6;:11;;7484:1;7474:11;7459:26;7451:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7534:5;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7534:12:0;:17;7526:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7587:12;7595:3;7587:7;:12::i;:::-;7615:14;;;;;;;;;;;;;;;;;7227:410;;;:::o;3322:76::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3365:10:::1;::::0;::::1;3378:1;3365:10:::0;;;::::1;::::0;;;;;;;:14;;;;3386:9;;;;;;;::::1;::::0;;;;;;;;::::1;3322:76:::0;:::o;7698:108::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7756:12:::1;7764:3;7756:7;:12::i;:::-;7784:14;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;7698:108:::0;:::o;12255:100::-;12304:7;12331:12;;;:7;:12;;;;;:16;;;;;;;;;12255:100::o;4147:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4147:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4147:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12394:102::-;12444:7;12471:12;;;:7;:12;;;;;:17;;;;;;;12394:102::o;11168:523::-;11228:18;11257:20;11288:13;11312:11;11334;11356;11378:12;11401;11432:15;;:::i;:::-;11450:12;;;;:7;:12;;;;;;;;;11432:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11450:12;;11432:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11432:30:0;;;-1:-1:-1;;11432:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11432:30:0;;;;-1:-1:-1;;;11495:9:0;;;;11519:11;;;;11545:10;;;;11570:8;;;;11593;;;;11616;;;;11639:9;;;;11663;;;;;11495;;-1:-1:-1;11519:11:0;;-1:-1:-1;11473:210:0;;;;;-1:-1:-1;11473:210:0;;;-1:-1:-1;11593:8:0;-1:-1:-1;11616:8:0;-1:-1:-1;11639:9:0;;-1:-1:-1;11663:9:0;-1:-1:-1;;11168:523:0;;;;;;;;;:::o;3195:38::-;;;;;;;;;;;;;;:::o;3598:19::-;;;;;;:::o;9112:318::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9209:4:::1;:14;;9200:185;;;9227:12;::::0;;;:7:::1;:12;::::0;;;;;;;:26:::1;::::0;:17:::1;9249:4:::0;;9227:26:::1;:::i;:::-;;9200:185;;;9273:4;:16;;9269:116;;;9291:12;::::0;;;:7:::1;:12;::::0;;;;:26:::1;::::0;:19:::1;;9313:4:::0;;9291:26:::1;:::i;9269:116::-;9333:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9269:116;9401:21;9406:3;9411:4;9417;;9401:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;9401:21:0;;-1:-1:-1;;;;;;9401:21:0::1;9112:318:::0;;;;:::o;7843:334::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7919:4:::1;:13;;7910:227;;;7935:3;:20:::0;;;::::1;;::::0;::::1;;::::0;;7910:227:::1;;;7975:4;:13;;7971:166;;;7991:3;:20:::0;;;::::1;;::::0;::::1;;::::0;;7971:166:::1;;;8031:4;:14;;8027:110;;;8047:4;:21:::0;;;::::1;;::::0;::::1;;::::0;;8027:110:::1;;;8084:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8027:110;8153:16;::::0;;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;7843:334:::0;;:::o;3624:19::-;;;;;;:::o;8214:423::-;3443:10;3437:5;:17;;;;;;;;;;;3458:1;3437:22;3429:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8303:4:::1;:13;;8294:298;;;8319:12;::::0;;;:7:::1;:12;::::0;;;;:16:::1;;:24:::0;;;::::1;;::::0;::::1;;::::0;;8294:298:::1;;;8363:4;:14;;8359:233;;;8379:12;::::0;;;:7:::1;:12;::::0;;;;:24;;;::::1;::::0;::::1;::::0;::::1;;;::::0;;8359:233:::1;;;8423:4;:13;;8419:173;;;8439:12;::::0;;;:7:::1;:12;::::0;;;;:16:::1;;:24:::0;;;::::1;::::0;::::1;::::0;::::1;;;::::0;;8419:173:::1;;;8483:4;:14;;8479:113;;;8499:12;::::0;;;:7:::1;:12;::::0;;;;:17:::1;;:24:::0;;;::::1;;::::0;::::1;;::::0;;8479:113:::1;8608:21;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;8214:423:::0;;;:::o;15115:268::-;15231:13;;;15241:2;15231:13;;;;;;;;;15178;;;;15231;;;;;;;;;;;-1:-1:-1;15231:13:0;15204:40;;15260:9;15255:84;15275:2;15271:1;:6;15255:84;;;15316:8;15325:1;15316:11;;;;;;;;;;15299;15311:1;15299:14;;;;;;;;;;;:28;;;;;;;;;;-1:-1:-1;15279:3:0;;15255:84;;;-1:-1:-1;15363:11:0;15115:268;-1:-1:-1;;15115:268:0:o;9561:538::-;9653:14;9670:12;;;:7;:12;;;;;:16;9758:4;9763:11;;9670:16;;;;;9653:14;9763:15;;;;9758:21;;;;;;;;;;;;;;9739:40;;9849:8;9834:4;9839:6;9834:12;;;;;;;;;;;;;;;;;;;;:23;;;;9924:17;;;:7;:17;;;;;;:38;;;;;;;;;;10020:4;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10079:12;;;:7;:12;;;;;;;10072:19;;;10020:10;10072:19;;;;;;;;;;;;;;;;;;;;;;;10079:12;10020:10;10072:19;;;;10020:10;10072:19;:::i;:::-;;;;;;;:::i;:::-;;;9561:538;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://99545ff64066da3a0b1e9e0b0ab51f7c89419894287159d88cd3e845f01e526a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Sky (formerly Maker) enables users to get rewarded for non-custodial savings.

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.