ETH Price: $1,869.33 (-4.79%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Make Cid85571422019-09-15 23:55:202357 days ago1568591720IN
0xbFE6358C...a73f0Ae7E
0 ETH0.001207765
Make Cid83463132019-08-14 3:55:292390 days ago1565754929IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid83353682019-08-12 11:08:452392 days ago1565608125IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798122019-07-19 7:33:342416 days ago1563521614IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798092019-07-19 7:32:362416 days ago1563521556IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798072019-07-19 7:32:102416 days ago1563521530IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798052019-07-19 7:31:512416 days ago1563521511IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798052019-07-19 7:31:512416 days ago1563521511IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798012019-07-19 7:30:292416 days ago1563521429IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81798002019-07-19 7:30:222416 days ago1563521422IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797982019-07-19 7:30:052416 days ago1563521405IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797972019-07-19 7:30:032416 days ago1563521403IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797952019-07-19 7:29:422416 days ago1563521382IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797922019-07-19 7:28:502416 days ago1563521330IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797922019-07-19 7:28:502416 days ago1563521330IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797912019-07-19 7:28:172416 days ago1563521297IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797912019-07-19 7:28:172416 days ago1563521297IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797892019-07-19 7:27:502416 days ago1563521270IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797862019-07-19 7:27:002416 days ago1563521220IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797852019-07-19 7:26:522416 days ago1563521212IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797842019-07-19 7:26:342416 days ago1563521194IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797822019-07-19 7:26:282416 days ago1563521188IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797812019-07-19 7:26:162416 days ago1563521176IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797812019-07-19 7:26:162416 days ago1563521176IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
Make Cid81797792019-07-19 7:26:032416 days ago1563521163IN
0xbFE6358C...a73f0Ae7E
0 ETH0.00105525
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pmes

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-14
*/

pragma solidity =0.5.1;

contract Pmes {

    address public owner;
    uint256 public nextCid = 1;

    struct Content {
        string cus;
        string description;
        address owner;
        uint256 readPrice;
        uint256 writePrice;
    }
    mapping(uint256 => string[]) public reviews;
    enum OfferStatus {Cancelled, Rejected, Opened, Accepted}
    struct Offer {
        uint256 id;
        string buyerAccessString;
        string sellerPublicKey;
        string sellerAccessString;
        OfferStatus status;
        uint256 cid;
        address buyerId;
        uint256 offerType;
        uint256 price;
    }

    mapping(uint256 => Content) public contents;
    mapping(string => uint256)  CusToCid;
    function getCid(string memory cus) public view returns (uint256) {
        return CusToCid[cus];
    }

    uint256 public nextOfferId = 1;
    mapping(uint256 => Offer) public offers;
    mapping(uint256 => mapping(address => uint256)) public CidBuyerIdToOfferId;

    mapping(uint256 => uint256[]) public CidToOfferIds;
    mapping(address => uint256[]) public BuyerIdToOfferIds;

    // Access level mapping [address]
    // 0 - access denied
    // 1 - can edit existing content
    // 2 - can add content
    // 3 - can saleAccess
    // 4 - can changeOwner
    // 5 - can setAccessLevel
    mapping(address => uint256) public publishersMap;

    event postContent(uint256); // makeCid
    event postOffer(uint256, uint256, uint256, address); // makeOffer
    event acceptOffer(uint256); // sellContent, changeOwner
    event postReview(); // newReview

    constructor() public
    {
        // to prevent repeated calls
        require (owner == address(0x0));
        // set owner address
        owner = msg.sender;
    }

    function setAccessLevel(
        address publisherAddress,
        uint256 accessLevel
    )
        public
        minAccessLevel(5)
    {
        publishersMap[publisherAddress] = accessLevel;
    }

    function makeCid(
        string memory cus,
        address ownerId,
        string memory description,
        uint256 readPrice,
        uint256 writePrice
    )
        public
        minAccessLevel(2)
        returns (uint256)
    {
        // To prevent create already exist
        uint256 cid = CusToCid[cus];
        require(cid == 0, "Content already uploaded");

        cid = nextCid++;
        CusToCid[cus] = cid;

        contents[cid] = Content(cus, description, ownerId, readPrice, writePrice);
        emit postContent(cid);

        return cid;
    }

    function setReadPrice(uint256 cid, uint256 price) public minAccessLevel(1) {
        require(cid > 0 && cid < nextCid);
        contents[cid].readPrice = price;
    }

    function setWritePrice(uint256 cid, uint256 price) public minAccessLevel(1) {
        require(cid > 0 && cid < nextCid);
        contents[cid].writePrice = price;
    }

    function addReview(uint256 cid, address buyerId, string memory review) public minAccessLevel(1) {
        uint256 offerId = CidBuyerIdToOfferId[cid][buyerId];
        require(offerId != 0);
        require(offers[offerId].status == OfferStatus.Accepted);

        reviews[cid].push(review);
        emit postReview();
    }

    function setDescription(uint256 cid, string memory description) public minAccessLevel(1) {
        require(cid > 0 && cid < nextCid);
        contents[cid].description = description;
    }

    function changeOwner(
        uint256 cid,
        address buyerId,
        string memory sellerPublicKey,
        string memory sellerAccessString
    )
        public
        minAccessLevel(4)
    {
        uint256 offerId = CidBuyerIdToOfferId[cid][buyerId];
        require(offers[offerId].status == OfferStatus.Opened);
        contents[cid].owner = buyerId;
        offers[offerId].sellerAccessString = sellerAccessString;
        offers[offerId].sellerPublicKey = sellerPublicKey;
        offers[offerId].status = OfferStatus.Accepted;
        emit acceptOffer(cid);
    }

    function sellContent(
        uint256 cid,
        address buyerId,
        string memory sellerPublicKey,
        string memory sellerAccessString
    )
        public
        minAccessLevel(3)
    {
        uint256 offerId = CidBuyerIdToOfferId[cid][buyerId];
        require(offers[offerId].status == OfferStatus.Opened);
        offers[offerId].sellerAccessString = sellerAccessString;
        offers[offerId].sellerPublicKey = sellerPublicKey;
        offers[offerId].status = OfferStatus.Accepted;
        emit acceptOffer(cid);
    }

    function makeOffer(
        uint256 cid,
        address buyerId,
        uint256 offerType,
        uint256 price,
        string memory buyerAccessString
    )
        public
        minAccessLevel(2)
    {
        require(cid > 0 && cid < nextCid, "Wrong cid");
        // require(CidBuyerIdToOfferId[cid][buyerId] == 0, "");
        require(
            offers[CidBuyerIdToOfferId[cid][buyerId]].status != OfferStatus.Accepted &&
            offers[CidBuyerIdToOfferId[cid][buyerId]].status != OfferStatus.Opened,
            "Offer already exist"
        );

        offers[nextOfferId] = Offer(
            offers[CidBuyerIdToOfferId[cid][buyerId]].id + 1,
            buyerAccessString, 
            "none", 
            "none", 
            OfferStatus.Opened, 
            cid, 
            buyerId, 
            offerType, 
            price
        );

        CidBuyerIdToOfferId[cid][buyerId] = nextOfferId;

        CidToOfferIds[cid].push(nextOfferId);
        BuyerIdToOfferIds[buyerId].push(nextOfferId);

        emit postOffer(cid, offerType, price, buyerId);
        
        nextOfferId++;
    }

    function cancelOffer(uint256 cid, address buyerId) public minAccessLevel(2) {
        uint256 offerId = CidBuyerIdToOfferId[cid][buyerId];
        require(offers[offerId].status == OfferStatus.Opened);
        offers[offerId].status = OfferStatus.Cancelled;
    }

    function rejectOffer(uint256 cid, address buyerId) public minAccessLevel(2) {
        uint256 offerId = CidBuyerIdToOfferId[cid][buyerId];
        require(offers[offerId].status == OfferStatus.Opened);
        offers[offerId].status = OfferStatus.Rejected;
    }

    modifier minAccessLevel(uint256 level) {
        if(msg.sender != owner) {
            require(publishersMap[msg.sender] >= level);
        }
        _;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"description","type":"string"}],"name":"setDescription","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"cus","type":"string"}],"name":"getCid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"publisherAddress","type":"address"},{"name":"accessLevel","type":"uint256"}],"name":"setAccessLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"publishersMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"CidBuyerIdToOfferId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"},{"name":"review","type":"string"}],"name":"addReview","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"CidToOfferIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextOfferId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"},{"name":"offerType","type":"uint256"},{"name":"price","type":"uint256"},{"name":"buyerAccessString","type":"string"}],"name":"makeOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"},{"name":"sellerPublicKey","type":"string"},{"name":"sellerAccessString","type":"string"}],"name":"sellContent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"id","type":"uint256"},{"name":"buyerAccessString","type":"string"},{"name":"sellerPublicKey","type":"string"},{"name":"sellerAccessString","type":"string"},{"name":"status","type":"uint8"},{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"},{"name":"offerType","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cus","type":"string"},{"name":"ownerId","type":"address"},{"name":"description","type":"string"},{"name":"readPrice","type":"uint256"},{"name":"writePrice","type":"uint256"}],"name":"makeCid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"price","type":"uint256"}],"name":"setReadPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"BuyerIdToOfferIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"reviews","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contents","outputs":[{"name":"cus","type":"string"},{"name":"description","type":"string"},{"name":"owner","type":"address"},{"name":"readPrice","type":"uint256"},{"name":"writePrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"},{"name":"sellerPublicKey","type":"string"},{"name":"sellerAccessString","type":"string"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"}],"name":"cancelOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"price","type":"uint256"}],"name":"setWritePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextCid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cid","type":"uint256"},{"name":"buyerId","type":"address"}],"name":"rejectOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"}],"name":"postContent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"address"}],"name":"postOffer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"}],"name":"acceptOffer","type":"event"},{"anonymous":false,"inputs":[],"name":"postReview","type":"event"}]

