ETH Price: $3,416.94 (-0.64%)
Gas: 2 Gwei

Token

Dollars Assange (USDAssange)
 

Overview

Max Total Supply

1,901 USDAssange

Holders

512

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
weston.eth
0xb39fF833f6B42D474Bc649E3f435856c8F0CB426
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Dollars Assange is an NFT collection that interacts with the number of days Julian Assange has spent in prison.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
USDAssange

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: USDAssange.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8;

import "./Base64.sol";
import "./Ownable.sol";
import "./IERC1155Receiver.sol";

///                                                                                                     
///                                                                                                     
///                                   --::/:            -::/:--                                         
///                            -:/ossossssyso/---::///+osohyoshoo+//-                                   
///                         :++oooosyhdddhhdddhyoosyyyhhhhdhhshdsddss-                                  
///                       -/ooossssyyoydmdhddhddhhydyhdmmyysddsyhhhsoy+:-                               
///                      /+ooyyyhhhyhysdddddhhhhyddddhyhddyymdysdhsoyoyyoo/---                          
///                    -/soyyyyyysssdydhmmddhyhhyshdhdhhyhddhhysdssyyossoso++o:                         
///                   -+yhsss+++ooyoddhhyhdyhdhyhysshhhdhyyhhhysd+omoosoysooooo+/:-                     
///                   +yhossyysssoyydddhyoshyyhyshysssshmmhhddhyh+yyooooyhhdhhyooss+-                   
///                  -osossysyhysyymmdhydyyssyyhssssooysydmddhyhyosoooooyo/+ooo+sdhss+-                 
///                 -+soshhhhyysossmmhhyyyhssosyyyysooss+oyyyhhyoo++oo+h++oshyhohddhho/                 
///                -/oshdssdhso+ohhdmdyyhhsyyhsshssydhhyshdhddhhys++oso++odyyssosshdyy+/                
///               -/syyysohyoosshdddhssshdhhydhdmhdhmmhdhhsshyyhhhyyss+os+osyhyhyssoysy+:-              
///               /ohysyoho+ydshddhyysyysyyyhhdmmdddmdhyhhmmddyyhyyhoosyyhoosyyhhyo+ohhs+:              
///              -+yysssdosdyoymhsooyyyhhyydNsssdmymmmmdmmdyyhhyhhyhyssyyoo+osossssyosdhs/              
///              -ososyhsydsydmyoosyhhhddhdmNhyyddmmmmdhhdmhohyhshoosssshyooooyysoyss+hmyo-             
///             -/osoyssdmyyydyooooshdmdyddmdmdddddmmNdhsomdydhdhdsssssoysoo++oosssys+ymyso-            
///              :///syhhys+sosoooosshddsyhhhmdmddmdhmdmdhhsshdhyyhhyyysssyo++o+ssyysoomhoo/            
///               :/oyysys+/+oso++shhyhdydhhmmNhddddhddhmmdhhdhhyyysyhhyssysooo++osshsohmo+/            
///              -sossyyo+++o+so++ydyhhdddyyNNNdmmmhhhdhmdddddhdddddhyhsosyys+ssshy+sysymyo/            
///              /oosdhoo++oso+oo+yyyhmdhhydmhdmhdmdhyddhdmhhhdhhdddyyysosyyso+ysosysyyyyho/:           
///              :oodysyso+oooooooyddmmmddhhhdhmhdmmhddhhNmhyhhsoohdhhyoooo+os+ysyssyssooys+:           
///              :osysyooo+os+o+oyshhmhsydmhdddmymmmdmhhmddhmhhhyyhhyyyyo/osss+ssyssoos+ooy++-          
///              +oyysosssooooyhyydhddhssydhhmddhmmmdmddhhhhddyyhhdhhhhds+sssoo/+/++s++soh+s/:          
///              +oooso+sossssddyhhhyoydddhdddyhhddhdhhhhyys+o+++++oo+yyo+o++oo/://+o++ossyoo/-         
///              +yh++oos+syyyyysoo::/++oosoyhyyhyhydhyys++///:////+sysoso+/++++:/+/++oosssh/:          
///              +s+so/+soyy+ooooos++++/////+oysssssshs+/::/oosyhhhhdhhssso+//+o//::+/++y+ssy:          
///              /soo+++sosoydddhdddddhyhhoo//+oyhyhdho/:/oso+o+///+o+osyhs+++/oo++o/+//+s+ooy          
///              -sso+++ysssydddhyoo++++++syysoohmdddhy//+syy+oy+//:/+///oyoo++sys+o+/+/+oo+/ss         
///              +syy+++yhosyyss//+/://+yo+syhyohmhhmdh++oddhhddhhysyyoo+/+ossshh+++o:/++/+oo+o/        
///              -/+o++oyoos+++ooossssosssosshhsymmydhs/oohddyhhysohoooyso++sysyso+/so::/+//++++-       
///               //+ssossssyoyyhysssyssssoyhysshdmddh++oooyhdhydhhsssyhhyyydmddyo+o+s++oys//+/:-       
///               /+yssoosyhhyssysssyhysydhhdossdhdhhdyy/+oshhdhhhhdyssyhhdhhhydhyoooss++oo:-+:-        
///               :soso+ooymhhyyhhhyyhhyddmdyssyddmmdddy+ooyhhdmhyddhmdhddyshhddhooso++++oo:/+:-        
///               -osoyoyshdhysdmmhyhhddddhyoshdddmmdhdhs+oodmmNdmmmddssodddhyhho:/oss+///o:://         
///                syss++osdddydmmdddhyyddhsoydddmmdyhhdy+oodmmmdmddmmhsyddhyys+:://so+oo/+/:o:         
///                hddo+ososhdddddddhhhyyyssoyhhhddyhhsss+y+shhdhhhmdhhyhydhyo+/::/++o+/o//:+:          
///                odhh++++oshdhdhddhmdhososoo+++sosso+//so+ohyhdshdhhyhhhyoso/:/+os++++//:/:           
///                -syh++soooyhhhhmdddsssssso/:/+oo++::://+ohddyhyhdhdyyshssoo+:/++o+/++//--            
///                -hsy++yyosohysoddhdosyhmdyyooooo++os//+ssyhhhddhhyyysshhsoo//+oo+/+++/-              
///                -+yysosoo+shdhdddhhsyhddmhyo+ooyyo+os/oosyysyydhmhhy+yhhhs++/oss//++/:-              
///                 -/o++ooosyyyyyyyoyddyyssoo++++yys+ooosooosssssyddsoohyy+/+oooo+/::  /-              
///                    -/hosoooyyyhhhdossssoos+oosshoo+++o+++++sosssdho+ys+//o+o++/:/-  :               
///                    -:/sooo+soshddo/+++s+/////oo+/::::::://:+/+osyysosy++y++os::::                   
///                      -o++oosshhmh:/+/+oooyyyyysoosysssoso/os//+oshhoos+/s+/+/::///                  
///                       -+++ohosdmd/ohmdysyyysyhddyyysossssshhs/:+o+doosoo//://---:::-                
///                        ://soooyms+sdmdhsssoso+++++o+oooysoddds/++oyo+++oo/+:-                       
///                         -:/ooohs+yddhossyo+oooso+oyoo+osyshmdyo++ssso///o//:-                       
///                          -:s+oh+ohddhhdhdss++ssossoo++ssysssysyy+oooo+//+::::                       
///                           -o/+ssyysymmmddddsohyhddsysymhsosyosos+o+ss+//:-:::                       
///                            -:/+oshhohhyhdddsoshdhhsoyyhys+syo+ooooss+//:::/o/                       
///                             ///ohyooyssyhhyooooysysooossysyosoooo+so/:-::+oss:                      
///                             :+oyoooooyysss+syoos+osssy+oyooso+++o+//:::/+oosss+-                    
///                             -os++o+hsoyoosososysooosyyo+o+oss//::---::/ooooooooy:                   
///                              syo//++/++ssssoooyos/ososo++/++/----::::/+o+sosyssod:                  
///                              ohyyo//:/+os+s+++os+o+o//::::----:::::/+oso+oyshyhh:                   
///                              :hdsss+++/+//::://///:/:::::--:::::::/oosyoyhhhyyh-                    
///                               shssdso++oo+/::-:::::/::::::::::://+ooooyyddysyh-                     
///                              +osyddhoo+oo+++////////:::::/::://oossydddhssooh-                      
///                             /o+oommysyoooo+++oossoso++/+++oo+osyyhdmdhsoss+y:                       
///                            :ss+oshhhdo+ooooooooos+soooossyhhsydmmmhddsyyhhy/                        
///                            ssoooossydhsyhyssyyooyssssssyyyyyddmdhhhmmmss+s+                         
///                           /ssoshosooddmmhddhyhhhhyssoooo+sshdddhyymmmdo+s/                          
///                           yssoohsssyyhhyshdhssooyooooosyssshmmyhdhhys+os:                           
///                          +shdyoysssyyhhhhhdhmmyhdsssshhyhddyddhyyoos+os-                            
///                          syydhoyhsoyyhyyFREE ASSANGEhhssyhhyhyhhyoo+yo                              
///                          +yhhhhdmyssyydddssysyyyyssyyyydmdhsyhhhyyss/                               
///                          -syhysddhhdhdmmdddymmddddddhdossmhddhyssyo-                                

/// @title  Dollars Assange by Pascal Boyart
/// @author jolan.eth
contract USDAssange is Ownable {
    string public symbol = "USDAssange";
    string public name = "Dollars Assange";
    string public description = 'Multiple Edition - Dollars Assange is an NFT collection that interacts with the number of days the journalist Julian Assange has spent in prison (since April 11, 2019).\\n\\nEach new day spent in prison by Julian, a new NFT will be automatically minted and distributed randomly to one of the owners of the collection.\\n\\nThe royalties are donated to the defense of Julian Assange to support him in this ordeal. On the day Julian is released from prison, NFTs will cease to be issued and the total number will be permanently fixed.\\n\\nThis collection is based on the original \\"Dollars Assange\\" artwork released by Pascal Boyart in March 2021. The original piece was made with hundreds of real ripped US One Dollar Bills glued on canvas.\\n\\nDAYS IN JAIL COUNTER: https://usdassange.pboy-art.com/\\n\\nULTRA HD STATIC VERSION: https://bafybeigfk6meztsyvmp4apsq4wntkkagjpofamvwvv3sl75kp5p4xj57xi.ipfs.dweb.link/';
    
    string DollarsAssangeImageCID = "QmNkkCoMnLc891ZEvDKNSad6MTHmVHSnAWeSKzEZdYEZEA";
    string DollarsAssangeAnimationCID = "QmdvgV27m3dwuXnRLTdRLK5Rk84yXHy3mJA3R6Ws5XRaCS";

    uint256 public totalSupply = 0;

    address public ADDRESS_MINTER = 0x1Af70e564847bE46e4bA286c0b0066Da8372F902;
    address public ADDRESS_SIGN = 0x1Af70e564847bE46e4bA286c0b0066Da8372F902;

    address public ADDRESS_CHARITY = 0x27a21F51327F19668799E403d667187cc5A7DFF1;
    address public ADDRESS_PBOY = 0x709e17B3Ec505F80eAb064d0F2A71c743cE225B3;
    address public ADDRESS_JOLAN = 0x51BdFa2Cbb25591AF58b202aCdcdB33325a325c2;

    uint256[2] public SHARE_CHARITY = [90, 30];
    uint256[2] public SHARE_PBOY = [8, 55];
    uint256[2] public SHARE_JOLAN = [2, 15];

    uint256 public SHARE_TYPE = 0;

    bool dropAllowed = true;
    bool mintAllowed = true;

    mapping(uint256 => mapping(address => uint256)) private balances;
    mapping(address => mapping(address => bool)) private operatorApprovals;

    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
    event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    constructor() {}

    // EIP165 functions ***************************************************

    function supportsInterface(bytes4 interfaceId)
    public pure returns (bool) {
        return interfaceId == 0xd9b67a26 || interfaceId == 0x0e89341c;
    }

    // Withdraw functions *************************************************

    function setShareType()
    public onlyOwner {
        SHARE_TYPE = SHARE_TYPE == 0 ? 1 : 0;
    }

    function setCharity(address CHARITY)
    public onlyOwner {
        ADDRESS_CHARITY = CHARITY;
    }

    function setPboy(address PBOY)
    public {
        require(msg.sender == ADDRESS_PBOY, "error msg.sender");
        ADDRESS_PBOY = PBOY;
    }

    function setJolan(address JOLAN)
    public {
        require(msg.sender == ADDRESS_JOLAN, "error msg.sender");
        ADDRESS_JOLAN = JOLAN;
    }

    function withdrawEquity()
    public onlyOwner {
        uint256 balance = address(this).balance;

        address[3] memory shareholders = [
            ADDRESS_CHARITY,
            ADDRESS_PBOY,
            ADDRESS_JOLAN
        ];

        uint256[3] memory _shares = [
            SHARE_CHARITY[SHARE_TYPE] * balance / 100,
            SHARE_PBOY[SHARE_TYPE] * balance / 100,
            SHARE_JOLAN[SHARE_TYPE] * balance / 100
        ];

        uint i = 0;
        while (i < 3) {
            require(payable(shareholders[i]).send(_shares[i]));
            i++;
        }
    }

    // Mint functions *****************************************************

    function freeAssange()
    public onlyOwner {
        mintAllowed = false;
    }

    function setMinter(address MINTER)
    public onlyOwner {
        ADDRESS_MINTER = MINTER;
    }

    function drop(address[] memory addresses, uint256[] memory quantity, uint256 total)
    public onlyOwner {
        require(dropAllowed, "error dropAllowed");
        uint256 i = 0;
        while (i < addresses.length)
            mintUSDAssange(addresses[i], quantity[i++]);
        totalSupply += total;
        dropAllowed = false;
    }

    function mint(address to)
    public {
        require(mintAllowed, "error mintAllowed");
        require(msg.sender == ADDRESS_MINTER, "error msg.sender");
        mintUSDAssange(to, 1);
        totalSupply++;
    }
    
    function mintUSDAssange(address to, uint256 supply)
    private {
        _mint(to, 1, supply, '');
    }

    // Metadata functions *************************************************

    function setCIDs(string memory image, string memory animation)
    public onlyOwner {
        DollarsAssangeImageCID = image;
        DollarsAssangeAnimationCID = animation;
    }

    function setDescription(string memory _description)
    public onlyOwner {
        description = _description;
    }

    // ERC1155 functions **************************************************
    
    function uri(uint256)
    public view virtual returns (string memory) {
        return string(abi.encodePacked(
                'data:application/json;base64,',
                Base64.encode(
                    bytes (string(abi.encodePacked(
                        '{',
                        '"name":"',name,'",',
                        '"description":"',description,'",',
                        '"attributes":[',
                        '{"trait_type":"Character","value":"Julian Assange"},',
                        '{"trait_type":"Effect","value":"FREE ASSANGE"},',
                        '{"trait_type":"USD Portrait","value":"#2 - Free Assange"},',
                        '{"trait_type":"NFT Type","value":"Days in jail counter"},',
                        '{"trait_type":"Status","value":"',mintAllowed ? 'Locked up' : 'Free','"},',
                        '{"trait_type":"Medium","value":"Dollar bills glued on canvas"}',
                        '],',
                        '"image":"ipfs://',DollarsAssangeImageCID,'",',
                        '"animation_url":"ipfs://',DollarsAssangeAnimationCID,'"',
                        '}'
                    )))
                )
            )
        );
    }

    function balanceOf(address owner, uint256 id)
    public view virtual returns (uint256) {
        require(owner != address(0), "error owner");
        return balances[id][owner];
    }

    function balanceOfBatch(address[] memory owners, uint256[] memory ids)
    public view virtual returns (uint256[] memory) {
        require(owners.length == ids.length, "error length");
        uint256[] memory batchBalances = new uint256[](owners.length);

        uint256 i = 0;
        while (i < owners.length) {
            batchBalances[i] = balanceOf(owners[i], ids[i]);
            ++i;
        }

        return batchBalances;
    }

    function setApprovalForAll(address operator, bool approved)
    public virtual {
        _setApprovalForAll(msg.sender, operator, approved);
    }

    function isApprovedForAll(address owner, address operator)
    public view virtual returns (bool) {
        return operatorApprovals[owner][operator];
    }

    function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes memory data)
    public virtual {
        require(from == msg.sender || isApprovedForAll(from, msg.sender), "error approved");
        require(to != address(0), "error to");

        address operator = msg.sender;

        uint256 fromBalance = balances[id][from];
        require(fromBalance >= amount, "error balance");
        unchecked {
            balances[id][from] = fromBalance - amount;
        }
        balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    function safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)
    public virtual {
        require(from == msg.sender || isApprovedForAll(from, msg.sender), "error approved");
        require(ids.length == amounts.length, "error length");
        require(to != address(0), "error to");

        address operator = msg.sender;

        uint256 i = 0;
        while (i < ids.length) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = balances[id][from];
            require(fromBalance >= amount, "error balance");
            unchecked {
                balances[id][from] = fromBalance - amount;
            }
            balances[id][to] += amount;
            ++i;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    function _mint(address to, uint256 id, uint256 amount, bytes memory data)
    private {
        require(to != address(0), "error to");

        address operator = msg.sender;

        balances[id][to] += amount;

        emit TransferSingle(operator, address(0), ADDRESS_SIGN, id, amount);
        emit TransferSingle(operator, ADDRESS_SIGN, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
    }

    function _setApprovalForAll(address owner, address operator, bool approved)
    private {
        require(owner != operator, "error owner");
        operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    function _doSafeTransferAcceptanceCheck(address operator, address from, address to, uint256 id, uint256 amount, bytes memory data)
    private {
        uint256 size;
        assembly {
            size := extcodesize(to)
        }
        if (size > 0) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155Received.selector) {
                    revert("error Receiver");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("error Receiver");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)
    private {
        uint256 size;
        assembly {
            size := extcodesize(to)
        }
        if (size > 0) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
                bytes4 response
            ) {
                if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
                    revert("error Receiver");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("error Receiver");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;
        return array;
    }
}

File 1 of 4: Base64.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.6;

/// @title Base64
/// @notice Provides a function for encoding some bytes in base64
/// @author Brecht Devos <[email protected]>
library Base64 {
    bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /// @notice Encodes some bytes to the base64 representation
    function encode(bytes memory data) internal pure returns (string memory) {
        uint256 len = data.length;
        if (len == 0) return "";

        // multiply by 4/3 rounded up
        uint256 encodedLen = 4 * ((len + 2) / 3);

        // Add some extra buffer at the end
        bytes memory result = new bytes(encodedLen + 32);

        bytes memory table = TABLE;

        assembly {
            let tablePtr := add(table, 1)
            let resultPtr := add(result, 32)

            for {
                let i := 0
            } lt(i, len) {

            } {
                i := add(i, 3)
                let input := and(mload(add(data, i)), 0xffffff)

                let out := mload(add(tablePtr, and(shr(18, input), 0x3F)))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF))
                out := shl(224, out)

                mstore(resultPtr, out)

                resultPtr := add(resultPtr, 4)
            }

            switch mod(len, 3)
            case 1 {
                mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
            }
            case 2 {
                mstore(sub(resultPtr, 1), shl(248, 0x3d))
            }

            mstore(result, encodedLen)
        }

        return string(result);
    }
}