608060405260018055600160055534801561001957600080fd5b50600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561007657600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612f71806100c56000396000f3fe608060405260043610610122576000357c0100000000000000000000000000000000000000000000000000000000900480632a6446ca1461012757806333e17c60146101f95780633a7327a3146102d55780633a8c50b9146103305780633d672b151461039557806341309af414610404578063421e85c5146104f65780635f5d06551461054f57806365d724161461057a578063715c084b146106805780638a72ea6a146108095780638c3ce5d7146109f95780638da5cb5b14610ba0578063910352b014610bf7578063a4aa3f7014610c3c578063a7264f8814610cab578063b5ecf91214610d69578063bbfd5e5314610eca578063c0fc80a214611053578063c18af4ef146110ae578063d2c96d1e146110f3578063db9371c21461111e575b600080fd5b34801561013357600080fd5b506101f76004803603604081101561014a57600080fd5b81019080803590602001909291908035906020019064010000000081111561017157600080fd5b82018360208201111561018357600080fd5b803590602001918460018302840111640100000000831117156101a557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611179565b005b34801561020557600080fd5b506102bf6004803603602081101561021c57600080fd5b810190808035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061126c565b6040518082815260200191505060405180910390f35b3480156102e157600080fd5b5061032e600480360360408110156102f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112e1565b005b34801561033c57600080fd5b5061037f6004803603602081101561035357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d1565b6040518082815260200191505060405180910390f35b3480156103a157600080fd5b506103ee600480360360408110156103b857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e9565b6040518082815260200191505060405180910390f35b34801561041057600080fd5b506104f46004803603606081101561042757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561046e57600080fd5b82018360208201111561048057600080fd5b803590602001918460018302840111640100000000831117156104a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061140e565b005b34801561050257600080fd5b506105396004803603604081101561051957600080fd5b8101908080359060200190929190803590602001909291905050506115e4565b6040518082815260200191505060405180910390f35b34801561055b57600080fd5b50610564611614565b6040518082815260200191505060405180910390f35b34801561058657600080fd5b5061067e600480360360a081101561059d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105f857600080fd5b82018360208201111561060a57600080fd5b8035906020019184600183028401116401000000008311171561062c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061161a565b005b34801561068c57600080fd5b50610807600480360360808110156106a357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106ea57600080fd5b8201836020820111156106fc57600080fd5b8035906020019184600183028401116401000000008311171561071e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460018302840111640100000000831117156107b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611cb1565b005b34801561081557600080fd5b506108426004803603602081101561082c57600080fd5b8101908080359060200190929190505050611ec2565b604051808a815260200180602001806020018060200189600381111561086457fe5b60ff1681526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184810384528c818151815260200191508051906020019080838360005b838110156108e85780820151818401526020810190506108cd565b50505050905090810190601f1680156109155780820380516001836020036101000a031916815260200191505b5084810383528b818151815260200191508051906020019080838360005b8381101561094e578082015181840152602081019050610933565b50505050905090810190601f16801561097b5780820380516001836020036101000a031916815260200191505b5084810382528a818151815260200191508051906020019080838360005b838110156109b4578082015181840152602081019050610999565b50505050905090810190601f1680156109e15780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390f35b348015610a0557600080fd5b50610b8a600480360360a0811015610a1c57600080fd5b8101908080359060200190640100000000811115610a3957600080fd5b820183602082011115610a4b57600080fd5b80359060200191846001830284011164010000000083111715610a6d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610af057600080fd5b820183602082011115610b0257600080fd5b80359060200191846001830284011164010000000083111715610b2457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050612105565b6040518082815260200191505060405180910390f35b348015610bac57600080fd5b50610bb5612447565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c0357600080fd5b50610c3a60048036036040811015610c1a57600080fd5b81019080803590602001909291908035906020019092919050505061246c565b005b348015610c4857600080fd5b50610c9560048036036040811015610c5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061254f565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610cee60048036036040811015610cce57600080fd5b81019080803590602001909291908035906020019092919050505061257f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d2e578082015181840152602081019050610d13565b50505050905090810190601f168015610d5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d7557600080fd5b50610da260048036036020811015610d8c57600080fd5b8101908080359060200190929190505050612647565b6040518080602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610e24578082015181840152602081019050610e09565b50505050905090810190601f168015610e515780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b83811015610e8a578082015181840152602081019050610e6f565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b348015610ed657600080fd5b5061105160048036036080811015610eed57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f3457600080fd5b820183602082011115610f4657600080fd5b80359060200191846001830284011164010000000083111715610f6857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610fcb57600080fd5b820183602082011115610fdd57600080fd5b80359060200191846001830284011164010000000083111715610fff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506127cd565b005b34801561105f57600080fd5b506110ac6004803603604081101561107657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a33565b005b3480156110ba57600080fd5b506110f1600480360360408110156110d157600080fd5b810190808035906020019092919080359060200190929190505050612bb5565b005b3480156110ff57600080fd5b50611108612c98565b6040518082815260200191505060405180910390f35b34801561112a57600080fd5b506111776004803603604081101561114157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c9e565b005b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112205780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561121f57600080fd5b5b600083118015611231575060015483105b151561123c57600080fd5b81600360008581526020019081526020016000206001019080519060200190611266929190612e20565b50505050565b60006004826040518082805190602001908083835b6020831015156112a65780518252602082019150602081019050602083039250611281565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b60056000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113885780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561138757600080fd5b5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600a6020528060005260406000206000915090505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b55780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156114b457600080fd5b5b60006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415151561151a57600080fd5b60038081111561152657fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff16600381111561155557fe5b14151561156157600080fd5b600260008681526020019081526020016000208390806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906115af929190612e20565b50507fb21301e37d88eced9501029279e3a32d7b57952d8c1d8d12309791f91fdf3aac60405160405180910390a15050505050565b6008602052816000526040600020818154811015156115ff57fe5b90600052602060002001600091509150505481565b60055481565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c15780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116c057600080fd5b5b6000861180156116d2575060015486105b1515611746576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f57726f6e6720636964000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60038081111561175257fe5b60066000600760008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060040160009054906101000a900460ff1660038111156117d157fe5b141580156118695750600260038111156117e757fe5b60066000600760008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060040160009054906101000a900460ff16600381111561186657fe5b14155b15156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4f6666657220616c72656164792065786973740000000000000000000000000081525060200191505060405180910390fd5b61012060405190810160405280600160066000600760008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600001540181526020018381526020016040805190810160405280600481526020017f6e6f6e650000000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600481526020017f6e6f6e65000000000000000000000000000000000000000000000000000000008152508152602001600260038111156119e257fe5b81526020018781526020018673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815250600660006005548152602001908152602001600020600082015181600001556020820151816001019080519060200190611a4e929190612ea0565b506040820151816002019080519060200190611a6b929190612ea0565b506060820151816003019080519060200190611a88929190612ea0565b5060808201518160040160006101000a81548160ff02191690836003811115611aad57fe5b021790555060a0820151816005015560c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e0820151816007015561010082015181600801559050506005546007600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008781526020019081526020016000206005549080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060055490806001815401808255809150509060018203906000526020600020016000909192909190915055507ff5c743a8c4579135d5857eb877792f188a20cd94da6415dcc87e7844a83c8ea286858588604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a1600560008154809291906001019190505550505050505050565b60036000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d585780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611d5757600080fd5b5b60006007600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115611dba57fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115611de957fe5b141515611df557600080fd5b82600660008381526020019081526020016000206003019080519060200190611e1f929190612e20565b5083600660008381526020019081526020016000206002019080519060200190611e4a929190612e20565b5060036006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115611e7e57fe5b02179055507fc815729dce61d3917466adfc70943a796272e61faaaafd1e5bdf5f2291fa9c0a866040518082815260200191505060405180910390a1505050505050565b6006602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f745780601f10611f4957610100808354040283529160200191611f74565b820191906000526020600020905b815481529060010190602001808311611f5757829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120125780601f10611fe757610100808354040283529160200191612012565b820191906000526020600020905b815481529060010190602001808311611ff557829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120b05780601f10612085576101008083540402835291602001916120b0565b820191906000526020600020905b81548152906001019060200180831161209357829003601f168201915b5050505050908060040160009054906101000a900460ff16908060050154908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060070154908060080154905089565b600060026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121ae5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156121ad57600080fd5b5b60006004886040518082805190602001908083835b6020831015156121e857805182526020820191506020810190506020830392506121c3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050600081141515612296576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f436f6e74656e7420616c72656164792075706c6f61646564000000000000000081525060200191505060405180910390fd5b60016000815480929190600101919050559050806004896040518082805190602001908083835b6020831015156122e257805182526020820191506020810190506020830392506122bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555060a0604051908101604052808981526020018781526020018873ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815250600360008381526020019081526020016000206000820151816000019080519060200190612386929190612ea0565b5060208201518160010190805190602001906123a3929190612ea0565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155608082015181600401559050507f7dd3181130fd68f9c1f766cb31a5238162e91bcd92d7f3d0bb4cd139ede5f896816040518082815260200191505060405180910390a1809250505095945050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125135780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561251257600080fd5b5b600083118015612524575060015483105b151561252f57600080fd5b816003600085815260200190815260200160002060030181905550505050565b60096020528160005260406000208181548110151561256a57fe5b90600052602060002001600091509150505481565b60026020528160005260406000208181548110151561259a57fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561263f5780601f106126145761010080835404028352916020019161263f565b820191906000526020600020905b81548152906001019060200180831161262257829003601f168201915b505050505081565b6003602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126f35780601f106126c8576101008083540402835291602001916126f3565b820191906000526020600020905b8154815290600101906020018083116126d657829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127915780601f1061276657610100808354040283529160200191612791565b820191906000526020600020905b81548152906001019060200180831161277457829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154905085565b60046000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128745780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561287357600080fd5b5b60006007600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600260038111156128d657fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff16600381111561290557fe5b14151561291157600080fd5b846003600088815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600660008381526020019081526020016000206003019080519060200190612990929190612e20565b50836006600083815260200190815260200160002060020190805190602001906129bb929190612e20565b5060036006600083815260200190815260200160002060040160006101000a81548160ff021916908360038111156129ef57fe5b02179055507fc815729dce61d3917466adfc70943a796272e61faaaafd1e5bdf5f2291fa9c0a866040518082815260200191505060405180910390a1505050505050565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ada5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612ad957600080fd5b5b60006007600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115612b3c57fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115612b6b57fe5b141515612b7757600080fd5b60006006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115612baa57fe5b021790555050505050565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c5c5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612c5b57600080fd5b5b600083118015612c6d575060015483105b1515612c7857600080fd5b816003600085815260200190815260200160002060040181905550505050565b60015481565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d455780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612d4457600080fd5b5b60006007600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115612da757fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115612dd657fe5b141515612de257600080fd5b60016006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115612e1557fe5b021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e6157805160ff1916838001178555612e8f565b82800160010185558215612e8f579182015b82811115612e8e578251825591602001919060010190612e73565b5b509050612e9c9190612f20565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612ee157805160ff1916838001178555612f0f565b82800160010185558215612f0f579182015b82811115612f0e578251825591602001919060010190612ef3565b5b509050612f1c9190612f20565b5090565b612f4291905b80821115612f3e576000816000905550600101612f26565b5090565b9056fea165627a7a72305820b3897dc559a397e70ba82856d616c94af8f1ab7bde81446440f51eff4bab7b8a0029