File 2 of 4: IERC1155Receiver.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC1155Receiver {
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

File 3 of 4: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"inputs":[],"name":"ADDRESS_CHARITY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADDRESS_JOLAN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADDRESS_MINTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADDRESS_PBOY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADDRESS_SIGN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"SHARE_CHARITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"SHARE_JOLAN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"SHARE_PBOY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHARE_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"quantity","type":"uint256[]"},{"internalType":"uint256","name":"total","type":"uint256"}],"name":"drop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeAssange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"animation","type":"string"}],"name":"setCIDs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"CHARITY","type":"address"}],"name":"setCharity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_description","type":"string"}],"name":"setDescription","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"JOLAN","type":"address"}],"name":"setJolan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"MINTER","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"PBOY","type":"address"}],"name":"setPboy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setShareType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEquity","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600a81526020017f555344417373616e67650000000000000000000000000000000000000000000081525060019080519060200190620000519291906200049b565b506040518060400160405280600f81526020017f446f6c6c61727320417373616e67650000000000000000000000000000000000815250600290805190602001906200009f9291906200049b565b50604051806103c00160405280610389815260200162004d0d610389913960039080519060200190620000d49291906200049b565b506040518060600160405280602e815260200162005096602e913960049080519060200190620001069291906200049b565b506040518060600160405280602e815260200162004cdf602e913960059080519060200190620001389291906200049b565b506000600655731af70e564847be46e4ba286c0b0066da8372f902600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731af70e564847be46e4ba286c0b0066da8372f902600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327a21f51327f19668799e403d667187cc5a7dff1600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073709e17b3ec505f80eab064d0f2a71c743ce225b3600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507351bdfa2cbb25591af58b202acdcdb33325a325c2600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280605a60ff168152602001601e60ff16815250600c906002620003169291906200052c565b506040518060400160405280600860ff168152602001603760ff16815250600e906002620003469291906200052c565b506040518060400160405280600260ff168152602001600f60ff168152506010906002620003769291906200052c565b5060006012556001601360006101000a81548160ff0219169083151502179055506001601360016101000a81548160ff021916908315150217905550348015620003bf57600080fd5b50620003d133620003d760201b60201c565b620005fa565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620004a990620005c4565b90600052602060002090601f016020900481019282620004cd576000855562000519565b82601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b50905062000528919062000576565b5090565b826002810192821562000563579160200282015b8281111562000562578251829060ff1690559160200191906001019062000540565b5b50905062000572919062000576565b5090565b5b808211156200059157600081600090555060010162000577565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005dd57607f821691505b60208210811415620005f457620005f362000595565b5b50919050565b6146d5806200060a6000396000f3fe608060405234801561001057600080fd5b50600436106102105760003560e01c80637546663f11610125578063c88f1118116100ad578063ed750f451161007c578063ed750f45146105c9578063f242432a146105e7578063f2fde38b14610603578063fb6f71a31461061f578063fca3b5aa1461063b57610210565b8063c88f11181461052d578063cbaaa8731461054b578063ce6769d914610569578063e985e9c51461059957610210565b8063a1470e1a116100f4578063a1470e1a146104af578063a22cb465146104cb578063af92d4ff146104e7578063c022034714610505578063c14b3d1f1461052357610210565b80637546663f1461043b5780638da5cb5b1461045757806390c3f38f1461047557806395d89b411461049157610210565b80634b423d02116101a8578063619b6c7911610177578063619b6c79146103ab5780636a627842146103db5780636c6552f6146103f7578063715018a6146104135780637284e4161461041d57610210565b80634b423d021461034b5780634e1273f41461035557806359b69d5e146103855780635dce15a91461038f57610210565b80630e89341c116101e45780630e89341c146102b157806318160ddd146102e15780632eb2c2d6146102ff578063431064611461031b57610210565b8062fdd58e1461021557806301ffc9a714610245578063060bd1d41461027557806306fdde0314610293575b600080fd5b61022f600480360381019061022a9190612a60565b610657565b60405161023c9190612aaf565b60405180910390f35b61025f600480360381019061025a9190612b22565b610721565b60405161026c9190612b6a565b60405180910390f35b61027d610783565b60405161028a9190612b94565b60405180910390f35b61029b6107a9565b6040516102a89190612c48565b60405180910390f35b6102cb60048036038101906102c69190612c6a565b610837565b6040516102d89190612c48565b60405180910390f35b6102e9610918565b6040516102f69190612aaf565b60405180910390f35b61031960048036038101906103149190612e94565b61091e565b005b61033560048036038101906103309190612c6a565b610c9f565b6040516103429190612aaf565b60405180910390f35b610353610cba565b005b61036f600480360381019061036a9190613026565b610f77565b60405161037c919061315c565b60405180910390f35b61038d611090565b005b6103a960048036038101906103a4919061317e565b611122565b005b6103c560048036038101906103c09190612c6a565b6111f6565b6040516103d29190612aaf565b60405180910390f35b6103f560048036038101906103f0919061317e565b611211565b005b610411600480360381019061040c919061324c565b611316565b005b61041b6113bd565b005b61042561143e565b6040516104329190612c48565b60405180910390f35b610455600480360381019061045091906132c4565b6114cc565b005b61045f611625565b60405161046c9190612b94565b60405180910390f35b61048f600480360381019061048a919061334f565b61164e565b005b6104996116dd565b6040516104a69190612c48565b60405180910390f35b6104c960048036038101906104c4919061317e565b61176b565b005b6104e560048036038101906104e091906133c4565b61183f565b005b6104ef61184e565b6040516104fc9190612b94565b60405180910390f35b61050d611874565b60405161051a9190612b94565b60405180910390f35b61052b61189a565b005b61053561192e565b6040516105429190612aaf565b60405180910390f35b610553611934565b6040516105609190612b94565b60405180910390f35b610583600480360381019061057e9190612c6a565b61195a565b6040516105909190612aaf565b60405180910390f35b6105b360048036038101906105ae9190613404565b611975565b6040516105c09190612b6a565b60405180910390f35b6105d1611a09565b6040516105de9190612b94565b60405180910390f35b61060160048036038101906105fc9190613444565b611a2f565b005b61061d6004803603810190610618919061317e565b611d0e565b005b6106396004803603810190610634919061317e565b611dff565b005b6106556004803603810190610650919061317e565b611eb8565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90613527565b60405180910390fd5b6014600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600063d9b67a2660e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077c5750630e89341c60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600280546107b690613576565b80601f01602080910402602001604051908101604052809291908181526020018280546107e290613576565b801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b505050505081565b60606108f260026003601360019054906101000a900460ff1661088f576040518060400160405280600481526020017f46726565000000000000000000000000000000000000000000000000000000008152506108c6565b6040518060400160405280600981526020017f4c6f636b656420757000000000000000000000000000000000000000000000008152505b600460056040516020016108de959493929190613c42565b604051602081830303815290604052611f71565b6040516020016109029190613daa565b6040516020818303038152906040529050919050565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061095e575061095d8533611975565b5b61099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490613e18565b60405180910390fd5b81518351146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890613e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890613ef0565b60405180910390fd5b600033905060005b8451811015610c0a576000858281518110610a7757610a76613f10565b5b602002602001015190506000858381518110610a9657610a95613f10565b5b6020026020010151905060006014600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90613f8b565b60405180910390fd5b8181036014600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816014600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bef9190613fda565b9250508190555083610c0090614030565b9350505050610a59565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8888604051610c80929190614079565b60405180910390a4610c96828888888888612109565b50505050505050565b600c8160028110610caf57600080fd5b016000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16610cd9611625565b73ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d26906140fc565b60405180910390fd5b600047905060006040518060600160405280600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060006040518060600160405280606485600c60125460028110610e6357610e62613f10565b5b0154610e6f919061411c565b610e7991906141a5565b8152602001606485600e60125460028110610e9757610e96613f10565b5b0154610ea3919061411c565b610ead91906141a5565b8152602001606485601060125460028110610ecb57610eca613f10565b5b0154610ed7919061411c565b610ee191906141a5565b815250905060005b6003811015610f7157828160038110610f0557610f04613f10565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc838360038110610f3657610f35613f10565b5b60200201519081150290604051600060405180830381858888f19350505050610f5e57600080fd5b8080610f6990614030565b915050610ee9565b50505050565b60608151835114610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613e84565b60405180910390fd5b6000835167ffffffffffffffff811115610fda57610fd9612c9c565b5b6040519080825280602002602001820160405280156110085781602001602082028036833780820191505090505b50905060005b84518110156110855761105585828151811061102d5761102c613f10565b5b602002602001015185838151811061104857611047613f10565b5b6020026020010151610657565b82828151811061106857611067613f10565b5b6020026020010181815250508061107e90614030565b905061100e565b819250505092915050565b3373ffffffffffffffffffffffffffffffffffffffff166110af611625565b73ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc906140fc565b60405180910390fd5b6000601360016101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990614222565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010816002811061120657600080fd5b016000915090505481565b601360019054906101000a900460ff16611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061428e565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790614222565b60405180910390fd5b6112fb8160016122cd565b6006600081548092919061130e90614030565b919050555050565b3373ffffffffffffffffffffffffffffffffffffffff16611335611625565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906140fc565b60405180910390fd5b81600490805190602001906113a1929190612915565b5080600590805190602001906113b8929190612915565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166113dc611625565b73ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906140fc565b60405180910390fd5b61143c60006122ed565b565b6003805461144b90613576565b80601f016020809104026020016040519081016040528092919081815260200182805461147790613576565b80156114c45780601f10611499576101008083540402835291602001916114c4565b820191906000526020600020905b8154815290600101906020018083116114a757829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff166114eb611625565b73ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906140fc565b60405180910390fd5b601360009054906101000a900460ff16611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906142fa565b60405180910390fd5b60005b83518110156115eb576115e68482815181106115b2576115b1613f10565b5b60200260200101518483806115c690614030565b9450815181106115d9576115d8613f10565b5b60200260200101516122cd565b611593565b81600660008282546115fd9190613fda565b925050819055506000601360006101000a81548160ff02191690831515021790555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1661166d611625565b73ffffffffffffffffffffffffffffffffffffffff16146116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba906140fc565b60405180910390fd5b80600390805190602001906116d9929190612915565b5050565b600180546116ea90613576565b80601f016020809104026020016040519081016040528092919081815260200182805461171690613576565b80156117635780601f1061173857610100808354040283529160200191611763565b820191906000526020600020905b81548152906001019060200180831161174657829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290614222565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61184a3383836123b1565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166118b9611625565b73ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611906906140fc565b60405180910390fd5b600060125414611920576000611923565b60015b60ff16601281905550565b60125481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e816002811061196a57600080fd5b016000915090505481565b6000601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611a6f5750611a6e8533611975565b5b611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa590613e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613ef0565b60405180910390fd5b600033905060006014600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290613f8b565b60405180910390fd5b8381036014600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836014600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c729190613fda565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611cef92919061431a565b60405180910390a4611d0582888888888861251e565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff16611d2d611625565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a906140fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea906143b5565b60405180910390fd5b611dfc816122ed565b50565b3373ffffffffffffffffffffffffffffffffffffffff16611e1e611625565b73ffffffffffffffffffffffffffffffffffffffff1614611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906140fc565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611ed7611625565b73ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906140fc565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000825190506000811415611f9a5760405180602001604052806000815250915050612104565b60006003600283611fab9190613fda565b611fb591906141a5565b6004611fc1919061411c565b90506000602082611fd29190613fda565b67ffffffffffffffff811115611feb57611fea612c9c565b5b6040519080825280601f01601f19166020018201604052801561201d5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001614660604091399050600181016020830160005b868110156120c15760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b90508084526004840193505050612048565b5060038606600181146120db57600281146120eb576120f6565b613d3d60f01b60028303526120f6565b603d60f81b60018303525b508484525050819450505050505b919050565b6000843b905060008111156122c4578473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff1660e01b815260040161215995949392919061442a565b6020604051808303816000875af192505050801561219557506040513d601f19601f8201168201806040525081019061219291906144a7565b60015b61223b576121a16144e1565b806308c379a014156121fe57506121b6614503565b806121c15750612200565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f59190612c48565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612232906145e5565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b9906145e5565b60405180910390fd5b505b50505050505050565b6122e982600183604051806020016040528060008152506126e2565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241790613527565b60405180910390fd5b80601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516125119190612b6a565b60405180910390a3505050565b6000843b905060008111156126d9578473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff1660e01b815260040161256e959493929190614605565b6020604051808303816000875af19250505080156125aa57506040513d601f19601f820116820180604052508101906125a791906144a7565b60015b612650576125b66144e1565b806308c379a0141561261357506125cb614503565b806125d65750612615565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a9190612c48565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612647906145e5565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce906145e5565b60405180910390fd5b505b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274990613ef0565b60405180910390fd5b6000339050826014600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127b79190613fda565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161285792919061431a565b60405180910390a48473ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516128f792919061431a565b60405180910390a461290e8160008787878761251e565b5050505050565b82805461292190613576565b90600052602060002090601f016020900481019282612943576000855561298a565b82601f1061295c57805160ff191683800117855561298a565b8280016001018555821561298a579182015b8281111561298957825182559160200191906001019061296e565b5b509050612997919061299b565b5090565b5b808211156129b457600081600090555060010161299c565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129f7826129cc565b9050919050565b612a07816129ec565b8114612a1257600080fd5b50565b600081359050612a24816129fe565b92915050565b6000819050919050565b612a3d81612a2a565b8114612a4857600080fd5b50565b600081359050612a5a81612a34565b92915050565b60008060408385031215612a7757612a766129c2565b5b6000612a8585828601612a15565b9250506020612a9685828601612a4b565b9150509250929050565b612aa981612a2a565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612aff81612aca565b8114612b0a57600080fd5b50565b600081359050612b1c81612af6565b92915050565b600060208284031215612b3857612b376129c2565b5b6000612b4684828501612b0d565b91505092915050565b60008115159050919050565b612b6481612b4f565b82525050565b6000602082019050612b7f6000830184612b5b565b92915050565b612b8e816129ec565b82525050565b6000602082019050612ba96000830184612b85565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612be9578082015181840152602081019050612bce565b83811115612bf8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c1a82612baf565b612c248185612bba565b9350612c34818560208601612bcb565b612c3d81612bfe565b840191505092915050565b60006020820190508181036000830152612c628184612c0f565b905092915050565b600060208284031215612c8057612c7f6129c2565b5b6000612c8e84828501612a4b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd482612bfe565b810181811067ffffffffffffffff82111715612cf357612cf2612c9c565b5b80604052505050565b6000612d066129b8565b9050612d128282612ccb565b919050565b600067ffffffffffffffff821115612d3257612d31612c9c565b5b602082029050602081019050919050565b600080fd5b6000612d5b612d5684612d17565b612cfc565b90508083825260208201905060208402830185811115612d7e57612d7d612d43565b5b835b81811015612da75780612d938882612a4b565b845260208401935050602081019050612d80565b5050509392505050565b600082601f830112612dc657612dc5612c97565b5b8135612dd6848260208601612d48565b91505092915050565b600080fd5b600067ffffffffffffffff821115612dff57612dfe612c9c565b5b612e0882612bfe565b9050602081019050919050565b82818337600083830152505050565b6000612e37612e3284612de4565b612cfc565b905082815260208101848484011115612e5357612e52612ddf565b5b612e5e848285612e15565b509392505050565b600082601f830112612e7b57612e7a612c97565b5b8135612e8b848260208601612e24565b91505092915050565b600080600080600060a08688031215612eb057612eaf6129c2565b5b6000612ebe88828901612a15565b9550506020612ecf88828901612a15565b945050604086013567ffffffffffffffff811115612ef057612eef6129c7565b5b612efc88828901612db1565b935050606086013567ffffffffffffffff811115612f1d57612f1c6129c7565b5b612f2988828901612db1565b925050608086013567ffffffffffffffff811115612f4a57612f496129c7565b5b612f5688828901612e66565b9150509295509295909350565b600067ffffffffffffffff821115612f7e57612f7d612c9c565b5b602082029050602081019050919050565b6000612fa2612f9d84612f63565b612cfc565b90508083825260208201905060208402830185811115612fc557612fc4612d43565b5b835b81811015612fee5780612fda8882612a15565b845260208401935050602081019050612fc7565b5050509392505050565b600082601f83011261300d5761300c612c97565b5b813561301d848260208601612f8f565b91505092915050565b6000806040838503121561303d5761303c6129c2565b5b600083013567ffffffffffffffff81111561305b5761305a6129c7565b5b61306785828601612ff8565b925050602083013567ffffffffffffffff811115613088576130876129c7565b5b61309485828601612db1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130d381612a2a565b82525050565b60006130e583836130ca565b60208301905092915050565b6000602082019050919050565b60006131098261309e565b61311381856130a9565b935061311e836130ba565b8060005b8381101561314f57815161313688826130d9565b9750613141836130f1565b925050600181019050613122565b5085935050505092915050565b6000602082019050818103600083015261317681846130fe565b905092915050565b600060208284031215613194576131936129c2565b5b60006131a284828501612a15565b91505092915050565b600067ffffffffffffffff8211156131c6576131c5612c9c565b5b6131cf82612bfe565b9050602081019050919050565b60006131ef6131ea846131ab565b612cfc565b90508281526020810184848401111561320b5761320a612ddf565b5b613216848285612e15565b509392505050565b600082601f83011261323357613232612c97565b5b81356132438482602086016131dc565b91505092915050565b60008060408385031215613263576132626129c2565b5b600083013567ffffffffffffffff811115613281576132806129c7565b5b61328d8582860161321e565b925050602083013567ffffffffffffffff8111156132ae576132ad6129c7565b5b6132ba8582860161321e565b9150509250929050565b6000806000606084860312156132dd576132dc6129c2565b5b600084013567ffffffffffffffff8111156132fb576132fa6129c7565b5b61330786828701612ff8565b935050602084013567ffffffffffffffff811115613328576133276129c7565b5b61333486828701612db1565b925050604061334586828701612a4b565b9150509250925092565b600060208284031215613365576133646129c2565b5b600082013567ffffffffffffffff811115613383576133826129c7565b5b61338f8482850161321e565b91505092915050565b6133a181612b4f565b81146133ac57600080fd5b50565b6000813590506133be81613398565b92915050565b600080604083850312156133db576133da6129c2565b5b60006133e985828601612a15565b92505060206133fa858286016133af565b9150509250929050565b6000806040838503121561341b5761341a6129c2565b5b600061342985828601612a15565b925050602061343a85828601612a15565b9150509250929050565b600080600080600060a086880312156134605761345f6129c2565b5b600061346e88828901612a15565b955050602061347f88828901612a15565b945050604061349088828901612a4b565b93505060606134a188828901612a4b565b925050608086013567ffffffffffffffff8111156134c2576134c16129c7565b5b6134ce88828901612e66565b9150509295509295909350565b7f6572726f72206f776e6572000000000000000000000000000000000000000000600082015250565b6000613511600b83612bba565b915061351c826134db565b602082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358e57607f821691505b602082108114156135a2576135a1613547565b5b50919050565b600081905092915050565b7f7b00000000000000000000000000000000000000000000000000000000000000600082015250565b60006135e96001836135a8565b91506135f4826135b3565b600182019050919050565b7f226e616d65223a22000000000000000000000000000000000000000000000000600082015250565b60006136356008836135a8565b9150613640826135ff565b600882019050919050565b60008190508160005260206000209050919050565b6000815461366d81613576565b61367781866135a8565b9450600182166000811461369257600181146136a3576136d6565b60ff198316865281860193506136d6565b6136ac8561364b565b60005b838110156136ce578154818901526001820191506020810190506136af565b838801955050505b50505092915050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b60006137156002836135a8565b9150613720826136df565b600282019050919050565b7f226465736372697074696f6e223a220000000000000000000000000000000000600082015250565b6000613761600f836135a8565b915061376c8261372b565b600f82019050919050565b7f2261747472696275746573223a5b000000000000000000000000000000000000600082015250565b60006137ad600e836135a8565b91506137b882613777565b600e82019050919050565b7f7b2274726169745f74797065223a22436861726163746572222c2276616c756560008201527f223a224a756c69616e20417373616e6765227d2c000000000000000000000000602082015250565b600061381f6034836135a8565b915061382a826137c3565b603482019050919050565b7f7b2274726169745f74797065223a22456666656374222c2276616c7565223a2260008201527f4652454520415353414e4745227d2c0000000000000000000000000000000000602082015250565b6000613891602f836135a8565b915061389c82613835565b602f82019050919050565b7f7b2274726169745f74797065223a2255534420506f727472616974222c22766160008201527f6c7565223a222332202d204672656520417373616e6765227d2c000000000000602082015250565b6000613903603a836135a8565b915061390e826138a7565b603a82019050919050565b7f7b2274726169745f74797065223a224e46542054797065222c2276616c75652260008201527f3a224461797320696e206a61696c20636f756e746572227d2c00000000000000602082015250565b60006139756039836135a8565b915061398082613919565b603982019050919050565b7f7b2274726169745f74797065223a22537461747573222c2276616c7565223a22600082015250565b60006139c16020836135a8565b91506139cc8261398b565b602082019050919050565b60006139e282612baf565b6139ec81856135a8565b93506139fc818560208601612bcb565b80840191505092915050565b7f227d2c0000000000000000000000000000000000000000000000000000000000600082015250565b6000613a3e6003836135a8565b9150613a4982613a08565b600382019050919050565b7f7b2274726169745f74797065223a224d656469756d222c2276616c7565223a2260008201527f446f6c6c61722062696c6c7320676c756564206f6e2063616e766173227d0000602082015250565b6000613ab0603e836135a8565b9150613abb82613a54565b603e82019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613afc6002836135a8565b9150613b0782613ac6565b600282019050919050565b7f22696d616765223a22697066733a2f2f00000000000000000000000000000000600082015250565b6000613b486010836135a8565b9150613b5382613b12565b601082019050919050565b7f22616e696d6174696f6e5f75726c223a22697066733a2f2f0000000000000000600082015250565b6000613b946018836135a8565b9150613b9f82613b5e565b601882019050919050565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b6000613be06001836135a8565b9150613beb82613baa565b600182019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c2c6001836135a8565b9150613c3782613bf6565b600182019050919050565b6000613c4d826135dc565b9150613c5882613628565b9150613c648288613660565b9150613c6f82613708565b9150613c7a82613754565b9150613c868287613660565b9150613c9182613708565b9150613c9c826137a0565b9150613ca782613812565b9150613cb282613884565b9150613cbd826138f6565b9150613cc882613968565b9150613cd3826139b4565b9150613cdf82866139d7565b9150613cea82613a31565b9150613cf582613aa3565b9150613d0082613aef565b9150613d0b82613b3b565b9150613d178285613660565b9150613d2282613708565b9150613d2d82613b87565b9150613d398284613660565b9150613d4482613bd3565b9150613d4f82613c1f565b91508190509695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000613d94601d836135a8565b9150613d9f82613d5e565b601d82019050919050565b6000613db582613d87565b9150613dc182846139d7565b915081905092915050565b7f6572726f7220617070726f766564000000000000000000000000000000000000600082015250565b6000613e02600e83612bba565b9150613e0d82613dcc565b602082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f6572726f72206c656e6774680000000000000000000000000000000000000000600082015250565b6000613e6e600c83612bba565b9150613e7982613e38565b602082019050919050565b60006020820190508181036000830152613e9d81613e61565b9050919050565b7f6572726f7220746f000000000000000000000000000000000000000000000000600082015250565b6000613eda600883612bba565b9150613ee582613ea4565b602082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f6572726f722062616c616e636500000000000000000000000000000000000000600082015250565b6000613f75600d83612bba565b9150613f8082613f3f565b602082019050919050565b60006020820190508181036000830152613fa481613f68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fe582612a2a565b9150613ff083612a2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561402557614024613fab565b5b828201905092915050565b600061403b82612a2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561406e5761406d613fab565b5b600182019050919050565b6000604082019050818103600083015261409381856130fe565b905081810360208301526140a781846130fe565b90509392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140e6602083612bba565b91506140f1826140b0565b602082019050919050565b60006020820190508181036000830152614115816140d9565b9050919050565b600061412782612a2a565b915061413283612a2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561416b5761416a613fab565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141b082612a2a565b91506141bb83612a2a565b9250826141cb576141ca614176565b5b828204905092915050565b7f6572726f72206d73672e73656e64657200000000000000000000000000000000600082015250565b600061420c601083612bba565b9150614217826141d6565b602082019050919050565b6000602082019050818103600083015261423b816141ff565b9050919050565b7f6572726f72206d696e74416c6c6f776564000000000000000000000000000000600082015250565b6000614278601183612bba565b915061428382614242565b602082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f6572726f722064726f70416c6c6f776564000000000000000000000000000000600082015250565b60006142e4601183612bba565b91506142ef826142ae565b602082019050919050565b60006020820190508181036000830152614313816142d7565b9050919050565b600060408201905061432f6000830185612aa0565b61433c6020830184612aa0565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061439f602683612bba565b91506143aa82614343565b604082019050919050565b600060208201905081810360008301526143ce81614392565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006143fc826143d5565b61440681856143e0565b9350614416818560208601612bcb565b61441f81612bfe565b840191505092915050565b600060a08201905061443f6000830188612b85565b61444c6020830187612b85565b818103604083015261445e81866130fe565b9050818103606083015261447281856130fe565b9050818103608083015261448681846143f1565b90509695505050505050565b6000815190506144a181612af6565b92915050565b6000602082840312156144bd576144bc6129c2565b5b60006144cb84828501614492565b91505092915050565b60008160e01c9050919050565b600060033d11156145005760046000803e6144fd6000516144d4565b90505b90565b600060443d101561451357614596565b61451b6129b8565b60043d036004823e80513d602482011167ffffffffffffffff82111715614543575050614596565b808201805167ffffffffffffffff8111156145615750505050614596565b80602083010160043d03850181111561457e575050505050614596565b61458d82602001850186612ccb565b82955050505050505b90565b7f6572726f72205265636569766572000000000000000000000000000000000000600082015250565b60006145cf600e83612bba565b91506145da82614599565b602082019050919050565b600060208201905081810360008301526145fe816145c2565b9050919050565b600060a08201905061461a6000830188612b85565b6146276020830187612b85565b6146346040830186612aa0565b6146416060830185612aa0565b818103608083015261465381846143f1565b9050969550505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220850af9605a5668c87edaf46edc5467a85c7bf65b774ca371a21750bc31addd0b64736f6c634300080b0033516d6476675632376d33647775586e524c5464524c4b35526b383479584879336d4a4133523657733558526143534d756c7469706c652045646974696f6e202d20446f6c6c61727320417373616e676520697320616e204e465420636f6c6c656374696f6e207468617420696e74657261637473207769746820746865206e756d626572206f66206461797320746865206a6f75726e616c697374204a756c69616e20417373616e676520686173207370656e7420696e20707269736f6e202873696e636520417072696c2031312c2032303139292e5c6e5c6e45616368206e657720646179207370656e7420696e20707269736f6e206279204a756c69616e2c2061206e6577204e46542077696c6c206265206175746f6d61746963616c6c79206d696e74656420616e642064697374726962757465642072616e646f6d6c7920746f206f6e65206f6620746865206f776e657273206f662074686520636f6c6c656374696f6e2e5c6e5c6e54686520726f79616c746965732061726520646f6e6174656420746f2074686520646566656e7365206f66204a756c69616e20417373616e676520746f20737570706f72742068696d20696e2074686973206f726465616c2e204f6e2074686520646179204a756c69616e2069732072656c65617365642066726f6d20707269736f6e2c204e4654732077696c6c20636561736520746f2062652069737375656420616e642074686520746f74616c206e756d6265722077696c6c206265207065726d616e656e746c792066697865642e5c6e5c6e5468697320636f6c6c656374696f6e206973206261736564206f6e20746865206f726967696e616c205c22446f6c6c61727320417373616e67655c2220617274776f726b2072656c65617365642062792050617363616c20426f7961727420696e204d6172636820323032312e20546865206f726967696e616c20706965636520776173206d61646520776974682068756e6472656473206f66207265616c20726970706564205553204f6e6520446f6c6c61722042696c6c7320676c756564206f6e2063616e7661732e5c6e5c6e4441595320494e204a41494c20434f554e5445523a2068747470733a2f2f757364617373616e67652e70626f792d6172742e636f6d2f5c6e5c6e554c545241204844205354415449432056455253494f4e3a2068747470733a2f2f6261667962656967666b366d657a747379766d70346170737134776e746b6b61676a706f66616d7677767633736c37356b70357034786a353778692e697066732e647765622e6c696e6b2f516d4e6b6b436f4d6e4c633839315a4576444b4e536164364d54486d5648536e415765534b7a455a6459455a4541

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102105760003560e01c80637546663f11610125578063c88f1118116100ad578063ed750f451161007c578063ed750f45146105c9578063f242432a146105e7578063f2fde38b14610603578063fb6f71a31461061f578063fca3b5aa1461063b57610210565b8063c88f11181461052d578063cbaaa8731461054b578063ce6769d914610569578063e985e9c51461059957610210565b8063a1470e1a116100f4578063a1470e1a146104af578063a22cb465146104cb578063af92d4ff146104e7578063c022034714610505578063c14b3d1f1461052357610210565b80637546663f1461043b5780638da5cb5b1461045757806390c3f38f1461047557806395d89b411461049157610210565b80634b423d02116101a8578063619b6c7911610177578063619b6c79146103ab5780636a627842146103db5780636c6552f6146103f7578063715018a6146104135780637284e4161461041d57610210565b80634b423d021461034b5780634e1273f41461035557806359b69d5e146103855780635dce15a91461038f57610210565b80630e89341c116101e45780630e89341c146102b157806318160ddd146102e15780632eb2c2d6146102ff578063431064611461031b57610210565b8062fdd58e1461021557806301ffc9a714610245578063060bd1d41461027557806306fdde0314610293575b600080fd5b61022f600480360381019061022a9190612a60565b610657565b60405161023c9190612aaf565b60405180910390f35b61025f600480360381019061025a9190612b22565b610721565b60405161026c9190612b6a565b60405180910390f35b61027d610783565b60405161028a9190612b94565b60405180910390f35b61029b6107a9565b6040516102a89190612c48565b60405180910390f35b6102cb60048036038101906102c69190612c6a565b610837565b6040516102d89190612c48565b60405180910390f35b6102e9610918565b6040516102f69190612aaf565b60405180910390f35b61031960048036038101906103149190612e94565b61091e565b005b61033560048036038101906103309190612c6a565b610c9f565b6040516103429190612aaf565b60405180910390f35b610353610cba565b005b61036f600480360381019061036a9190613026565b610f77565b60405161037c919061315c565b60405180910390f35b61038d611090565b005b6103a960048036038101906103a4919061317e565b611122565b005b6103c560048036038101906103c09190612c6a565b6111f6565b6040516103d29190612aaf565b60405180910390f35b6103f560048036038101906103f0919061317e565b611211565b005b610411600480360381019061040c919061324c565b611316565b005b61041b6113bd565b005b61042561143e565b6040516104329190612c48565b60405180910390f35b610455600480360381019061045091906132c4565b6114cc565b005b61045f611625565b60405161046c9190612b94565b60405180910390f35b61048f600480360381019061048a919061334f565b61164e565b005b6104996116dd565b6040516104a69190612c48565b60405180910390f35b6104c960048036038101906104c4919061317e565b61176b565b005b6104e560048036038101906104e091906133c4565b61183f565b005b6104ef61184e565b6040516104fc9190612b94565b60405180910390f35b61050d611874565b60405161051a9190612b94565b60405180910390f35b61052b61189a565b005b61053561192e565b6040516105429190612aaf565b60405180910390f35b610553611934565b6040516105609190612b94565b60405180910390f35b610583600480360381019061057e9190612c6a565b61195a565b6040516105909190612aaf565b60405180910390f35b6105b360048036038101906105ae9190613404565b611975565b6040516105c09190612b6a565b60405180910390f35b6105d1611a09565b6040516105de9190612b94565b60405180910390f35b61060160048036038101906105fc9190613444565b611a2f565b005b61061d6004803603810190610618919061317e565b611d0e565b005b6106396004803603810190610634919061317e565b611dff565b005b6106556004803603810190610650919061317e565b611eb8565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90613527565b60405180910390fd5b6014600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600063d9b67a2660e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077c5750630e89341c60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600280546107b690613576565b80601f01602080910402602001604051908101604052809291908181526020018280546107e290613576565b801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b505050505081565b60606108f260026003601360019054906101000a900460ff1661088f576040518060400160405280600481526020017f46726565000000000000000000000000000000000000000000000000000000008152506108c6565b6040518060400160405280600981526020017f4c6f636b656420757000000000000000000000000000000000000000000000008152505b600460056040516020016108de959493929190613c42565b604051602081830303815290604052611f71565b6040516020016109029190613daa565b6040516020818303038152906040529050919050565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061095e575061095d8533611975565b5b61099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490613e18565b60405180910390fd5b81518351146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890613e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890613ef0565b60405180910390fd5b600033905060005b8451811015610c0a576000858281518110610a7757610a76613f10565b5b602002602001015190506000858381518110610a9657610a95613f10565b5b6020026020010151905060006014600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90613f8b565b60405180910390fd5b8181036014600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816014600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bef9190613fda565b9250508190555083610c0090614030565b9350505050610a59565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8888604051610c80929190614079565b60405180910390a4610c96828888888888612109565b50505050505050565b600c8160028110610caf57600080fd5b016000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16610cd9611625565b73ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d26906140fc565b60405180910390fd5b600047905060006040518060600160405280600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060006040518060600160405280606485600c60125460028110610e6357610e62613f10565b5b0154610e6f919061411c565b610e7991906141a5565b8152602001606485600e60125460028110610e9757610e96613f10565b5b0154610ea3919061411c565b610ead91906141a5565b8152602001606485601060125460028110610ecb57610eca613f10565b5b0154610ed7919061411c565b610ee191906141a5565b815250905060005b6003811015610f7157828160038110610f0557610f04613f10565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc838360038110610f3657610f35613f10565b5b60200201519081150290604051600060405180830381858888f19350505050610f5e57600080fd5b8080610f6990614030565b915050610ee9565b50505050565b60608151835114610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613e84565b60405180910390fd5b6000835167ffffffffffffffff811115610fda57610fd9612c9c565b5b6040519080825280602002602001820160405280156110085781602001602082028036833780820191505090505b50905060005b84518110156110855761105585828151811061102d5761102c613f10565b5b602002602001015185838151811061104857611047613f10565b5b6020026020010151610657565b82828151811061106857611067613f10565b5b6020026020010181815250508061107e90614030565b905061100e565b819250505092915050565b3373ffffffffffffffffffffffffffffffffffffffff166110af611625565b73ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc906140fc565b60405180910390fd5b6000601360016101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990614222565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010816002811061120657600080fd5b016000915090505481565b601360019054906101000a900460ff16611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061428e565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790614222565b60405180910390fd5b6112fb8160016122cd565b6006600081548092919061130e90614030565b919050555050565b3373ffffffffffffffffffffffffffffffffffffffff16611335611625565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906140fc565b60405180910390fd5b81600490805190602001906113a1929190612915565b5080600590805190602001906113b8929190612915565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166113dc611625565b73ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906140fc565b60405180910390fd5b61143c60006122ed565b565b6003805461144b90613576565b80601f016020809104026020016040519081016040528092919081815260200182805461147790613576565b80156114c45780601f10611499576101008083540402835291602001916114c4565b820191906000526020600020905b8154815290600101906020018083116114a757829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff166114eb611625565b73ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906140fc565b60405180910390fd5b601360009054906101000a900460ff16611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906142fa565b60405180910390fd5b60005b83518110156115eb576115e68482815181106115b2576115b1613f10565b5b60200260200101518483806115c690614030565b9450815181106115d9576115d8613f10565b5b60200260200101516122cd565b611593565b81600660008282546115fd9190613fda565b925050819055506000601360006101000a81548160ff02191690831515021790555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1661166d611625565b73ffffffffffffffffffffffffffffffffffffffff16146116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba906140fc565b60405180910390fd5b80600390805190602001906116d9929190612915565b5050565b600180546116ea90613576565b80601f016020809104026020016040519081016040528092919081815260200182805461171690613576565b80156117635780601f1061173857610100808354040283529160200191611763565b820191906000526020600020905b81548152906001019060200180831161174657829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290614222565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61184a3383836123b1565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166118b9611625565b73ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611906906140fc565b60405180910390fd5b600060125414611920576000611923565b60015b60ff16601281905550565b60125481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e816002811061196a57600080fd5b016000915090505481565b6000601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611a6f5750611a6e8533611975565b5b611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa590613e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613ef0565b60405180910390fd5b600033905060006014600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290613f8b565b60405180910390fd5b8381036014600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836014600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c729190613fda565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611cef92919061431a565b60405180910390a4611d0582888888888861251e565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff16611d2d611625565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a906140fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea906143b5565b60405180910390fd5b611dfc816122ed565b50565b3373ffffffffffffffffffffffffffffffffffffffff16611e1e611625565b73ffffffffffffffffffffffffffffffffffffffff1614611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906140fc565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611ed7611625565b73ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906140fc565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000825190506000811415611f9a5760405180602001604052806000815250915050612104565b60006003600283611fab9190613fda565b611fb591906141a5565b6004611fc1919061411c565b90506000602082611fd29190613fda565b67ffffffffffffffff811115611feb57611fea612c9c565b5b6040519080825280601f01601f19166020018201604052801561201d5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001614660604091399050600181016020830160005b868110156120c15760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b90508084526004840193505050612048565b5060038606600181146120db57600281146120eb576120f6565b613d3d60f01b60028303526120f6565b603d60f81b60018303525b508484525050819450505050505b919050565b6000843b905060008111156122c4578473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff1660e01b815260040161215995949392919061442a565b6020604051808303816000875af192505050801561219557506040513d601f19601f8201168201806040525081019061219291906144a7565b60015b61223b576121a16144e1565b806308c379a014156121fe57506121b6614503565b806121c15750612200565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f59190612c48565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612232906145e5565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b9906145e5565b60405180910390fd5b505b50505050505050565b6122e982600183604051806020016040528060008152506126e2565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241790613527565b60405180910390fd5b80601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516125119190612b6a565b60405180910390a3505050565b6000843b905060008111156126d9578473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff1660e01b815260040161256e959493929190614605565b6020604051808303816000875af19250505080156125aa57506040513d601f19601f820116820180604052508101906125a791906144a7565b60015b612650576125b66144e1565b806308c379a0141561261357506125cb614503565b806125d65750612615565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a9190612c48565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612647906145e5565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce906145e5565b60405180910390fd5b505b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274990613ef0565b60405180910390fd5b6000339050826014600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127b79190613fda565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161285792919061431a565b60405180910390a48473ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516128f792919061431a565b60405180910390a461290e8160008787878761251e565b5050505050565b82805461292190613576565b90600052602060002090601f016020900481019282612943576000855561298a565b82601f1061295c57805160ff191683800117855561298a565b8280016001018555821561298a579182015b8281111561298957825182559160200191906001019061296e565b5b509050612997919061299b565b5090565b5b808211156129b457600081600090555060010161299c565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129f7826129cc565b9050919050565b612a07816129ec565b8114612a1257600080fd5b50565b600081359050612a24816129fe565b92915050565b6000819050919050565b612a3d81612a2a565b8114612a4857600080fd5b50565b600081359050612a5a81612a34565b92915050565b60008060408385031215612a7757612a766129c2565b5b6000612a8585828601612a15565b9250506020612a9685828601612a4b565b9150509250929050565b612aa981612a2a565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612aff81612aca565b8114612b0a57600080fd5b50565b600081359050612b1c81612af6565b92915050565b600060208284031215612b3857612b376129c2565b5b6000612b4684828501612b0d565b91505092915050565b60008115159050919050565b612b6481612b4f565b82525050565b6000602082019050612b7f6000830184612b5b565b92915050565b612b8e816129ec565b82525050565b6000602082019050612ba96000830184612b85565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612be9578082015181840152602081019050612bce565b83811115612bf8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c1a82612baf565b612c248185612bba565b9350612c34818560208601612bcb565b612c3d81612bfe565b840191505092915050565b60006020820190508181036000830152612c628184612c0f565b905092915050565b600060208284031215612c8057612c7f6129c2565b5b6000612c8e84828501612a4b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd482612bfe565b810181811067ffffffffffffffff82111715612cf357612cf2612c9c565b5b80604052505050565b6000612d066129b8565b9050612d128282612ccb565b919050565b600067ffffffffffffffff821115612d3257612d31612c9c565b5b602082029050602081019050919050565b600080fd5b6000612d5b612d5684612d17565b612cfc565b90508083825260208201905060208402830185811115612d7e57612d7d612d43565b5b835b81811015612da75780612d938882612a4b565b845260208401935050602081019050612d80565b5050509392505050565b600082601f830112612dc657612dc5612c97565b5b8135612dd6848260208601612d48565b91505092915050565b600080fd5b600067ffffffffffffffff821115612dff57612dfe612c9c565b5b612e0882612bfe565b9050602081019050919050565b82818337600083830152505050565b6000612e37612e3284612de4565b612cfc565b905082815260208101848484011115612e5357612e52612ddf565b5b612e5e848285612e15565b509392505050565b600082601f830112612e7b57612e7a612c97565b5b8135612e8b848260208601612e24565b91505092915050565b600080600080600060a08688031215612eb057612eaf6129c2565b5b6000612ebe88828901612a15565b9550506020612ecf88828901612a15565b945050604086013567ffffffffffffffff811115612ef057612eef6129c7565b5b612efc88828901612db1565b935050606086013567ffffffffffffffff811115612f1d57612f1c6129c7565b5b612f2988828901612db1565b925050608086013567ffffffffffffffff811115612f4a57612f496129c7565b5b612f5688828901612e66565b9150509295509295909350565b600067ffffffffffffffff821115612f7e57612f7d612c9c565b5b602082029050602081019050919050565b6000612fa2612f9d84612f63565b612cfc565b90508083825260208201905060208402830185811115612fc557612fc4612d43565b5b835b81811015612fee5780612fda8882612a15565b845260208401935050602081019050612fc7565b5050509392505050565b600082601f83011261300d5761300c612c97565b5b813561301d848260208601612f8f565b91505092915050565b6000806040838503121561303d5761303c6129c2565b5b600083013567ffffffffffffffff81111561305b5761305a6129c7565b5b61306785828601612ff8565b925050602083013567ffffffffffffffff811115613088576130876129c7565b5b61309485828601612db1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130d381612a2a565b82525050565b60006130e583836130ca565b60208301905092915050565b6000602082019050919050565b60006131098261309e565b61311381856130a9565b935061311e836130ba565b8060005b8381101561314f57815161313688826130d9565b9750613141836130f1565b925050600181019050613122565b5085935050505092915050565b6000602082019050818103600083015261317681846130fe565b905092915050565b600060208284031215613194576131936129c2565b5b60006131a284828501612a15565b91505092915050565b600067ffffffffffffffff8211156131c6576131c5612c9c565b5b6131cf82612bfe565b9050602081019050919050565b60006131ef6131ea846131ab565b612cfc565b90508281526020810184848401111561320b5761320a612ddf565b5b613216848285612e15565b509392505050565b600082601f83011261323357613232612c97565b5b81356132438482602086016131dc565b91505092915050565b60008060408385031215613263576132626129c2565b5b600083013567ffffffffffffffff811115613281576132806129c7565b5b61328d8582860161321e565b925050602083013567ffffffffffffffff8111156132ae576132ad6129c7565b5b6132ba8582860161321e565b9150509250929050565b6000806000606084860312156132dd576132dc6129c2565b5b600084013567ffffffffffffffff8111156132fb576132fa6129c7565b5b61330786828701612ff8565b935050602084013567ffffffffffffffff811115613328576133276129c7565b5b61333486828701612db1565b925050604061334586828701612a4b565b9150509250925092565b600060208284031215613365576133646129c2565b5b600082013567ffffffffffffffff811115613383576133826129c7565b5b61338f8482850161321e565b91505092915050565b6133a181612b4f565b81146133ac57600080fd5b50565b6000813590506133be81613398565b92915050565b600080604083850312156133db576133da6129c2565b5b60006133e985828601612a15565b92505060206133fa858286016133af565b9150509250929050565b6000806040838503121561341b5761341a6129c2565b5b600061342985828601612a15565b925050602061343a85828601612a15565b9150509250929050565b600080600080600060a086880312156134605761345f6129c2565b5b600061346e88828901612a15565b955050602061347f88828901612a15565b945050604061349088828901612a4b565b93505060606134a188828901612a4b565b925050608086013567ffffffffffffffff8111156134c2576134c16129c7565b5b6134ce88828901612e66565b9150509295509295909350565b7f6572726f72206f776e6572000000000000000000000000000000000000000000600082015250565b6000613511600b83612bba565b915061351c826134db565b602082019050919050565b6000602082019050818103600083015261354081613504565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358e57607f821691505b602082108114156135a2576135a1613547565b5b50919050565b600081905092915050565b7f7b00000000000000000000000000000000000000000000000000000000000000600082015250565b60006135e96001836135a8565b91506135f4826135b3565b600182019050919050565b7f226e616d65223a22000000000000000000000000000000000000000000000000600082015250565b60006136356008836135a8565b9150613640826135ff565b600882019050919050565b60008190508160005260206000209050919050565b6000815461366d81613576565b61367781866135a8565b9450600182166000811461369257600181146136a3576136d6565b60ff198316865281860193506136d6565b6136ac8561364b565b60005b838110156136ce578154818901526001820191506020810190506136af565b838801955050505b50505092915050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b60006137156002836135a8565b9150613720826136df565b600282019050919050565b7f226465736372697074696f6e223a220000000000000000000000000000000000600082015250565b6000613761600f836135a8565b915061376c8261372b565b600f82019050919050565b7f2261747472696275746573223a5b000000000000000000000000000000000000600082015250565b60006137ad600e836135a8565b91506137b882613777565b600e82019050919050565b7f7b2274726169745f74797065223a22436861726163746572222c2276616c756560008201527f223a224a756c69616e20417373616e6765227d2c000000000000000000000000602082015250565b600061381f6034836135a8565b915061382a826137c3565b603482019050919050565b7f7b2274726169745f74797065223a22456666656374222c2276616c7565223a2260008201527f4652454520415353414e4745227d2c0000000000000000000000000000000000602082015250565b6000613891602f836135a8565b915061389c82613835565b602f82019050919050565b7f7b2274726169745f74797065223a2255534420506f727472616974222c22766160008201527f6c7565223a222332202d204672656520417373616e6765227d2c000000000000602082015250565b6000613903603a836135a8565b915061390e826138a7565b603a82019050919050565b7f7b2274726169745f74797065223a224e46542054797065222c2276616c75652260008201527f3a224461797320696e206a61696c20636f756e746572227d2c00000000000000602082015250565b60006139756039836135a8565b915061398082613919565b603982019050919050565b7f7b2274726169745f74797065223a22537461747573222c2276616c7565223a22600082015250565b60006139c16020836135a8565b91506139cc8261398b565b602082019050919050565b60006139e282612baf565b6139ec81856135a8565b93506139fc818560208601612bcb565b80840191505092915050565b7f227d2c0000000000000000000000000000000000000000000000000000000000600082015250565b6000613a3e6003836135a8565b9150613a4982613a08565b600382019050919050565b7f7b2274726169745f74797065223a224d656469756d222c2276616c7565223a2260008201527f446f6c6c61722062696c6c7320676c756564206f6e2063616e766173227d0000602082015250565b6000613ab0603e836135a8565b9150613abb82613a54565b603e82019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613afc6002836135a8565b9150613b0782613ac6565b600282019050919050565b7f22696d616765223a22697066733a2f2f00000000000000000000000000000000600082015250565b6000613b486010836135a8565b9150613b5382613b12565b601082019050919050565b7f22616e696d6174696f6e5f75726c223a22697066733a2f2f0000000000000000600082015250565b6000613b946018836135a8565b9150613b9f82613b5e565b601882019050919050565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b6000613be06001836135a8565b9150613beb82613baa565b600182019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c2c6001836135a8565b9150613c3782613bf6565b600182019050919050565b6000613c4d826135dc565b9150613c5882613628565b9150613c648288613660565b9150613c6f82613708565b9150613c7a82613754565b9150613c868287613660565b9150613c9182613708565b9150613c9c826137a0565b9150613ca782613812565b9150613cb282613884565b9150613cbd826138f6565b9150613cc882613968565b9150613cd3826139b4565b9150613cdf82866139d7565b9150613cea82613a31565b9150613cf582613aa3565b9150613d0082613aef565b9150613d0b82613b3b565b9150613d178285613660565b9150613d2282613708565b9150613d2d82613b87565b9150613d398284613660565b9150613d4482613bd3565b9150613d4f82613c1f565b91508190509695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000613d94601d836135a8565b9150613d9f82613d5e565b601d82019050919050565b6000613db582613d87565b9150613dc182846139d7565b915081905092915050565b7f6572726f7220617070726f766564000000000000000000000000000000000000600082015250565b6000613e02600e83612bba565b9150613e0d82613dcc565b602082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f6572726f72206c656e6774680000000000000000000000000000000000000000600082015250565b6000613e6e600c83612bba565b9150613e7982613e38565b602082019050919050565b60006020820190508181036000830152613e9d81613e61565b9050919050565b7f6572726f7220746f000000000000000000000000000000000000000000000000600082015250565b6000613eda600883612bba565b9150613ee582613ea4565b602082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f6572726f722062616c616e636500000000000000000000000000000000000000600082015250565b6000613f75600d83612bba565b9150613f8082613f3f565b602082019050919050565b60006020820190508181036000830152613fa481613f68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fe582612a2a565b9150613ff083612a2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561402557614024613fab565b5b828201905092915050565b600061403b82612a2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561406e5761406d613fab565b5b600182019050919050565b6000604082019050818103600083015261409381856130fe565b905081810360208301526140a781846130fe565b90509392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140e6602083612bba565b91506140f1826140b0565b602082019050919050565b60006020820190508181036000830152614115816140d9565b9050919050565b600061412782612a2a565b915061413283612a2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561416b5761416a613fab565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141b082612a2a565b91506141bb83612a2a565b9250826141cb576141ca614176565b5b828204905092915050565b7f6572726f72206d73672e73656e64657200000000000000000000000000000000600082015250565b600061420c601083612bba565b9150614217826141d6565b602082019050919050565b6000602082019050818103600083015261423b816141ff565b9050919050565b7f6572726f72206d696e74416c6c6f776564000000000000000000000000000000600082015250565b6000614278601183612bba565b915061428382614242565b602082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f6572726f722064726f70416c6c6f776564000000000000000000000000000000600082015250565b60006142e4601183612bba565b91506142ef826142ae565b602082019050919050565b60006020820190508181036000830152614313816142d7565b9050919050565b600060408201905061432f6000830185612aa0565b61433c6020830184612aa0565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061439f602683612bba565b91506143aa82614343565b604082019050919050565b600060208201905081810360008301526143ce81614392565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006143fc826143d5565b61440681856143e0565b9350614416818560208601612bcb565b61441f81612bfe565b840191505092915050565b600060a08201905061443f6000830188612b85565b61444c6020830187612b85565b818103604083015261445e81866130fe565b9050818103606083015261447281856130fe565b9050818103608083015261448681846143f1565b90509695505050505050565b6000815190506144a181612af6565b92915050565b6000602082840312156144bd576144bc6129c2565b5b60006144cb84828501614492565b91505092915050565b60008160e01c9050919050565b600060033d11156145005760046000803e6144fd6000516144d4565b90505b90565b600060443d101561451357614596565b61451b6129b8565b60043d036004823e80513d602482011167ffffffffffffffff82111715614543575050614596565b808201805167ffffffffffffffff8111156145615750505050614596565b80602083010160043d03850181111561457e575050505050614596565b61458d82602001850186612ccb565b82955050505050505b90565b7f6572726f72205265636569766572000000000000000000000000000000000000600082015250565b60006145cf600e83612bba565b91506145da82614599565b602082019050919050565b600060208201905081810360008301526145fe816145c2565b9050919050565b600060a08201905061461a6000830188612b85565b6146276020830187612b85565b6146346040830186612aa0565b6146416060830185612aa0565b818103608083015261465381846143f1565b9050969550505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220850af9605a5668c87edaf46edc5467a85c7bf65b774ca371a21750bc31addd0b64736f6c634300080b0033