Deployed Bytecode

0x608060405260043610610122576000357c0100000000000000000000000000000000000000000000000000000000900480632a6446ca1461012757806333e17c60146101f95780633a7327a3146102d55780633a8c50b9146103305780633d672b151461039557806341309af414610404578063421e85c5146104f65780635f5d06551461054f57806365d724161461057a578063715c084b146106805780638a72ea6a146108095780638c3ce5d7146109f95780638da5cb5b14610ba0578063910352b014610bf7578063a4aa3f7014610c3c578063a7264f8814610cab578063b5ecf91214610d69578063bbfd5e5314610eca578063c0fc80a214611053578063c18af4ef146110ae578063d2c96d1e146110f3578063db9371c21461111e575b600080fd5b34801561013357600080fd5b506101f76004803603604081101561014a57600080fd5b81019080803590602001909291908035906020019064010000000081111561017157600080fd5b82018360208201111561018357600080fd5b803590602001918460018302840111640100000000831117156101a557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611179565b005b34801561020557600080fd5b506102bf6004803603602081101561021c57600080fd5b810190808035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061126c565b6040518082815260200191505060405180910390f35b3480156102e157600080fd5b5061032e600480360360408110156102f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112e1565b005b34801561033c57600080fd5b5061037f6004803603602081101561035357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d1565b6040518082815260200191505060405180910390f35b3480156103a157600080fd5b506103ee600480360360408110156103b857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e9565b6040518082815260200191505060405180910390f35b34801561041057600080fd5b506104f46004803603606081101561042757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561046e57600080fd5b82018360208201111561048057600080fd5b803590602001918460018302840111640100000000831117156104a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061140e565b005b34801561050257600080fd5b506105396004803603604081101561051957600080fd5b8101908080359060200190929190803590602001909291905050506115e4565b6040518082815260200191505060405180910390f35b34801561055b57600080fd5b50610564611614565b6040518082815260200191505060405180910390f35b34801561058657600080fd5b5061067e600480360360a081101561059d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105f857600080fd5b82018360208201111561060a57600080fd5b8035906020019184600183028401116401000000008311171561062c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061161a565b005b34801561068c57600080fd5b50610807600480360360808110156106a357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106ea57600080fd5b8201836020820111156106fc57600080fd5b8035906020019184600183028401116401000000008311171561071e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460018302840111640100000000831117156107b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611cb1565b005b34801561081557600080fd5b506108426004803603602081101561082c57600080fd5b8101908080359060200190929190505050611ec2565b604051808a815260200180602001806020018060200189600381111561086457fe5b60ff1681526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184810384528c818151815260200191508051906020019080838360005b838110156108e85780820151818401526020810190506108cd565b50505050905090810190601f1680156109155780820380516001836020036101000a031916815260200191505b5084810383528b818151815260200191508051906020019080838360005b8381101561094e578082015181840152602081019050610933565b50505050905090810190601f16801561097b5780820380516001836020036101000a031916815260200191505b5084810382528a818151815260200191508051906020019080838360005b838110156109b4578082015181840152602081019050610999565b50505050905090810190601f1680156109e15780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390f35b348015610a0557600080fd5b50610b8a600480360360a0811015610a1c57600080fd5b8101908080359060200190640100000000811115610a3957600080fd5b820183602082011115610a4b57600080fd5b80359060200191846001830284011164010000000083111715610a6d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610af057600080fd5b820183602082011115610b0257600080fd5b80359060200191846001830284011164010000000083111715610b2457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050612105565b6040518082815260200191505060405180910390f35b348015610bac57600080fd5b50610bb5612447565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c0357600080fd5b50610c3a60048036036040811015610c1a57600080fd5b81019080803590602001909291908035906020019092919050505061246c565b005b348015610c4857600080fd5b50610c9560048036036040811015610c5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061254f565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610cee60048036036040811015610cce57600080fd5b81019080803590602001909291908035906020019092919050505061257f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d2e578082015181840152602081019050610d13565b50505050905090810190601f168015610d5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d7557600080fd5b50610da260048036036020811015610d8c57600080fd5b8101908080359060200190929190505050612647565b6040518080602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610e24578082015181840152602081019050610e09565b50505050905090810190601f168015610e515780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b83811015610e8a578082015181840152602081019050610e6f565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b348015610ed657600080fd5b5061105160048036036080811015610eed57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f3457600080fd5b820183602082011115610f4657600080fd5b80359060200191846001830284011164010000000083111715610f6857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610fcb57600080fd5b820183602082011115610fdd57600080fd5b80359060200191846001830284011164010000000083111715610fff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506127cd565b005b34801561105f57600080fd5b506110ac6004803603604081101561107657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a33565b005b3480156110ba57600080fd5b506110f1600480360360408110156110d157600080fd5b810190808035906020019092919080359060200190929190505050612bb5565b005b3480156110ff57600080fd5b50611108612c98565b6040518082815260200191505060405180910390f35b34801561112a57600080fd5b506111776004803603604081101561114157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c9e565b005b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112205780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561121f57600080fd5b5b600083118015611231575060015483105b151561123c57600080fd5b81600360008581526020019081526020016000206001019080519060200190611266929190612e20565b50505050565b60006004826040518082805190602001908083835b6020831015156112a65780518252602082019150602081019050602083039250611281565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b60056000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113885780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561138757600080fd5b5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600a6020528060005260406000206000915090505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b55780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156114b457600080fd5b5b60006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415151561151a57600080fd5b60038081111561152657fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff16600381111561155557fe5b14151561156157600080fd5b600260008681526020019081526020016000208390806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906115af929190612e20565b50507fb21301e37d88eced9501029279e3a32d7b57952d8c1d8d12309791f91fdf3aac60405160405180910390a15050505050565b6008602052816000526040600020818154811015156115ff57fe5b90600052602060002001600091509150505481565b60055481565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c15780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116c057600080fd5b5b6000861180156116d2575060015486105b1515611746576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f57726f6e6720636964000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60038081111561175257fe5b60066000600760008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060040160009054906101000a900460ff1660038111156117d157fe5b141580156118695750600260038111156117e757fe5b60066000600760008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060040160009054906101000a900460ff16600381111561186657fe5b14155b15156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4f6666657220616c72656164792065786973740000000000000000000000000081525060200191505060405180910390fd5b61012060405190810160405280600160066000600760008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600001540181526020018381526020016040805190810160405280600481526020017f6e6f6e650000000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600481526020017f6e6f6e65000000000000000000000000000000000000000000000000000000008152508152602001600260038111156119e257fe5b81526020018781526020018673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815250600660006005548152602001908152602001600020600082015181600001556020820151816001019080519060200190611a4e929190612ea0565b506040820151816002019080519060200190611a6b929190612ea0565b506060820151816003019080519060200190611a88929190612ea0565b5060808201518160040160006101000a81548160ff02191690836003811115611aad57fe5b021790555060a0820151816005015560c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e0820151816007015561010082015181600801559050506005546007600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008781526020019081526020016000206005549080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060055490806001815401808255809150509060018203906000526020600020016000909192909190915055507ff5c743a8c4579135d5857eb877792f188a20cd94da6415dcc87e7844a83c8ea286858588604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a1600560008154809291906001019190505550505050505050565b60036000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d585780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611d5757600080fd5b5b60006007600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115611dba57fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115611de957fe5b141515611df557600080fd5b82600660008381526020019081526020016000206003019080519060200190611e1f929190612e20565b5083600660008381526020019081526020016000206002019080519060200190611e4a929190612e20565b5060036006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115611e7e57fe5b02179055507fc815729dce61d3917466adfc70943a796272e61faaaafd1e5bdf5f2291fa9c0a866040518082815260200191505060405180910390a1505050505050565b6006602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f745780601f10611f4957610100808354040283529160200191611f74565b820191906000526020600020905b815481529060010190602001808311611f5757829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120125780601f10611fe757610100808354040283529160200191612012565b820191906000526020600020905b815481529060010190602001808311611ff557829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120b05780601f10612085576101008083540402835291602001916120b0565b820191906000526020600020905b81548152906001019060200180831161209357829003601f168201915b5050505050908060040160009054906101000a900460ff16908060050154908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060070154908060080154905089565b600060026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121ae5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156121ad57600080fd5b5b60006004886040518082805190602001908083835b6020831015156121e857805182526020820191506020810190506020830392506121c3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050600081141515612296576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f436f6e74656e7420616c72656164792075706c6f61646564000000000000000081525060200191505060405180910390fd5b60016000815480929190600101919050559050806004896040518082805190602001908083835b6020831015156122e257805182526020820191506020810190506020830392506122bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555060a0604051908101604052808981526020018781526020018873ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815250600360008381526020019081526020016000206000820151816000019080519060200190612386929190612ea0565b5060208201518160010190805190602001906123a3929190612ea0565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155608082015181600401559050507f7dd3181130fd68f9c1f766cb31a5238162e91bcd92d7f3d0bb4cd139ede5f896816040518082815260200191505060405180910390a1809250505095945050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125135780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561251257600080fd5b5b600083118015612524575060015483105b151561252f57600080fd5b816003600085815260200190815260200160002060030181905550505050565b60096020528160005260406000208181548110151561256a57fe5b90600052602060002001600091509150505481565b60026020528160005260406000208181548110151561259a57fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561263f5780601f106126145761010080835404028352916020019161263f565b820191906000526020600020905b81548152906001019060200180831161262257829003601f168201915b505050505081565b6003602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126f35780601f106126c8576101008083540402835291602001916126f3565b820191906000526020600020905b8154815290600101906020018083116126d657829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127915780601f1061276657610100808354040283529160200191612791565b820191906000526020600020905b81548152906001019060200180831161277457829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154905085565b60046000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128745780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561287357600080fd5b5b60006007600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600260038111156128d657fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff16600381111561290557fe5b14151561291157600080fd5b846003600088815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600660008381526020019081526020016000206003019080519060200190612990929190612e20565b50836006600083815260200190815260200160002060020190805190602001906129bb929190612e20565b5060036006600083815260200190815260200160002060040160006101000a81548160ff021916908360038111156129ef57fe5b02179055507fc815729dce61d3917466adfc70943a796272e61faaaafd1e5bdf5f2291fa9c0a866040518082815260200191505060405180910390a1505050505050565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ada5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612ad957600080fd5b5b60006007600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115612b3c57fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115612b6b57fe5b141515612b7757600080fd5b60006006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115612baa57fe5b021790555050505050565b60016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c5c5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612c5b57600080fd5b5b600083118015612c6d575060015483105b1515612c7857600080fd5b816003600085815260200190815260200160002060040181905550505050565b60015481565b60026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d455780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612d4457600080fd5b5b60006007600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026003811115612da757fe5b6006600083815260200190815260200160002060040160009054906101000a900460ff166003811115612dd657fe5b141515612de257600080fd5b60016006600083815260200190815260200160002060040160006101000a81548160ff02191690836003811115612e1557fe5b021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e6157805160ff1916838001178555612e8f565b82800160010185558215612e8f579182015b82811115612e8e578251825591602001919060010190612e73565b5b509050612e9c9190612f20565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612ee157805160ff1916838001178555612f0f565b82800160010185558215612f0f579182015b82811115612f0e578251825591602001919060010190612ef3565b5b509050612f1c9190612f20565b5090565b612f4291905b80821115612f3e576000816000905550600101612f26565b5090565b9056fea165627a7a72305820b3897dc559a397e70ba82856d616c94af8f1ab7bde81446440f51eff4bab7b8a0029

Deployed Bytecode Sourcemap

27:6553:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3338:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3338:191:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3338:191:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3338:191:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3338:191:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3338:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3338:191:0;;;;;;;;;;;;;;;:::i;:::-;;760:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;760:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;760:104:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;760:104:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;760:104:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;760:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;760:104:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1829:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1829:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1375:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1375:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1375:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;955:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;955:74:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;955:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3000:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:330:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3000:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3000:330:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3000:330:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3000:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3000:330:0;;;;;;;;;;;;;;;:::i;:::-;;1038:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1038:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1038:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;872:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;872:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4703:1154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4703:1154:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4703:1154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4703:1154:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4703:1154:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4703:1154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4703:1154:0;;;;;;;;;;;;;;;:::i;:::-;;4140:555;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4140:555:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4140:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4140:555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4140:555:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4140:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4140:555:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4140:555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4140:555:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4140:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4140:555:0;;;;;;;;;;;;;;;:::i;:::-;;909:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;909:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;909:39:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;909:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;909:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;909:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2045:591;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2045:591:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2045:591:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2045:591:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2045:591:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2045:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2045:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2045:591:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2045:591:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2045:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2045:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2644:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2644:169:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2644:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1095:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1095:54:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1095:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;272:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;272:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;272:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;667:43:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;667:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;667:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3537:595;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3537:595:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3537:595:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3537:595:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3537:595:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3537:595:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3537:595:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3537:595:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3537:595:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3537:595:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3537:595:0;;;;;;;;;;;;;;;:::i;:::-;;5865:267;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:267:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5865:267:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2821:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2821:171:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2821:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;77:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6140:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6140:266:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6140:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3338:191;3424:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;3452:1;3446:3;:7;:24;;;;;3463:7;;3457:3;:13;3446:24;3438:33;;;;;;;;3510:11;3482:8;:13;3491:3;3482:13;;;;;;;;;;;:25;;:39;;;;;;;;;;;;:::i;:::-;;3338:191;;;:::o;760:104::-;816:7;843:8;852:3;843:13;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;843:13:0;;;;;;;;;;;;;;;;;;;;;;836:20;;760:104;;;:::o;1829:208::-;1965:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;2018:11;1984:13;:31;1998:16;1984:31;;;;;;;;;;;;;;;:45;;;;1829:208;;;:::o;1375:48::-;;;;;;;;;;;;;;;;;:::o;955:74::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3000:330::-;3093:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;3107:15;3125:19;:24;3145:3;3125:24;;;;;;;;;;;:33;3150:7;3125:33;;;;;;;;;;;;;;;;3107:51;;3188:1;3177:7;:12;;3169:21;;;;;;;;3235:20;3209:46;;;;;;;;:6;:15;3216:7;3209:15;;;;;;;;;;;:22;;;;;;;;;;;;:46;;;;;;;;;3201:55;;;;;;;;3269:7;:12;3277:3;3269:12;;;;;;;;;;;3287:6;3269:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3269:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3310:12;;;;;;;;;;6568:1;3000:330;;;;:::o;1038:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;872:30::-;;;;:::o;4703:1154::-;4911:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;4944:1;4938:3;:7;:24;;;;;4955:7;;4949:3;:13;4938:24;4930:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:20;5074:72;;;;;;;;:6;:41;5081:19;:24;5101:3;5081:24;;;;;;;;;;;:33;5106:7;5081:33;;;;;;;;;;;;;;;;5074:41;;;;;;;;;;;:48;;;;;;;;;;;;:72;;;;;;;;;;:159;;;;;5215:18;5163:70;;;;;;;;:6;:41;5170:19;:24;5190:3;5170:24;;;;;;;;;;;:33;5195:7;5170:33;;;;;;;;;;;;;;;;5163:41;;;;;;;;;;;:48;;;;;;;;;;;;:70;;;;;;;;;;5074:159;5052:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5315:277;;;;;;;;;5382:1;5335:6;:41;5342:19;:24;5362:3;5342:24;;;;;;;;;;;:33;5367:7;5342:33;;;;;;;;;;;;;;;;5335:41;;;;;;;;;;;:44;;;:48;5315:277;;;;5398:17;5315:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5475:18;5315:277;;;;;;;;;;;;5509:3;5315:277;;;;5528:7;5315:277;;;;;;5551:9;5315:277;;;;5576:5;5315:277;;;5293:6;:19;5300:11;;5293:19;;;;;;;;;;;:299;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5641:11;;5605:19;:24;5625:3;5605:24;;;;;;;;;;;:33;5630:7;5605:33;;;;;;;;;;;;;;;:47;;;;5665:13;:18;5679:3;5665:18;;;;;;;;;;;5689:11;;5665:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5665:36:0;;;;;;;;;;;;;;;;;;;;;;5712:17;:26;5730:7;5712:26;;;;;;;;;;;;;;;5744:11;;5712:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5712:44:0;;;;;;;;;;;;;;;;;;;;;;5774:41;5784:3;5789:9;5800:5;5807:7;5774:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5836:11;;:13;;;;;;;;;;;;;4703:1154;;;;;;:::o;4140:555::-;4339:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;4358:15;4376:19;:24;4396:3;4376:24;;;;;;;;;;;:33;4401:7;4376:33;;;;;;;;;;;;;;;;4358:51;;4454:18;4428:44;;;;;;;;:6;:15;4435:7;4428:15;;;;;;;;;;;:22;;;;;;;;;;;;:44;;;;;;;;;4420:53;;;;;;;;4521:18;4484:6;:15;4491:7;4484:15;;;;;;;;;;;:34;;:55;;;;;;;;;;;;:::i;:::-;;4584:15;4550:6;:15;4557:7;4550:15;;;;;;;;;;;:31;;:49;;;;;;;;;;;;:::i;:::-;;4635:20;4610:6;:15;4617:7;4610:15;;;;;;;;;;;:22;;;:45;;;;;;;;;;;;;;;;;;;;;;;;4671:16;4683:3;4671:16;;;;;;;;;;;;;;;;;;6568:1;4140:555;;;;;:::o;909:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2045:591::-;2277:7;2256:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;2346:11;2360:8;2369:3;2360:13;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2360:13:0;;;;;;;;;;;;;;;;;;;;;;2346:27;;2399:1;2392:3;:8;2384:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2448:7;;:9;;;;;;;;;;;;2442:15;;2484:3;2468:8;2477:3;2468:13;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2468:13:0;;;;;;;;;;;;;;;;;;;;;:19;;;;2516:57;;;;;;;;;2524:3;2516:57;;;;2529:11;2516:57;;;;2542:7;2516:57;;;;;;2551:9;2516:57;;;;2562:10;2516:57;;;2500:8;:13;2509:3;2500:13;;;;;;;;;;;:73;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2589:16;2601:3;2589:16;;;;;;;;;;;;;;;;;;2625:3;2618:10;;;2045:591;;;;;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;2644:169::-;2716:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;2744:1;2738:3;:7;:24;;;;;2755:7;;2749:3;:13;2738:24;2730:33;;;;;;;;2800:5;2774:8;:13;2783:3;2774:13;;;;;;;;;;;:23;;:31;;;;2644:169;;;:::o;1095:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;272:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;667:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3537:595::-;3736:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;3755:15;3773:19;:24;3793:3;3773:24;;;;;;;;;;;:33;3798:7;3773:33;;;;;;;;;;;;;;;;3755:51;;3851:18;3825:44;;;;;;;;:6;:15;3832:7;3825:15;;;;;;;;;;;:22;;;;;;;;;;;;:44;;;;;;;;;3817:53;;;;;;;;3903:7;3881:8;:13;3890:3;3881:13;;;;;;;;;;;:19;;;:29;;;;;;;;;;;;;;;;;;3958:18;3921:6;:15;3928:7;3921:15;;;;;;;;;;;:34;;:55;;;;;;;;;;;;:::i;:::-;;4021:15;3987:6;:15;3994:7;3987:15;;;;;;;;;;;:31;;:49;;;;;;;;;;;;:::i;:::-;;4072:20;4047:6;:15;4054:7;4047:15;;;;;;;;;;;:22;;;:45;;;;;;;;;;;;;;;;;;;;;;;;4108:16;4120:3;4108:16;;;;;;;;;;;;;;;;;;6568:1;3537:595;;;;;:::o;5865:267::-;5938:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;5952:15;5970:19;:24;5990:3;5970:24;;;;;;;;;;;:33;5995:7;5970:33;;;;;;;;;;;;;;;;5952:51;;6048:18;6022:44;;;;;;;;:6;:15;6029:7;6022:15;;;;;;;;;;;:22;;;;;;;;;;;;:44;;;;;;;;;6014:53;;;;;;;;6103:21;6078:6;:15;6085:7;6078:15;;;;;;;;;;;:22;;;:46;;;;;;;;;;;;;;;;;;;;;;;;6568:1;5865:267;;;:::o;2821:171::-;2894:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;2922:1;2916:3;:7;:24;;;;;2933:7;;2927:3;:13;2916:24;2908:33;;;;;;;;2979:5;2952:8;:13;2961:3;2952:13;;;;;;;;;;;:24;;:32;;;;2821:171;;;:::o;77:26::-;;;;:::o;6140:266::-;6213:1;6481:5;;;;;;;;;;;6467:19;;:10;:19;;;;6464:94;;;6540:5;6511:13;:25;6525:10;6511:25;;;;;;;;;;;;;;;;:34;;6503:43;;;;;;;;6464:94;6227:15;6245:19;:24;6265:3;6245:24;;;;;;;;;;;:33;6270:7;6245:33;;;;;;;;;;;;;;;;6227:51;;6323:18;6297:44;;;;;;;;:6;:15;6304:7;6297:15;;;;;;;;;;;:22;;;;;;;;;;;;:44;;;;;;;;;6289:53;;;;;;;;6378:20;6353:6;:15;6360:7;6353:15;;;;;;;;;;;:22;;;:45;;;;;;;;;;;;;;;;;;;;;;;;6568:1;6140:266;;;:::o;27:6553::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://b3897dc559a397e70ba82856d616c94af8f1ab7bde81446440f51eff4bab7b8a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.