Deployed Bytecode Sourcemap

7530:11765:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14189:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10078:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9078:72;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7610:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12934:1247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8795:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15870:978;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9239:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10859:605;;;:::i;:::-;;14385:453;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11551:83;;;:::i;:::-;;10699:152;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9333:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12104:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12533:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;488:101:2;;;:::i;:::-;;7655:947:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11749:347;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;276:85:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12724:119:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7568:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10544:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14846:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8996:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9157:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10324:101;;;:::i;:::-;;9381:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8834:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9288:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15003:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8915:72;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15170:692;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;595:198:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10433:103:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11642:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14189:188;14269:7;14314:1;14297:19;;:5;:19;;;;14289:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14350:8;:12;14359:2;14350:12;;;;;;;;;;;:19;14363:5;14350:19;;;;;;;;;;;;;;;;14343:26;;14189:188;;;;:::o;10078:159::-;10151:4;10190:10;10175:25;;:11;:25;;;;:54;;;;10219:10;10204:25;;:11;:25;;;;10175:54;10168:61;;10078:159;;;:::o;9078:72::-;;;;;;;;;;;;;:::o;7610:38::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12934:1247::-;12990:13;13115:1032;13249:4;13303:11;13754;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13962:22;14043:26;13165:961;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13115:13;:1032::i;:::-;13030:1132;;;;;;;;:::i;:::-;;;;;;;;;;;;;13016:1157;;12934:1247;;;:::o;8795:30::-;;;;:::o;15870:978::-;16041:10;16033:18;;:4;:18;;;:56;;;;16055:34;16072:4;16078:10;16055:16;:34::i;:::-;16033:56;16025:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;16141:7;:14;16127:3;:10;:28;16119:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;16205:1;16191:16;;:2;:16;;;;16183:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;16233:16;16252:10;16233:29;;16275:9;16299:389;16310:3;:10;16306:1;:14;16299:389;;;16337:10;16350:3;16354:1;16350:6;;;;;;;;:::i;:::-;;;;;;;;16337:19;;16371:14;16388:7;16396:1;16388:10;;;;;;;;:::i;:::-;;;;;;;;16371:27;;16415:19;16437:8;:12;16446:2;16437:12;;;;;;;;;;;:18;16450:4;16437:18;;;;;;;;;;;;;;;;16415:40;;16493:6;16478:11;:21;;16470:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16596:6;16582:11;:20;16561:8;:12;16570:2;16561:12;;;;;;;;;;;:18;16574:4;16561:18;;;;;;;;;;;;;;;:41;;;;16652:6;16632:8;:12;16641:2;16632:12;;;;;;;;;;;:16;16645:2;16632:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;16673:3;;;;:::i;:::-;;;16322:366;;;16299:389;;;16735:2;16705:47;;16729:4;16705:47;;16719:8;16705:47;;;16739:3;16744:7;16705:47;;;;;;;:::i;:::-;;;;;;;;16765:75;16801:8;16811:4;16817:2;16821:3;16826:7;16835:4;16765:35;:75::i;:::-;16014:834;;15870:978;;;;;:::o;9239:42::-;;;;;;;;;;;;;;;;;;;;:::o;10859:605::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10918:15:3::1;10936:21;10918:39;;10970:30;:129;;;;;;;;11018:15;;;;;;;;;;;10970:129;;;;;;;;11048:12;;;;;;;;;;;10970:129;;;;;;;;11075:13;;;;;;;;;;;10970:129;;;;;;::::0;::::1;;11112:25;:202;;;;;;;;11193:3;11183:7;11155:13;11169:10;;11155:25;;;;;;;:::i;:::-;;;;:35;;;;:::i;:::-;:41;;;;:::i;:::-;11112:202;;;;11246:3;11236:7;11211:10;11222;;11211:22;;;;;;;:::i;:::-;;;;:32;;;;:::i;:::-;:38;;;;:::i;:::-;11112:202;;;;11300:3;11290:7;11264:11;11276:10;;11264:23;;;;;;;:::i;:::-;;;;:33;;;;:::i;:::-;:39;;;;:::i;:::-;11112:202;;::::0;::::1;;11327:6;11348:109;11359:1;11355;:5;11348:109;;;11393:12;11406:1;11393:15;;;;;;;:::i;:::-;;;;;;11385:29;;:41;11415:7;11423:1;11415:10;;;;;;;:::i;:::-;;;;;;11385:41;;;;;;;;;;;;;;;;;;;;;;;11377:50;;;::::0;::::1;;11442:3;;;;;:::i;:::-;;;;11348:109;;;10907:557;;;;10859:605::o:0;14385:453::-;14490:16;14544:3;:10;14527:6;:13;:27;14519:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14582:30;14629:6;:13;14615:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14582:61;;14656:9;14680:118;14691:6;:13;14687:1;:17;14680:118;;;14740:28;14750:6;14757:1;14750:9;;;;;;;;:::i;:::-;;;;;;;;14761:3;14765:1;14761:6;;;;;;;;:::i;:::-;;;;;;;;14740:9;:28::i;:::-;14721:13;14735:1;14721:16;;;;;;;;:::i;:::-;;;;;;;:47;;;;;14783:3;;;;:::i;:::-;;;14680:118;;;14817:13;14810:20;;;;14385:453;;;;:::o;11551:83::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11621:5:3::1;11607:11;;:19;;;;;;;;;;;;;;;;;;11551:83::o:0;10699:152::-;10777:13;;;;;;;;;;;10763:27;;:10;:27;;;10755:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10838:5;10822:13;;:21;;;;;;;;;;;;;;;;;;10699:152;:::o;9333:39::-;;;;;;;;;;;;;;;;;;;;:::o;12104:222::-;12161:11;;;;;;;;;;;12153:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12227:14;;;;;;;;;;;12213:28;;:10;:28;;;12205:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12273:21;12288:2;12292:1;12273:14;:21::i;:::-;12305:11;;:13;;;;;;;;;:::i;:::-;;;;;;12104:222;:::o;12533:183::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12654:5:3::1;12629:22;:30;;;;;;;;;;;;:::i;:::-;;12699:9;12670:26;:38;;;;;;;;;;;;:::i;:::-;;12533:183:::0;;:::o;488:101:2:-;417:10;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;552:30:::1;579:1;552:18;:30::i;:::-;488:101::o:0;7655:947:3:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11749:347::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11874:11:3::1;;;;;;;;;;;11866:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11918:9;11942:85;11953:9;:16;11949:1;:20;11942:85;;;11984:43;11999:9;12009:1;11999:12;;;;;;;;:::i;:::-;;;;;;;;12013:8;12022:3;;;;;:::i;:::-;;;12013:13;;;;;;;;:::i;:::-;;;;;;;;11984:14;:43::i;:::-;11942:85;;;12053:5;12038:11;;:20;;;;;;;:::i;:::-;;;;;;;;12083:5;12069:11;;:19;;;;;;;;;;;;;;;;;;11855:241;11749:347:::0;;;:::o;276:85:2:-;322:7;348:6;;;;;;;;;;;341:13;;276:85;:::o;12724:119:3:-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12823:12:3::1;12809:11;:26;;;;;;;;;;;;:::i;:::-;;12724:119:::0;:::o;7568:35::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10544:147::-;10620:12;;;;;;;;;;;10606:26;;:10;:26;;;10598:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;10679:4;10664:12;;:19;;;;;;;;;;;;;;;;;;10544:147;:::o;14846:149::-;14937:50;14956:10;14968:8;14978;14937:18;:50::i;:::-;14846:149;;:::o;8996:75::-;;;;;;;;;;;;;:::o;9157:73::-;;;;;;;;;;;;;:::o;10324:101::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10408:1:3::1;10394:10;;:15;:23;;10416:1;10394:23;;;10412:1;10394:23;10381:36;;:10;:36;;;;10324:101::o:0;9381:29::-;;;;:::o;8834:74::-;;;;;;;;;;;;;:::o;9288:38::-;;;;;;;;;;;;;;;;;;;;:::o;15003:159::-;15096:4;15120:17;:24;15138:5;15120:24;;;;;;;;;;;;;;;:34;15145:8;15120:34;;;;;;;;;;;;;;;;;;;;;;;;;15113:41;;15003:159;;;;:::o;8915:72::-;;;;;;;;;;;;;:::o;15170:692::-;15316:10;15308:18;;:4;:18;;;:56;;;;15330:34;15347:4;15353:10;15330:16;:34::i;:::-;15308:56;15300:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;15416:1;15402:16;;:2;:16;;;;15394:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;15444:16;15463:10;15444:29;;15486:19;15508:8;:12;15517:2;15508:12;;;;;;;;;;;:18;15521:4;15508:18;;;;;;;;;;;;;;;;15486:40;;15560:6;15545:11;:21;;15537:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15655:6;15641:11;:20;15620:8;:12;15629:2;15620:12;;;;;;;;;;;:18;15633:4;15620:18;;;;;;;;;;;;;;;:41;;;;15703:6;15683:8;:12;15692:2;15683:12;;;;;;;;;;;:16;15696:2;15683:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;15758:2;15727:46;;15752:4;15727:46;;15742:8;15727:46;;;15762:2;15766:6;15727:46;;;;;;;:::i;:::-;;;;;;;;15786:68;15817:8;15827:4;15833:2;15837;15841:6;15849:4;15786:30;:68::i;:::-;15289:573;;15170:692;;;;;:::o;595:198:2:-;417:10;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;703:1:::1;683:22;;:8;:22;;;;675:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;758:28;777:8;758:18;:28::i;:::-;595:198:::0;:::o;10433:103:3:-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10521:7:3::1;10503:15;;:25;;;;;;;;;;;;;;;;;;10433:103:::0;:::o;11642:99::-;417:10:2;406:21;;:7;:5;:7::i;:::-;:21;;;398:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11727:6:3::1;11710:14;;:23;;;;;;;;;;;;;;;;;;11642:99:::0;:::o;379:1557:0:-;437:13;462:11;476:4;:11;462:25;;508:1;501:3;:8;497:23;;;511:9;;;;;;;;;;;;;;;;;497:23;569:18;607:1;602;596:3;:7;;;;:::i;:::-;595:13;;;;:::i;:::-;590:1;:19;;;;:::i;:::-;569:40;;664:19;709:2;696:10;:15;;;;:::i;:::-;686:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:48;;723:18;744:5;;;;;;;;;;;;;;;;;723:26;;810:1;803:5;799:13;854:2;846:6;842:15;902:1;871:757;924:3;921:1;918:10;871:757;;;976:1;973;969:9;964:14;;1033:8;1028:1;1022:4;1018:12;1012:19;1008:34;1111:4;1103:5;1099:2;1095:14;1091:25;1081:8;1077:40;1071:47;1149:3;1146:1;1142:11;1135:18;;1239:4;1230;1222:5;1218:2;1214:14;1210:25;1200:8;1196:40;1190:47;1186:58;1181:3;1177:68;1170:75;;1276:3;1273:1;1269:11;1262:18;;1365:4;1356;1348:5;1345:1;1341:13;1337:24;1327:8;1323:39;1317:46;1313:57;1308:3;1304:67;1297:74;;1402:3;1399:1;1395:11;1388:18;;1483:4;1474;1467:5;1463:16;1453:8;1449:31;1443:38;1439:49;1434:3;1430:59;1423:66;;1522:3;1517;1513:13;1506:20;;1562:3;1551:9;1544:22;1612:1;1601:9;1597:17;1584:30;;946:682;;871:757;;;875:42;1658:1;1653:3;1649:11;1678:1;1673:82;;;;1773:1;1768:80;;;;1642:206;;1673:82;1733:6;1728:3;1724:16;1720:1;1709:9;1705:17;1698:43;1673:82;;1768:80;1828:4;1823:3;1819:14;1815:1;1804:9;1800:17;1793:41;1642:206;;1877:10;1869:6;1862:26;769:1129;;1922:6;1908:21;;;;;;379:1557;;;;:::o;18311:777:3:-;18491:12;18558:2;18546:15;18538:23;;18593:1;18586:4;:8;18582:499;;;18632:2;18615:43;;;18659:8;18669:4;18675:3;18680:7;18689:4;18615:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;18611:459;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;18981:6;18974:14;;;;;;;;;;;:::i;:::-;;;;;;;;18611:459;;;19030:24;;;;;;;;;;:::i;:::-;;;;;;;;18611:459;18788:48;;;18776:60;;;:8;:60;;;;18772:133;;18861:24;;;;;;;;;;:::i;:::-;;;;;;;;18772:133;18695:225;18582:499;18480:608;18311:777;;;;;;:::o;12338:108::-;12414:24;12420:2;12424:1;12427:6;12414:24;;;;;;;;;;;;:5;:24::i;:::-;12338:108;;:::o;799:187:2:-;872:16;891:6;;;;;;;;;;;872:25;;916:8;907:6;;:17;;;;;;;;;;;;;;;;;;970:8;939:40;;960:8;939:40;;;;;;;;;;;;862:124;799:187;:::o;17325:262:3:-;17442:8;17433:17;;:5;:17;;;;17425:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;17514:8;17477:17;:24;17495:5;17477:24;;;;;;;;;;;;;;;:34;17502:8;17477:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;17560:8;17538:41;;17553:5;17538:41;;;17570:8;17538:41;;;;;;:::i;:::-;;;;;;;;17325:262;;;:::o;17595:708::-;17750:12;17817:2;17805:15;17797:23;;17852:1;17845:4;:8;17841:455;;;17891:2;17874:38;;;17913:8;17923:4;17929:2;17933:6;17941:4;17874:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17870:415;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;18196:6;18189:14;;;;;;;;;;;:::i;:::-;;;;;;;;17870:415;;;18245:24;;;;;;;;;;:::i;:::-;;;;;;;;17870:415;18008:43;;;17996:55;;;:8;:55;;;;17992:128;;18076:24;;;;;;;;;;:::i;:::-;;;;;;;;17992:128;17947:188;17841:455;17739:564;17595:708;;;;;;:::o;16856:461::-;16976:1;16962:16;;:2;:16;;;;16954:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;17004:16;17023:10;17004:29;;17066:6;17046:8;:12;17055:2;17046:12;;;;;;;;;;;:16;17059:2;17046:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;17127:12;;;;;;;;;;;17090:62;;17123:1;17090:62;;17105:8;17090:62;;;17141:2;17145:6;17090:62;;;;;;;:::i;:::-;;;;;;;;17207:2;17168:54;;17193:12;;;;;;;;;;;17168:54;;17183:8;17168:54;;;17211:2;17215:6;17168:54;;;;;;;:::i;:::-;;;;;;;;17235:74;17266:8;17284:1;17288:2;17292;17296:6;17304:4;17235:30;:74::i;:::-;16943:374;16856:461;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:4:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:118::-;3300:24;3318:5;3300:24;:::i;:::-;3295:3;3288:37;3213:118;;:::o;3337:222::-;3430:4;3468:2;3457:9;3453:18;3445:26;;3481:71;3549:1;3538:9;3534:17;3525:6;3481:71;:::i;:::-;3337:222;;;;:::o;3565:99::-;3617:6;3651:5;3645:12;3635:22;;3565:99;;;:::o;3670:169::-;3754:11;3788:6;3783:3;3776:19;3828:4;3823:3;3819:14;3804:29;;3670:169;;;;:::o;3845:307::-;3913:1;3923:113;3937:6;3934:1;3931:13;3923:113;;;4022:1;4017:3;4013:11;4007:18;4003:1;3998:3;3994:11;3987:39;3959:2;3956:1;3952:10;3947:15;;3923:113;;;4054:6;4051:1;4048:13;4045:101;;;4134:1;4125:6;4120:3;4116:16;4109:27;4045:101;3894:258;3845:307;;;:::o;4158:102::-;4199:6;4250:2;4246:7;4241:2;4234:5;4230:14;4226:28;4216:38;;4158:102;;;:::o;4266:364::-;4354:3;4382:39;4415:5;4382:39;:::i;:::-;4437:71;4501:6;4496:3;4437:71;:::i;:::-;4430:78;;4517:52;4562:6;4557:3;4550:4;4543:5;4539:16;4517:52;:::i;:::-;4594:29;4616:6;4594:29;:::i;:::-;4589:3;4585:39;4578:46;;4358:272;4266:364;;;;:::o;4636:313::-;4749:4;4787:2;4776:9;4772:18;4764:26;;4836:9;4830:4;4826:20;4822:1;4811:9;4807:17;4800:47;4864:78;4937:4;4928:6;4864:78;:::i;:::-;4856:86;;4636:313;;;;:::o;4955:329::-;5014:6;5063:2;5051:9;5042:7;5038:23;5034:32;5031:119;;;5069:79;;:::i;:::-;5031:119;5189:1;5214:53;5259:7;5250:6;5239:9;5235:22;5214:53;:::i;:::-;5204:63;;5160:117;4955:329;;;;:::o;5290:117::-;5399:1;5396;5389:12;5413:180;5461:77;5458:1;5451:88;5558:4;5555:1;5548:15;5582:4;5579:1;5572:15;5599:281;5682:27;5704:4;5682:27;:::i;:::-;5674:6;5670:40;5812:6;5800:10;5797:22;5776:18;5764:10;5761:34;5758:62;5755:88;;;5823:18;;:::i;:::-;5755:88;5863:10;5859:2;5852:22;5642:238;5599:281;;:::o;5886:129::-;5920:6;5947:20;;:::i;:::-;5937:30;;5976:33;6004:4;5996:6;5976:33;:::i;:::-;5886:129;;;:::o;6021:311::-;6098:4;6188:18;6180:6;6177:30;6174:56;;;6210:18;;:::i;:::-;6174:56;6260:4;6252:6;6248:17;6240:25;;6320:4;6314;6310:15;6302:23;;6021:311;;;:::o;6338:117::-;6447:1;6444;6437:12;6478:710;6574:5;6599:81;6615:64;6672:6;6615:64;:::i;:::-;6599:81;:::i;:::-;6590:90;;6700:5;6729:6;6722:5;6715:21;6763:4;6756:5;6752:16;6745:23;;6816:4;6808:6;6804:17;6796:6;6792:30;6845:3;6837:6;6834:15;6831:122;;;6864:79;;:::i;:::-;6831:122;6979:6;6962:220;6996:6;6991:3;6988:15;6962:220;;;7071:3;7100:37;7133:3;7121:10;7100:37;:::i;:::-;7095:3;7088:50;7167:4;7162:3;7158:14;7151:21;;7038:144;7022:4;7017:3;7013:14;7006:21;;6962:220;;;6966:21;6580:608;;6478:710;;;;;:::o;7211:370::-;7282:5;7331:3;7324:4;7316:6;7312:17;7308:27;7298:122;;7339:79;;:::i;:::-;7298:122;7456:6;7443:20;7481:94;7571:3;7563:6;7556:4;7548:6;7544:17;7481:94;:::i;:::-;7472:103;;7288:293;7211:370;;;;:::o;7587:117::-;7696:1;7693;7686:12;7710:307;7771:4;7861:18;7853:6;7850:30;7847:56;;;7883:18;;:::i;:::-;7847:56;7921:29;7943:6;7921:29;:::i;:::-;7913:37;;8005:4;7999;7995:15;7987:23;;7710:307;;;:::o;8023:154::-;8107:6;8102:3;8097;8084:30;8169:1;8160:6;8155:3;8151:16;8144:27;8023:154;;;:::o;8183:410::-;8260:5;8285:65;8301:48;8342:6;8301:48;:::i;:::-;8285:65;:::i;:::-;8276:74;;8373:6;8366:5;8359:21;8411:4;8404:5;8400:16;8449:3;8440:6;8435:3;8431:16;8428:25;8425:112;;;8456:79;;:::i;:::-;8425:112;8546:41;8580:6;8575:3;8570;8546:41;:::i;:::-;8266:327;8183:410;;;;;:::o;8612:338::-;8667:5;8716:3;8709:4;8701:6;8697:17;8693:27;8683:122;;8724:79;;:::i;:::-;8683:122;8841:6;8828:20;8866:78;8940:3;8932:6;8925:4;8917:6;8913:17;8866:78;:::i;:::-;8857:87;;8673:277;8612:338;;;;:::o;8956:1509::-;9110:6;9118;9126;9134;9142;9191:3;9179:9;9170:7;9166:23;9162:33;9159:120;;;9198:79;;:::i;:::-;9159:120;9318:1;9343:53;9388:7;9379:6;9368:9;9364:22;9343:53;:::i;:::-;9333:63;;9289:117;9445:2;9471:53;9516:7;9507:6;9496:9;9492:22;9471:53;:::i;:::-;9461:63;;9416:118;9601:2;9590:9;9586:18;9573:32;9632:18;9624:6;9621:30;9618:117;;;9654:79;;:::i;:::-;9618:117;9759:78;9829:7;9820:6;9809:9;9805:22;9759:78;:::i;:::-;9749:88;;9544:303;9914:2;9903:9;9899:18;9886:32;9945:18;9937:6;9934:30;9931:117;;;9967:79;;:::i;:::-;9931:117;10072:78;10142:7;10133:6;10122:9;10118:22;10072:78;:::i;:::-;10062:88;;9857:303;10227:3;10216:9;10212:19;10199:33;10259:18;10251:6;10248:30;10245:117;;;10281:79;;:::i;:::-;10245:117;10386:62;10440:7;10431:6;10420:9;10416:22;10386:62;:::i;:::-;10376:72;;10170:288;8956:1509;;;;;;;;:::o;10471:311::-;10548:4;10638:18;10630:6;10627:30;10624:56;;;10660:18;;:::i;:::-;10624:56;10710:4;10702:6;10698:17;10690:25;;10770:4;10764;10760:15;10752:23;;10471:311;;;:::o;10805:710::-;10901:5;10926:81;10942:64;10999:6;10942:64;:::i;:::-;10926:81;:::i;:::-;10917:90;;11027:5;11056:6;11049:5;11042:21;11090:4;11083:5;11079:16;11072:23;;11143:4;11135:6;11131:17;11123:6;11119:30;11172:3;11164:6;11161:15;11158:122;;;11191:79;;:::i;:::-;11158:122;11306:6;11289:220;11323:6;11318:3;11315:15;11289:220;;;11398:3;11427:37;11460:3;11448:10;11427:37;:::i;:::-;11422:3;11415:50;11494:4;11489:3;11485:14;11478:21;;11365:144;11349:4;11344:3;11340:14;11333:21;;11289:220;;;11293:21;10907:608;;10805:710;;;;;:::o;11538:370::-;11609:5;11658:3;11651:4;11643:6;11639:17;11635:27;11625:122;;11666:79;;:::i;:::-;11625:122;11783:6;11770:20;11808:94;11898:3;11890:6;11883:4;11875:6;11871:17;11808:94;:::i;:::-;11799:103;;11615:293;11538:370;;;;:::o;11914:894::-;12032:6;12040;12089:2;12077:9;12068:7;12064:23;12060:32;12057:119;;;12095:79;;:::i;:::-;12057:119;12243:1;12232:9;12228:17;12215:31;12273:18;12265:6;12262:30;12259:117;;;12295:79;;:::i;:::-;12259:117;12400:78;12470:7;12461:6;12450:9;12446:22;12400:78;:::i;:::-;12390:88;;12186:302;12555:2;12544:9;12540:18;12527:32;12586:18;12578:6;12575:30;12572:117;;;12608:79;;:::i;:::-;12572:117;12713:78;12783:7;12774:6;12763:9;12759:22;12713:78;:::i;:::-;12703:88;;12498:303;11914:894;;;;;:::o;12814:114::-;12881:6;12915:5;12909:12;12899:22;;12814:114;;;:::o;12934:184::-;13033:11;13067:6;13062:3;13055:19;13107:4;13102:3;13098:14;13083:29;;12934:184;;;;:::o;13124:132::-;13191:4;13214:3;13206:11;;13244:4;13239:3;13235:14;13227:22;;13124:132;;;:::o;13262:108::-;13339:24;13357:5;13339:24;:::i;:::-;13334:3;13327:37;13262:108;;:::o;13376:179::-;13445:10;13466:46;13508:3;13500:6;13466:46;:::i;:::-;13544:4;13539:3;13535:14;13521:28;;13376:179;;;;:::o;13561:113::-;13631:4;13663;13658:3;13654:14;13646:22;;13561:113;;;:::o;13710:732::-;13829:3;13858:54;13906:5;13858:54;:::i;:::-;13928:86;14007:6;14002:3;13928:86;:::i;:::-;13921:93;;14038:56;14088:5;14038:56;:::i;:::-;14117:7;14148:1;14133:284;14158:6;14155:1;14152:13;14133:284;;;14234:6;14228:13;14261:63;14320:3;14305:13;14261:63;:::i;:::-;14254:70;;14347:60;14400:6;14347:60;:::i;:::-;14337:70;;14193:224;14180:1;14177;14173:9;14168:14;;14133:284;;;14137:14;14433:3;14426:10;;13834:608;;;13710:732;;;;:::o;14448:373::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:108;14809:4;14800:6;14706:108;:::i;:::-;14698:116;;14448:373;;;;:::o;14827:329::-;14886:6;14935:2;14923:9;14914:7;14910:23;14906:32;14903:119;;;14941:79;;:::i;:::-;14903:119;15061:1;15086:53;15131:7;15122:6;15111:9;15107:22;15086:53;:::i;:::-;15076:63;;15032:117;14827:329;;;;:::o;15162:308::-;15224:4;15314:18;15306:6;15303:30;15300:56;;;15336:18;;:::i;:::-;15300:56;15374:29;15396:6;15374:29;:::i;:::-;15366:37;;15458:4;15452;15448:15;15440:23;;15162:308;;;:::o;15476:412::-;15554:5;15579:66;15595:49;15637:6;15595:49;:::i;:::-;15579:66;:::i;:::-;15570:75;;15668:6;15661:5;15654:21;15706:4;15699:5;15695:16;15744:3;15735:6;15730:3;15726:16;15723:25;15720:112;;;15751:79;;:::i;:::-;15720:112;15841:41;15875:6;15870:3;15865;15841:41;:::i;:::-;15560:328;15476:412;;;;;:::o;15908:340::-;15964:5;16013:3;16006:4;15998:6;15994:17;15990:27;15980:122;;16021:79;;:::i;:::-;15980:122;16138:6;16125:20;16163:79;16238:3;16230:6;16223:4;16215:6;16211:17;16163:79;:::i;:::-;16154:88;;15970:278;15908:340;;;;:::o;16254:834::-;16342:6;16350;16399:2;16387:9;16378:7;16374:23;16370:32;16367:119;;;16405:79;;:::i;:::-;16367:119;16553:1;16542:9;16538:17;16525:31;16583:18;16575:6;16572:30;16569:117;;;16605:79;;:::i;:::-;16569:117;16710:63;16765:7;16756:6;16745:9;16741:22;16710:63;:::i;:::-;16700:73;;16496:287;16850:2;16839:9;16835:18;16822:32;16881:18;16873:6;16870:30;16867:117;;;16903:79;;:::i;:::-;16867:117;17008:63;17063:7;17054:6;17043:9;17039:22;17008:63;:::i;:::-;16998:73;;16793:288;16254:834;;;;;:::o;17094:1039::-;17221:6;17229;17237;17286:2;17274:9;17265:7;17261:23;17257:32;17254:119;;;17292:79;;:::i;:::-;17254:119;17440:1;17429:9;17425:17;17412:31;17470:18;17462:6;17459:30;17456:117;;;17492:79;;:::i;:::-;17456:117;17597:78;17667:7;17658:6;17647:9;17643:22;17597:78;:::i;:::-;17587:88;;17383:302;17752:2;17741:9;17737:18;17724:32;17783:18;17775:6;17772:30;17769:117;;;17805:79;;:::i;:::-;17769:117;17910:78;17980:7;17971:6;17960:9;17956:22;17910:78;:::i;:::-;17900:88;;17695:303;18037:2;18063:53;18108:7;18099:6;18088:9;18084:22;18063:53;:::i;:::-;18053:63;;18008:118;17094:1039;;;;;:::o;18139:509::-;18208:6;18257:2;18245:9;18236:7;18232:23;18228:32;18225:119;;;18263:79;;:::i;:::-;18225:119;18411:1;18400:9;18396:17;18383:31;18441:18;18433:6;18430:30;18427:117;;;18463:79;;:::i;:::-;18427:117;18568:63;18623:7;18614:6;18603:9;18599:22;18568:63;:::i;:::-;18558:73;;18354:287;18139:509;;;;:::o;18654:116::-;18724:21;18739:5;18724:21;:::i;:::-;18717:5;18714:32;18704:60;;18760:1;18757;18750:12;18704:60;18654:116;:::o;18776:133::-;18819:5;18857:6;18844:20;18835:29;;18873:30;18897:5;18873:30;:::i;:::-;18776:133;;;;:::o;18915:468::-;18980:6;18988;19037:2;19025:9;19016:7;19012:23;19008:32;19005:119;;;19043:79;;:::i;:::-;19005:119;19163:1;19188:53;19233:7;19224:6;19213:9;19209:22;19188:53;:::i;:::-;19178:63;;19134:117;19290:2;19316:50;19358:7;19349:6;19338:9;19334:22;19316:50;:::i;:::-;19306:60;;19261:115;18915:468;;;;;:::o;19389:474::-;19457:6;19465;19514:2;19502:9;19493:7;19489:23;19485:32;19482:119;;;19520:79;;:::i;:::-;19482:119;19640:1;19665:53;19710:7;19701:6;19690:9;19686:22;19665:53;:::i;:::-;19655:63;;19611:117;19767:2;19793:53;19838:7;19829:6;19818:9;19814:22;19793:53;:::i;:::-;19783:63;;19738:118;19389:474;;;;;:::o;19869:1089::-;19973:6;19981;19989;19997;20005;20054:3;20042:9;20033:7;20029:23;20025:33;20022:120;;;20061:79;;:::i;:::-;20022:120;20181:1;20206:53;20251:7;20242:6;20231:9;20227:22;20206:53;:::i;:::-;20196:63;;20152:117;20308:2;20334:53;20379:7;20370:6;20359:9;20355:22;20334:53;:::i;:::-;20324:63;;20279:118;20436:2;20462:53;20507:7;20498:6;20487:9;20483:22;20462:53;:::i;:::-;20452:63;;20407:118;20564:2;20590:53;20635:7;20626:6;20615:9;20611:22;20590:53;:::i;:::-;20580:63;;20535:118;20720:3;20709:9;20705:19;20692:33;20752:18;20744:6;20741:30;20738:117;;;20774:79;;:::i;:::-;20738:117;20879:62;20933:7;20924:6;20913:9;20909:22;20879:62;:::i;:::-;20869:72;;20663:288;19869:1089;;;;;;;;:::o;20964:161::-;21104:13;21100:1;21092:6;21088:14;21081:37;20964:161;:::o;21131:366::-;21273:3;21294:67;21358:2;21353:3;21294:67;:::i;:::-;21287:74;;21370:93;21459:3;21370:93;:::i;:::-;21488:2;21483:3;21479:12;21472:19;;21131:366;;;:::o;21503:419::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21756:9;21750:4;21746:20;21742:1;21731:9;21727:17;21720:47;21784:131;21910:4;21784:131;:::i;:::-;21776:139;;21503:419;;;:::o;21928:180::-;21976:77;21973:1;21966:88;22073:4;22070:1;22063:15;22097:4;22094:1;22087:15;22114:320;22158:6;22195:1;22189:4;22185:12;22175:22;;22242:1;22236:4;22232:12;22263:18;22253:81;;22319:4;22311:6;22307:17;22297:27;;22253:81;22381:2;22373:6;22370:14;22350:18;22347:38;22344:84;;;22400:18;;:::i;:::-;22344:84;22165:269;22114:320;;;:::o;22440:148::-;22542:11;22579:3;22564:18;;22440:148;;;;:::o;22594:155::-;22734:3;22730:1;22722:6;22718:14;22711:27;22594:155;:::o;22759:416::-;22919:3;22944:84;23026:1;23021:3;22944:84;:::i;:::-;22937:91;;23041:93;23130:3;23041:93;:::i;:::-;23163:1;23158:3;23154:11;23147:18;;22759:416;;;:::o;23185:222::-;23329:66;23325:1;23317:6;23313:14;23306:90;23185:222;:::o;23417:416::-;23577:3;23602:84;23684:1;23679:3;23602:84;:::i;:::-;23595:91;;23699:93;23788:3;23699:93;:::i;:::-;23821:1;23816:3;23812:11;23805:18;;23417:416;;;:::o;23843:157::-;23892:4;23919:3;23911:11;;23946:3;23943:1;23936:14;23984:4;23981:1;23971:18;23963:26;;23843:157;;;:::o;24038:925::-;24141:3;24182:5;24176:12;24215:36;24241:9;24215:36;:::i;:::-;24271:89;24353:6;24348:3;24271:89;:::i;:::-;24264:96;;24395:1;24384:9;24380:17;24415:1;24410:153;;;;24581:1;24576:377;;;;24373:580;;24410:153;24502:4;24498:9;24487;24483:25;24478:3;24471:38;24542:6;24537:3;24533:16;24526:23;;24410:153;;24576:377;24651:38;24683:5;24651:38;:::i;:::-;24715:1;24733:166;24747:6;24744:1;24741:13;24733:166;;;24825:7;24819:14;24815:1;24810:3;24806:11;24799:35;24879:1;24870:7;24866:15;24855:26;;24769:4;24766:1;24762:12;24757:17;;24733:166;;;24932:6;24927:3;24923:16;24916:23;;24583:370;;24373:580;;24145:818;;24038:925;;;;:::o;24973:222::-;25117:66;25113:1;25105:6;25101:14;25094:90;24973:222;:::o;25205:416::-;25365:3;25390:84;25472:1;25467:3;25390:84;:::i;:::-;25383:91;;25487:93;25576:3;25487:93;:::i;:::-;25609:1;25604:3;25600:11;25593:18;;25205:416;;;:::o;25631:222::-;25775:66;25771:1;25763:6;25759:14;25752:90;25631:222;:::o;25863:418::-;26023:3;26048:85;26130:2;26125:3;26048:85;:::i;:::-;26041:92;;26146:93;26235:3;26146:93;:::i;:::-;26268:2;26263:3;26259:12;26252:19;;25863:418;;;:::o;26291:222::-;26435:66;26431:1;26423:6;26419:14;26412:90;26291:222;:::o;26523:418::-;26683:3;26708:85;26790:2;26785:3;26708:85;:::i;:::-;26701:92;;26806:93;26895:3;26806:93;:::i;:::-;26928:2;26923:3;26919:12;26912:19;;26523:418;;;:::o;26951:327::-;27095:66;27091:1;27083:6;27079:14;27072:90;27200:66;27195:2;27187:6;27183:15;27176:91;26951:327;:::o;27288:418::-;27448:3;27473:85;27555:2;27550:3;27473:85;:::i;:::-;27466:92;;27571:93;27660:3;27571:93;:::i;:::-;27693:2;27688:3;27684:12;27677:19;;27288:418;;;:::o;27716:327::-;27860:66;27856:1;27848:6;27844:14;27837:90;27965:66;27960:2;27952:6;27948:15;27941:91;27716:327;:::o;28053:418::-;28213:3;28238:85;28320:2;28315:3;28238:85;:::i;:::-;28231:92;;28336:93;28425:3;28336:93;:::i;:::-;28458:2;28453:3;28449:12;28442:19;;28053:418;;;:::o;28481:327::-;28625:66;28621:1;28613:6;28609:14;28602:90;28730:66;28725:2;28717:6;28713:15;28706:91;28481:327;:::o;28818:418::-;28978:3;29003:85;29085:2;29080:3;29003:85;:::i;:::-;28996:92;;29101:93;29190:3;29101:93;:::i;:::-;29223:2;29218:3;29214:12;29207:19;;28818:418;;;:::o;29246:327::-;29390:66;29386:1;29378:6;29374:14;29367:90;29495:66;29490:2;29482:6;29478:15;29471:91;29246:327;:::o;29583:418::-;29743:3;29768:85;29850:2;29845:3;29768:85;:::i;:::-;29761:92;;29866:93;29955:3;29866:93;:::i;:::-;29988:2;29983:3;29979:12;29972:19;;29583:418;;;:::o;30011:222::-;30155:66;30151:1;30143:6;30139:14;30132:90;30011:222;:::o;30243:418::-;30403:3;30428:85;30510:2;30505:3;30428:85;:::i;:::-;30421:92;;30526:93;30615:3;30526:93;:::i;:::-;30648:2;30643:3;30639:12;30632:19;;30243:418;;;:::o;30671:397::-;30777:3;30809:39;30842:5;30809:39;:::i;:::-;30868:89;30950:6;30945:3;30868:89;:::i;:::-;30861:96;;30970:52;31015:6;31010:3;31003:4;30996:5;30992:16;30970:52;:::i;:::-;31051:6;31046:3;31042:16;31035:23;;30781:287;30671:397;;;;:::o;31078:222::-;31222:66;31218:1;31210:6;31206:14;31199:90;31078:222;:::o;31310:416::-;31470:3;31495:84;31577:1;31572:3;31495:84;:::i;:::-;31488:91;;31592:93;31681:3;31592:93;:::i;:::-;31714:1;31709:3;31705:11;31698:18;;31310:416;;;:::o;31736:327::-;31880:66;31876:1;31868:6;31864:14;31857:90;31985:66;31980:2;31972:6;31968:15;31961:91;31736:327;:::o;32073:418::-;32233:3;32258:85;32340:2;32335:3;32258:85;:::i;:::-;32251:92;;32356:93;32445:3;32356:93;:::i;:::-;32478:2;32473:3;32469:12;32462:19;;32073:418;;;:::o;32501:160::-;32645:4;32641:1;32633:6;32629:14;32622:28;32501:160;:::o;32671:416::-;32831:3;32856:84;32938:1;32933:3;32856:84;:::i;:::-;32849:91;;32953:93;33042:3;32953:93;:::i;:::-;33075:1;33070:3;33066:11;33059:18;;32671:416;;;:::o;33097:222::-;33241:66;33237:1;33229:6;33225:14;33218:90;33097:222;:::o;33329:418::-;33489:3;33514:85;33596:2;33591:3;33514:85;:::i;:::-;33507:92;;33612:93;33701:3;33612:93;:::i;:::-;33734:2;33729:3;33725:12;33718:19;;33329:418;;;:::o;33757:222::-;33901:66;33897:1;33889:6;33885:14;33878:90;33757:222;:::o;33989:418::-;34149:3;34174:85;34256:2;34251:3;34174:85;:::i;:::-;34167:92;;34272:93;34361:3;34272:93;:::i;:::-;34394:2;34389:3;34385:12;34378:19;;33989:418;;;:::o;34417:222::-;34561:66;34557:1;34549:6;34545:14;34538:90;34417:222;:::o;34649:416::-;34809:3;34834:84;34916:1;34911:3;34834:84;:::i;:::-;34827:91;;34931:93;35020:3;34931:93;:::i;:::-;35053:1;35048:3;35044:11;35037:18;;34649:416;;;:::o;35075:151::-;35215:3;35211:1;35203:6;35199:14;35192:27;35075:151;:::o;35232:400::-;35392:3;35413:84;35495:1;35490:3;35413:84;:::i;:::-;35406:91;;35506:93;35595:3;35506:93;:::i;:::-;35624:1;35619:3;35615:11;35608:18;;35232:400;;;:::o;35638:5945::-;37869:3;37891:148;38035:3;37891:148;:::i;:::-;37884:155;;38056:148;38200:3;38056:148;:::i;:::-;38049:155;;38221:92;38309:3;38300:6;38221:92;:::i;:::-;38214:99;;38330:148;38474:3;38330:148;:::i;:::-;38323:155;;38495:148;38639:3;38495:148;:::i;:::-;38488:155;;38660:92;38748:3;38739:6;38660:92;:::i;:::-;38653:99;;38769:148;38913:3;38769:148;:::i;:::-;38762:155;;38934:148;39078:3;38934:148;:::i;:::-;38927:155;;39099:148;39243:3;39099:148;:::i;:::-;39092:155;;39264:148;39408:3;39264:148;:::i;:::-;39257:155;;39429:148;39573:3;39429:148;:::i;:::-;39422:155;;39594:148;39738:3;39594:148;:::i;:::-;39587:155;;39759:148;39903:3;39759:148;:::i;:::-;39752:155;;39924:95;40015:3;40006:6;39924:95;:::i;:::-;39917:102;;40036:148;40180:3;40036:148;:::i;:::-;40029:155;;40201:148;40345:3;40201:148;:::i;:::-;40194:155;;40366:148;40510:3;40366:148;:::i;:::-;40359:155;;40531:148;40675:3;40531:148;:::i;:::-;40524:155;;40696:92;40784:3;40775:6;40696:92;:::i;:::-;40689:99;;40805:148;40949:3;40805:148;:::i;:::-;40798:155;;40970:148;41114:3;40970:148;:::i;:::-;40963:155;;41135:92;41223:3;41214:6;41135:92;:::i;:::-;41128:99;;41244:148;41388:3;41244:148;:::i;:::-;41237:155;;41409:148;41553:3;41409:148;:::i;:::-;41402:155;;41574:3;41567:10;;35638:5945;;;;;;;;:::o;41589:179::-;41729:31;41725:1;41717:6;41713:14;41706:55;41589:179;:::o;41774:402::-;41934:3;41955:85;42037:2;42032:3;41955:85;:::i;:::-;41948:92;;42049:93;42138:3;42049:93;:::i;:::-;42167:2;42162:3;42158:12;42151:19;;41774:402;;;:::o;42182:541::-;42415:3;42437:148;42581:3;42437:148;:::i;:::-;42430:155;;42602:95;42693:3;42684:6;42602:95;:::i;:::-;42595:102;;42714:3;42707:10;;42182:541;;;;:::o;42729:164::-;42869:16;42865:1;42857:6;42853:14;42846:40;42729:164;:::o;42899:366::-;43041:3;43062:67;43126:2;43121:3;43062:67;:::i;:::-;43055:74;;43138:93;43227:3;43138:93;:::i;:::-;43256:2;43251:3;43247:12;43240:19;;42899:366;;;:::o;43271:419::-;43437:4;43475:2;43464:9;43460:18;43452:26;;43524:9;43518:4;43514:20;43510:1;43499:9;43495:17;43488:47;43552:131;43678:4;43552:131;:::i;:::-;43544:139;;43271:419;;;:::o;43696:162::-;43836:14;43832:1;43824:6;43820:14;43813:38;43696:162;:::o;43864:366::-;44006:3;44027:67;44091:2;44086:3;44027:67;:::i;:::-;44020:74;;44103:93;44192:3;44103:93;:::i;:::-;44221:2;44216:3;44212:12;44205:19;;43864:366;;;:::o;44236:419::-;44402:4;44440:2;44429:9;44425:18;44417:26;;44489:9;44483:4;44479:20;44475:1;44464:9;44460:17;44453:47;44517:131;44643:4;44517:131;:::i;:::-;44509:139;;44236:419;;;:::o;44661:158::-;44801:10;44797:1;44789:6;44785:14;44778:34;44661:158;:::o;44825:365::-;44967:3;44988:66;45052:1;45047:3;44988:66;:::i;:::-;44981:73;;45063:93;45152:3;45063:93;:::i;:::-;45181:2;45176:3;45172:12;45165:19;;44825:365;;;:::o;45196:419::-;45362:4;45400:2;45389:9;45385:18;45377:26;;45449:9;45443:4;45439:20;45435:1;45424:9;45420:17;45413:47;45477:131;45603:4;45477:131;:::i;:::-;45469:139;;45196:419;;;:::o;45621:180::-;45669:77;45666:1;45659:88;45766:4;45763:1;45756:15;45790:4;45787:1;45780:15;45807:163;45947:15;45943:1;45935:6;45931:14;45924:39;45807:163;:::o;45976:366::-;46118:3;46139:67;46203:2;46198:3;46139:67;:::i;:::-;46132:74;;46215:93;46304:3;46215:93;:::i;:::-;46333:2;46328:3;46324:12;46317:19;;45976:366;;;:::o;46348:419::-;46514:4;46552:2;46541:9;46537:18;46529:26;;46601:9;46595:4;46591:20;46587:1;46576:9;46572:17;46565:47;46629:131;46755:4;46629:131;:::i;:::-;46621:139;;46348:419;;;:::o;46773:180::-;46821:77;46818:1;46811:88;46918:4;46915:1;46908:15;46942:4;46939:1;46932:15;46959:305;46999:3;47018:20;47036:1;47018:20;:::i;:::-;47013:25;;47052:20;47070:1;47052:20;:::i;:::-;47047:25;;47206:1;47138:66;47134:74;47131:1;47128:81;47125:107;;;47212:18;;:::i;:::-;47125:107;47256:1;47253;47249:9;47242:16;;46959:305;;;;:::o;47270:233::-;47309:3;47332:24;47350:5;47332:24;:::i;:::-;47323:33;;47378:66;47371:5;47368:77;47365:103;;;47448:18;;:::i;:::-;47365:103;47495:1;47488:5;47484:13;47477:20;;47270:233;;;:::o;47509:634::-;47730:4;47768:2;47757:9;47753:18;47745:26;;47817:9;47811:4;47807:20;47803:1;47792:9;47788:17;47781:47;47845:108;47948:4;47939:6;47845:108;:::i;:::-;47837:116;;48000:9;47994:4;47990:20;47985:2;47974:9;47970:18;47963:48;48028:108;48131:4;48122:6;48028:108;:::i;:::-;48020:116;;47509:634;;;;;:::o;48149:182::-;48289:34;48285:1;48277:6;48273:14;48266:58;48149:182;:::o;48337:366::-;48479:3;48500:67;48564:2;48559:3;48500:67;:::i;:::-;48493:74;;48576:93;48665:3;48576:93;:::i;:::-;48694:2;48689:3;48685:12;48678:19;;48337:366;;;:::o;48709:419::-;48875:4;48913:2;48902:9;48898:18;48890:26;;48962:9;48956:4;48952:20;48948:1;48937:9;48933:17;48926:47;48990:131;49116:4;48990:131;:::i;:::-;48982:139;;48709:419;;;:::o;49134:348::-;49174:7;49197:20;49215:1;49197:20;:::i;:::-;49192:25;;49231:20;49249:1;49231:20;:::i;:::-;49226:25;;49419:1;49351:66;49347:74;49344:1;49341:81;49336:1;49329:9;49322:17;49318:105;49315:131;;;49426:18;;:::i;:::-;49315:131;49474:1;49471;49467:9;49456:20;;49134:348;;;;:::o;49488:180::-;49536:77;49533:1;49526:88;49633:4;49630:1;49623:15;49657:4;49654:1;49647:15;49674:185;49714:1;49731:20;49749:1;49731:20;:::i;:::-;49726:25;;49765:20;49783:1;49765:20;:::i;:::-;49760:25;;49804:1;49794:35;;49809:18;;:::i;:::-;49794:35;49851:1;49848;49844:9;49839:14;;49674:185;;;;:::o;49865:166::-;50005:18;50001:1;49993:6;49989:14;49982:42;49865:166;:::o;50037:366::-;50179:3;50200:67;50264:2;50259:3;50200:67;:::i;:::-;50193:74;;50276:93;50365:3;50276:93;:::i;:::-;50394:2;50389:3;50385:12;50378:19;;50037:366;;;:::o;50409:419::-;50575:4;50613:2;50602:9;50598:18;50590:26;;50662:9;50656:4;50652:20;50648:1;50637:9;50633:17;50626:47;50690:131;50816:4;50690:131;:::i;:::-;50682:139;;50409:419;;;:::o;50834:167::-;50974:19;50970:1;50962:6;50958:14;50951:43;50834:167;:::o;51007:366::-;51149:3;51170:67;51234:2;51229:3;51170:67;:::i;:::-;51163:74;;51246:93;51335:3;51246:93;:::i;:::-;51364:2;51359:3;51355:12;51348:19;;51007:366;;;:::o;51379:419::-;51545:4;51583:2;51572:9;51568:18;51560:26;;51632:9;51626:4;51622:20;51618:1;51607:9;51603:17;51596:47;51660:131;51786:4;51660:131;:::i;:::-;51652:139;;51379:419;;;:::o;51804:167::-;51944:19;51940:1;51932:6;51928:14;51921:43;51804:167;:::o;51977:366::-;52119:3;52140:67;52204:2;52199:3;52140:67;:::i;:::-;52133:74;;52216:93;52305:3;52216:93;:::i;:::-;52334:2;52329:3;52325:12;52318:19;;51977:366;;;:::o;52349:419::-;52515:4;52553:2;52542:9;52538:18;52530:26;;52602:9;52596:4;52592:20;52588:1;52577:9;52573:17;52566:47;52630:131;52756:4;52630:131;:::i;:::-;52622:139;;52349:419;;;:::o;52774:332::-;52895:4;52933:2;52922:9;52918:18;52910:26;;52946:71;53014:1;53003:9;52999:17;52990:6;52946:71;:::i;:::-;53027:72;53095:2;53084:9;53080:18;53071:6;53027:72;:::i;:::-;52774:332;;;;;:::o;53112:225::-;53252:34;53248:1;53240:6;53236:14;53229:58;53321:8;53316:2;53308:6;53304:15;53297:33;53112:225;:::o;53343:366::-;53485:3;53506:67;53570:2;53565:3;53506:67;:::i;:::-;53499:74;;53582:93;53671:3;53582:93;:::i;:::-;53700:2;53695:3;53691:12;53684:19;;53343:366;;;:::o;53715:419::-;53881:4;53919:2;53908:9;53904:18;53896:26;;53968:9;53962:4;53958:20;53954:1;53943:9;53939:17;53932:47;53996:131;54122:4;53996:131;:::i;:::-;53988:139;;53715:419;;;:::o;54140:98::-;54191:6;54225:5;54219:12;54209:22;;54140:98;;;:::o;54244:168::-;54327:11;54361:6;54356:3;54349:19;54401:4;54396:3;54392:14;54377:29;;54244:168;;;;:::o;54418:360::-;54504:3;54532:38;54564:5;54532:38;:::i;:::-;54586:70;54649:6;54644:3;54586:70;:::i;:::-;54579:77;;54665:52;54710:6;54705:3;54698:4;54691:5;54687:16;54665:52;:::i;:::-;54742:29;54764:6;54742:29;:::i;:::-;54737:3;54733:39;54726:46;;54508:270;54418:360;;;;:::o;54784:1053::-;55107:4;55145:3;55134:9;55130:19;55122:27;;55159:71;55227:1;55216:9;55212:17;55203:6;55159:71;:::i;:::-;55240:72;55308:2;55297:9;55293:18;55284:6;55240:72;:::i;:::-;55359:9;55353:4;55349:20;55344:2;55333:9;55329:18;55322:48;55387:108;55490:4;55481:6;55387:108;:::i;:::-;55379:116;;55542:9;55536:4;55532:20;55527:2;55516:9;55512:18;55505:48;55570:108;55673:4;55664:6;55570:108;:::i;:::-;55562:116;;55726:9;55720:4;55716:20;55710:3;55699:9;55695:19;55688:49;55754:76;55825:4;55816:6;55754:76;:::i;:::-;55746:84;;54784:1053;;;;;;;;:::o;55843:141::-;55899:5;55930:6;55924:13;55915:22;;55946:32;55972:5;55946:32;:::i;:::-;55843:141;;;;:::o;55990:349::-;56059:6;56108:2;56096:9;56087:7;56083:23;56079:32;56076:119;;;56114:79;;:::i;:::-;56076:119;56234:1;56259:63;56314:7;56305:6;56294:9;56290:22;56259:63;:::i;:::-;56249:73;;56205:127;55990:349;;;;:::o;56345:106::-;56389:8;56438:5;56433:3;56429:15;56408:36;;56345:106;;;:::o;56457:183::-;56492:3;56530:1;56512:16;56509:23;56506:128;;;56568:1;56565;56562;56547:23;56590:34;56621:1;56615:8;56590:34;:::i;:::-;56583:41;;56506:128;56457:183;:::o;56646:711::-;56685:3;56723:4;56705:16;56702:26;56699:39;;;56731:5;;56699:39;56760:20;;:::i;:::-;56835:1;56817:16;56813:24;56810:1;56804:4;56789:49;56868:4;56862:11;56967:16;56960:4;56952:6;56948:17;56945:39;56912:18;56904:6;56901:30;56885:113;56882:146;;;57013:5;;;;56882:146;57059:6;57053:4;57049:17;57095:3;57089:10;57122:18;57114:6;57111:30;57108:43;;;57144:5;;;;;;57108:43;57192:6;57185:4;57180:3;57176:14;57172:27;57251:1;57233:16;57229:24;57223:4;57219:35;57214:3;57211:44;57208:57;;;57258:5;;;;;;;57208:57;57275;57323:6;57317:4;57313:17;57305:6;57301:30;57295:4;57275:57;:::i;:::-;57348:3;57341:10;;56689:668;;;;;56646:711;;:::o;57363:164::-;57503:16;57499:1;57491:6;57487:14;57480:40;57363:164;:::o;57533:366::-;57675:3;57696:67;57760:2;57755:3;57696:67;:::i;:::-;57689:74;;57772:93;57861:3;57772:93;:::i;:::-;57890:2;57885:3;57881:12;57874:19;;57533:366;;;:::o;57905:419::-;58071:4;58109:2;58098:9;58094:18;58086:26;;58158:9;58152:4;58148:20;58144:1;58133:9;58129:17;58122:47;58186:131;58312:4;58186:131;:::i;:::-;58178:139;;57905:419;;;:::o;58330:751::-;58553:4;58591:3;58580:9;58576:19;58568:27;;58605:71;58673:1;58662:9;58658:17;58649:6;58605:71;:::i;:::-;58686:72;58754:2;58743:9;58739:18;58730:6;58686:72;:::i;:::-;58768;58836:2;58825:9;58821:18;58812:6;58768:72;:::i;:::-;58850;58918:2;58907:9;58903:18;58894:6;58850:72;:::i;:::-;58970:9;58964:4;58960:20;58954:3;58943:9;58939:19;58932:49;58998:76;59069:4;59060:6;58998:76;:::i;:::-;58990:84;;58330:751;;;;;;;;:::o

Swarm Source

ipfs://850af9605a5668c87edaf46edc5467a85c7bf65b774ca371a21750bc31addd0b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.