ETH Price: $2,502.29 (-2.02%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Uniques133967352021-10-11 10:24:261346 days ago1633947866IN
0x164B9511...8aCa78f0c
0 ETH0.0207266669.23936828

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
InventoryManager

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: InventoryManager.sol
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.7;

contract InventoryManager {

    address impl_;
    address public manager;

    enum Part { body, helm, mainhand, offhand, unique }

    mapping(uint8 => address) public bodies;
    mapping(uint8 => address) public helms;
    mapping(uint8 => address) public mainhands;
    mapping(uint8 => address) public offhands;
    mapping(uint8 => address) public uniques;


    string public constant header = '<svg id="orc" width="100%" height="100%" version="1.1" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">';
    string public constant footer = '<style>#orc{shape-rendering: crispedges; image-rendering: -webkit-crisp-edges; image-rendering: -moz-crisp-edges; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor;}</style></svg>';

    function getSVG(uint8 body_, uint8 helm_, uint8 mainhand_, uint8 offhand_) public view returns(string memory) {

        // it's a unique!
        if (helm_ > 40) return string(abi.encodePacked(header, get(Part.unique, body_), footer));

        return string(abi.encodePacked(
            header,
            get(Part.body, body_), 
            helm_     > 4 ? get(Part.helm, helm_)         : "",
            mainhand_ > 0 ? get(Part.mainhand, mainhand_) : "",
            offhand_  > 4 ? get(Part.offhand, offhand_)   : "",
            footer ));
    }


    constructor() { manager = msg.sender;}


    function getTokenURI(uint16 id_, uint8 body_, uint8 helm_, uint8 mainhand_, uint8 offhand_, uint16 level_, uint16 zugModifier_) public view returns (string memory) {

        string memory svg = Base64.encode(bytes(getSVG(body_,helm_,mainhand_,offhand_)));

        return
            string(
                abi.encodePacked(
                    'data:application/json;base64,',
                    Base64.encode(
                        bytes(
                            abi.encodePacked(
                                '{"name":"Orc #',toString(id_),'", "description":"EtherOrcs is a collection of 5050 Orcs ready to pillage the blockchain. With no IPFS or API, these Orcs are the very first role-playing game that takes place 100% on-chain. Spawn new Orcs, battle your Orc to level up, and pillage different loot pools to get new weapons and gear which upgrades your Orc metadata. This Horde of Orcs will stand the test of time and live on the blockchain for eternity.", "image": "',
                                'data:image/svg+xml;base64,',
                                svg,
                                '",',
                                getAttributes(body_, helm_, mainhand_, offhand_, level_, zugModifier_),
                                '}'
                            )
                        )
                    )
                )
            );
    }
    
    /*///////////////////////////////////////////////////////////////
                    INVENTORY MANAGEMENT
    //////////////////////////////////////////////////////////////*/


    function setBodies(uint8[] calldata ids, address source) external {
        require(msg.sender == manager, "not manager");

        for (uint256 index = 0; index < ids.length; index++) {
            bodies[ids[index]] = source; 
        }
    }

     function setHelms(uint8[] calldata ids, address source) external {
        require(msg.sender == manager, "not manager");

        for (uint256 index = 0; index < ids.length; index++) {
            helms[ids[index]] = source; 
        }
    }

    function setMainhands(uint8[] calldata ids, address source) external {
        require(msg.sender == manager, "not manager");

        for (uint256 index = 0; index < ids.length; index++) {
            mainhands[ids[index]] = source; 
        }
    }

    function setOffhands(uint8[] calldata ids, address source) external {
        require(msg.sender == manager, "not manager");

        for (uint256 index = 0; index < ids.length; index++) {
            offhands[ids[index]] = source; 
        }
    }

    function setUniques(uint8[] calldata ids, address source) external {
        require(msg.sender == manager, "not manager");

        for (uint256 index = 0; index < ids.length; index++) {
            uniques[ids[index]] = source; 
        }
    }

    /*///////////////////////////////////////////////////////////////
                    INTERNAL FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    function call(address source, bytes memory sig) internal view returns (string memory svg) {
        (bool succ, bytes memory ret)  = source.staticcall(sig);
        require(succ, "failed to get data");
        svg = abi.decode(ret, (string));
    }

    function get(Part part, uint8 id) internal view returns (string memory data_) {
        address source = 
            part == Part.body     ? bodies[id]    :
            part == Part.helm     ? helms[id]     :
            part == Part.mainhand ? mainhands[id] :
            part == Part.offhand  ? offhands[id]  : uniques[id];

        data_ = wrapTag(call(source, getData(part, id)));
    }
    
    function wrapTag(string memory uri) internal pure returns (string memory) {
        return string(abi.encodePacked('<image x="1" y="1" width="60" height="60" image-rendering="pixelated" preserveAspectRatio="xMidYMid" xlink:href="data:image/png;base64,', uri, '"/>'));
    }

    function getData(Part part, uint8 id) internal pure returns (bytes memory data) {
        string memory s = string(abi.encodePacked(
            part == Part.body     ? "body"     :
            part == Part.helm     ? "helm"     :
            part == Part.mainhand ? "mainhand" :
            part == Part.offhand  ? "offhand"  : "unique",
            toString(id),
            "()"
        ));
        
        return abi.encodeWithSignature(s, "");
    }

    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function getAttributes(uint8 body_, uint8 helm_, uint8 mainhand_, uint8 offhand_, uint16 level_, uint16 zugModifier_) internal pure returns (string memory) {
       return string(abi.encodePacked(
           '"attributes": [',
            getBodyAttributes(body_),         ',',
            getHelmAttributes(helm_),         ',',
            getMainhandAttributes(mainhand_), ',',
            getOffhandAttributes(offhand_), 
            ',{"trait_type": "level", "value":', toString(level_),
            '},{"display_type": "boost_number","trait_type": "zug bonus", "value":', 
            toString(zugModifier_),'}]'));
    }

    function getBodyAttributes(uint8 body_) internal pure returns(string memory) {
        return string(abi.encodePacked('{"trait_type":"Body","value":"',getBodyName(body_),'"}'));
    }

    function getHelmAttributes(uint8 helm_) internal pure returns(string memory) {
        return string(abi.encodePacked('{"trait_type":"Helm","value":"',getHelmName(helm_),'"},{"display_type":"number","trait_type":"HelmTier","value":',toString(getTier(helm_)),'}'));
    }

    function getMainhandAttributes(uint8 mainhand_) internal pure returns(string memory) {
        return string(abi.encodePacked('{"trait_type":"Mainhand","value":"',getMainhandName(mainhand_),'"},{"display_type":"number","trait_type":"MainhandTier","value":',toString(getTier(mainhand_)),'}'));
    }

    function getOffhandAttributes(uint8 offhand_) internal pure returns(string memory) {
        return string(abi.encodePacked('{"trait_type":"Offhand","value":"',getOffhandName(offhand_),'"},{"display_type":"number","trait_type":"OffhandTier","value":',toString(getTier(offhand_)),'}'));
    }

    function getTier(uint16 id) internal pure returns (uint16) {
        if (id > 40) return 100;
        if (id == 0) return 0;
        return ((id - 1) / 4 );
    }

    // Here, we do sort of a Binary Search to find the correct name. Not the pritiest code I've wrote, but hey, it works!

    function getBodyName(uint8 id) public pure returns (string memory) {
        if (id > 40) return getUniqueName(id);
        if (id < 20) {
            if ( id < 10) {
                if (id < 5) {
                    if (id < 3) {
                        return id == 1 ? "Green Orc 1" : "Green Orc 2";
                    }
                    return id == 3 ? "Green Orc 3" : "Dark Green Orc 1";
                }
                if (id < 7) return id == 5 ? "Dark Green Orc 2" : "Dark Green Orc 3"; 
                return id == 7 ? "Red Orc 1" : id == 8 ? "Red Orc 2" : "Red Orc 3";
            }
            if (id <= 15) {
                if (id < 13) {
                    return id == 10 ? "Blood Red Orc 1" : id == 11 ? "Blood Red Orc 2" : "Blood Red Orc 3";
                }
                return id == 13 ? "Clay Orc 1" : id == 14 ? "Clay Orc 2" : "Clay Orc 3";
            }
            if (id < 18) return id == 16 ? "Dark Clay Orc 1" : "Dark Clay Orc 2";
            return id == 18 ? "Dark Clay Orc 3" :  "Blue Orc 1";
        }

        if ( id < 30) {
            if (id < 25) {
                if (id < 23) {
                    return id == 20 ? "Blue Orc 2" : id == 21 ? "Blue Orc 3" : "Midnight Blue Orc 1";
                }
                return id == 23 ? "Midnight Blue Orc 2" : "Midnight Blue Orc 3";
            }

            if (id < 27) return id == 25 ? "Albino Orc 1" : "Albino Orc 2"; 
            return "Albino Orc 3";
        }
    }

    function getHelmName(uint8 id) public pure returns (string memory) {
        if (id > 40) return getUniqueName(id);
        if (id < 20) {
            if ( id < 10) {
                if (id < 5) {
                    if (id < 3) {
                        return id == 1 ? "None" : "None";
                    }
                    return id == 3 ? "None" : "None";
                }
                if (id < 7) return id == 5 ? "Leather Helm +1" : "Orcish Helm +1"; 
                return id == 7 ? "Leather Cap +1" : id == 8 ? "Iron Helm +1" : "Bone Helm +2";
            }
            if (id <= 15) {
                if (id < 13) {
                    return id == 10 ? "Full Orc Helm +2" : id == 11 ? "Chainmail Cap +2" : "Strange Helm +2";
                }
                return id == 13 ? "Full Plate Helm +3" : id == 14 ? "Chainmail Coif +3" : "Boar Head +3";
            }
            if (id < 18) return id == 16 ? "Orb of Protection +3" : "Royal Thingy +4";
            return id == 18 ? "Dark Iron Helm +4" :  "Cursed Hood +4";
        }

        if ( id < 30) {
            if (id < 25) {
                if (id < 23) {
                    return id == 20 ? "Red Bandana +4" : id == 21 ? "Thorned Helm +5" : "Demon Skull +5";
                }
                return id == 23 ? "Treasure Chest +5" : "Cursed Hood +5";
            }

            if (id < 27) return id == 25 ? "Blue Knight Helm +6" : "Parasite +6"; 
            return id == 27 ? "Dragon Eyes +6" : id == 28 ? "Horned Cape +6" : "Nether Blindfold +7";
        }
        if (id <= 35) {
            if (id < 33) {
                return id == 30 ? "Lightning Crown +7" : id == 31 ? "Master Warlock Cape +7" : "Red Knight Helm +7";
            }
            return id == 33 ? "Beholder Head +8" : id == 34 ? "Ice Crown +8" : "Band of the Dark Lord +8";
        }
        if (id < 38) return id == 36 ? "Helm of Evil +8" : "Blazing Horns +9";
        return id == 38 ? "Possessed Helm +9" : id == 39 ? "Molten Crown +9" : "Helix Helm +9";
    }

    function getMainhandName(uint8 id) public pure returns (string memory) {
        if (id > 40) return getUniqueName(id);
        if (id < 20) {
            if ( id < 10) {
                if (id < 5) {
                    if (id < 3) {
                        return id == 1 ? "Pickaxe" : "Torch";
                    }
                return id == 3 ? "Club" : "Pleb Staff";
            }
                if (id < 7) return id == 5 ? "Short Sword +1" : "Dagger +1"; 
                return id == 7 ? "Simple Axe +1" : id == 8 ? "Fiery Poker +1" : "Large Axe +2";
            }
            if (id <= 15) {
                if (id < 13) {
                    return id == 10 ? "Iron Hammer +2" : id == 11 ? "Iron Mace +2" : "Jagged Axe +2";
                }
                return id == 13 ? "Enchanted Poker +3" : id == 14 ? "Curved Sword +3" : "Ultra Mallet +3";
            }
            if (id < 18) return id == 16 ? "Disciple Staff +3" : "Assassin Blade +4";
            return id == 18 ? "Swamp Staff +4" :  "Simple Wand +4";
        }

        if ( id < 30) {
            if (id < 25) {
                if (id < 23) {
                    return id == 20 ? "Royal Blade +4" : id == 21 ? "Skull Shield +5" : "Skull Crusher Axe +5";
                }
                return id == 23 ? "Flaming Staff +5" : "Flaming Royal Blade +5";
            }

            if (id < 27) return id == 25 ? "Berserker Sword +6" : "Necromancer Staff +6"; 
            return id == 27 ? "Flaming Skull Shield +6" : id == 28 ? "Frozen Scythe +6" : "Blood Sword +7";
        }
        if (id <= 35) {
            if (id < 33) {
                return id == 30 ? "Dark Lord Staff +7" : id == 31 ? "Bow of Artemis +7" : "Ice Sword +7";
            }
            return id == 33 ? "Cryptic Staff +8" : id == 34 ? "Nether Lance +8" : "Demonic Axe +8";
        }
        if (id < 38) return id == 36 ? "Old Moon Sword +8" : "Lightning Lance +9";
        return id == 38 ? "Molten Hammer +9" : id == 39 ? "Possessed Great Staff +9" : "Helix Lance +9";
    }

    function getOffhandName(uint8 id) public pure returns (string memory) {
        if (id > 40) return getUniqueName(id);
        if (id < 20) {
            if ( id < 10) {
                if (id < 5) {
                    if (id < 3) {
                        return id == 1 ? "None" : "None";
                    }
                    return id == 3 ? "None" : "None";
                }
                if (id < 7) return id == 5 ? "Wooden Shield +1" : "Paper Hands Shield +1"; 
                return id == 7 ? "Dagger +1" : id == 8 ? "Pirate Hook +1" : "Offhand Axe +2";
            }
            if (id <= 15) {
                if (id < 13) {
                    return id == 10 ? "Offhand Slasher +2" : id == 11 ? "Large Shield +2" : "Bomb +2";
                }
                return id == 13 ? "Offhand Poker +3" : id == 14 ? "Reinforced Shield +3" : "War Banner +3";
            }
            if (id < 18) return id == 16 ? "Hand Cannon +3" : "Metal Kite Shield +4";
            return id == 18 ? "Crossbow +4" :  "Cursed Skull +4";
        }

        if ( id < 30) {
            if (id < 25) {
                if (id < 23) {
                    return id == 20 ? "Spiked Shield +4" : id == 21 ? "Cursed Totem +5" : "Grimoire +5";
                }
                return id == 23 ? "Offhand Glaive +5" : "Frost Side Sword +5";
            }

            if (id < 27) return id == 25 ? "Magic Shield +6" : "Enchanted Glaive +6"; 
            return id == 27 ? "Burning Wand +6" : id == 28 ? "Burning Shield +6" : "Burning Blade +7";
        }
        if (id <= 35) {
            if (id < 33) {
                return id == 30 ? "Holy Scepter +7" : id == 31 ? "Possessed Skull +7" : "Demonic Grimoire +7";
            }
            return id == 33 ? "Scepter of Frost +8" : id == 34 ? "Demonic Scythe +8" : "Lightning Armband of Power +8";
        }
        if (id < 38) return id == 36 ? "Ice Staff +8" : "Nether Shield +9";
        return id == 38 ? "Molten Scimitar +9" : id == 39 ? "Staff of the Dark Lord +9" : "Helix Scepter +9";
    }

    function getUniqueName(uint8 id) internal pure returns (string memory) {
        if(id < 47) {
            if(id < 44) {
                return id == 41 ? "Cthulhu" : id == 42 ? "Vorgak The War Chief" : "Gromlock The Destroyer";
            } 
            return id == 44 ? "Yuckha The Hero" : id == 45 ? "Orgug The Master Warlock" : "Hoknuk The Demon Tamer";
        }
        if (id < 50) {
            return id == 47 ? "Lava Man" : id == 48 ? "hagra the Zombie" : "Morzul The Ice Warrior";
        }
        return id == 50 ? "T4000 The MechaOrc" : id == 51 ? "Slime Orc The Forgotten" : "Mouse God";
    }
}

/// @title Base64
/// @author Brecht Devos - <[email protected]>
/// @notice Provides a function for encoding some bytes in base64
/// @notice NOT BUILT BY ETHERORCS TEAM. Thanks Bretch Devos!
library Base64 {
    string internal constant TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';

    function encode(bytes memory data) internal pure returns (string memory) {
        if (data.length == 0) return '';
        
        // load the table into memory
        string memory table = TABLE;

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

        // add some extra buffer at the end required for the writing
        string memory result = new string(encodedLen + 32);

        assembly {
            // set the actual output length
            mstore(result, encodedLen)
            
            // prepare the lookup table
            let tablePtr := add(table, 1)
            
            // input ptr
            let dataPtr := data
            let endPtr := add(dataPtr, mload(data))
            
            // result ptr, jump over length
            let resultPtr := add(result, 32)
            
            // run over the input, 3 bytes at a time
            for {} lt(dataPtr, endPtr) {}
            {
               dataPtr := add(dataPtr, 3)
               
               // read 3 bytes
               let input := mload(dataPtr)
               
               // write 4 characters
               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F)))))
               resultPtr := add(resultPtr, 1)
               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F)))))
               resultPtr := add(resultPtr, 1)
               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr( 6, input), 0x3F)))))
               resultPtr := add(resultPtr, 1)
               mstore(resultPtr, shl(248, mload(add(tablePtr, and(        input,  0x3F)))))
               resultPtr := add(resultPtr, 1)
            }
            
            // padding with '='
            switch mod(mload(data), 3)
            case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) }
            case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) }
        }
        
        return result;
    }
}

File 2 of 2: Inventory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Bodies1 {

string public constant body1 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0HBRElTUoycE1DGitDjEZSITNsLzKCqFmGQjzRtpj78Nr////3F57UAAAAAnRSTlMAAHaTzTgAAAJ0SURBVHhe7dQ/btswFAbwJCeIeAJTIux21WOVoRvfA1EPvYRFPEDo5haVD1DAQudCAIEeIPABMmUOUKBrx96lj7IU/0v3Dv04ePjx8aMNg1f/aP4nG5JLdDbmgtVm23Xrv/Ji93XXbfUZX4vsh+93uzR+ybfyedN1u3vhqev2+oQXX97d+7B5kW/y/JVn38TQyvUvmdhwjLHnzzGuLg8vbA1NrIEj2tklG3j/q+I3v/saXC45YZXnuIzMTezBFtbHPj9iZQjMj9jIeiJniWMM+sAFByx/Rsn3J1f4INy7Z1aWCeHxgZkfH9BzSCVhdmASftvI9AdGZvIsOTAQAdheZiIHIhD3XE5c0MDDz+KF0aYCN7FJZwN44eCF0IZTtlQxEnMglE2h5CNWFoiq2GPqEO0Ts0c9sgyTbcQhKTOWnploYhQGLx449iwVpZEamu25ACBnWFKLJdaK6JhBqwToB0Vtmn7iG4tQZkqEwA7usrlcEEcmH1yWzRnT4V5ay+y1sLuamElnCoEDMwChHricmJhynRXWB+m9a1utGuHZxBLvVNsNadt1qo48sfWE1aq42yTdth8xj5Iw8rXxXFtn4a6VfKorXvY+9qvbI4aSALfCVRD+tpSLT1wQByzIovRuPMtKrCdWnsiZmrDbtJ1vAoeqieGIuS7nQbhru3nTc5gzr7JnthzcnjdbI8xm2R84vSnaMJXyzdbKR+aq6d2BUwyhXqSnwzCTk/2nXBCUarPOhn+1k4EzBiizhRa2L7FKrMaa8pxVnng8xwZ9xgYtgh7YBMvlKSuLNLLywu6M6cAcgFfnDAQTI/iRp6g8Zc95ynj1PzvXIzG9J6eDAAAAAElFTkSuQmCC';
string public constant body10 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBREWGisuOko3CDs9VF9XE0GBJUOuN0bRtpj78Nr///+uf4lfAAAAAnRSTlMAAHaTzTgAAAJxSURBVHhe7dRPjtMwFAbwmTnBxCeoUyKXbVME+0aw9+jJEetRD2Dx9FyJVaXKL1yAWFxgpLnAIHasORTPmYT+G/Ys+LJIlJ/tz4miXP2j+Z9iSCnRxZgLVqt10yz/yvPN+02z1md8nWmYfL/Z5OmXfCvnm6bZ3AtPXbfXJzz/8Ok+xNWLfFOWrwKHLsVatn/JxIZTSj2/S2l3uXjl9tClPXBCN7tkA59/tmx/9XvwpeSEVVniNjF3qQdXuZD68oiVITDfUyfHE3lHnFLUB644ov2RJN+efBWicO//sHJMCI8PzPz4gIFjLomzA5Pwx05mf2FkpsCSAwMRgOtlTuIo1+KB7cQVDTy8liCMLhf4iU1eGyAIxyCELp6yo5aRmCOhDIqWj1g56W5Tj7lDtM/MAfXI5IhcJz4UMKMNzEQTozAE8cipZ6mwRmpo9swVAHnDkr1YZq2Ijhm0yoBhUNSm6ye+cQi2UCIEbnBfLGSDODKF6ItiwZgXD9Jqi9fC/mpiJl0oBI7MAIR6YDsxMZW6qFyI0ntX11p1wrOJJcGruhlS18tcnXhiFwjbXXW3yrqu32CZJHHkaxN477yDu1rydt/ytg+p390eMVgCXAu3UfjrVjY+cUUcsSKH0rsKLEdmPbEKRN7sCZtV3YQucmy7FI+Y93YRhZu6WXQ9xwXzrvjDjqN/5tXaCLPZ9gfO/xRtmKw82VKFxNx2vT9wjiHU8/zrMMzkZfwpVwRWrZbF8FV7uXHGALaYa2H3EqvMaqyx56zKzOM6LuozNugQ9MAmOranrBzSyCoI+zOmA3ME3p0zEEyMEEaeosqcgZ8vx63/BonNWyIQPbgXAAAAAElFTkSuQmCC';
string public constant body11 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBREWGisuOko3CDs9VF9XE0GBJUOuN0bRtpj78Nr///+uf4lfAAAAAnRSTlMAAHaTzTgAAAJnSURBVHhe7dQ/jtQwFAbwhRNsfILNLJGHdjMI+omgz+rJI+rVHMDi6XkpR4r8hQsQi44KwQUW0dFxK57DZP4uPQVfGks/Pz/nny/+0fxPMWamKYttztgslk1z81e+Xr9eN8vyhJ9kGovv1utd+Tk3zfpuz8XlMV+/eXcX4uJRNrPZs4DQp1jr9s9ZYJFSGvAqpc0ZX1auoz51hMTu6pwtvf+8Qvt16MjPNEesrfn+J7D5NZCrXEjD7ICNFbLfU6/Xg3gnSCmWe64QmX4kzacHX4WoPPgdGwdh+vYFwLcvHBDRpyFe7VmU3/Za/QEMSIBmzyRC5AatSYg6Vg9oJ65k5PGxBGV2uYGf2Oa1iYJyDErs4jE7WYEFiMI6KbY4YONIZJUGzj1Uh8wIfLVlLRbXq1NWgNsAiEzMyhTUI9IAILYWcccVkXgLTYcxsTQih0ylycBhVC5tP0z81DG1hVERcqP7Yq4b5C1LiL4o5mB0QECUtniu7C8mhpSFYUIEiITLkduJBaI/T+VCROTbui5Nr3w1sSZ4Uzdj6vomt06Y2AXh1aa6XWRd1i94ljS7920DOucd3daal90K90NIw+bygKkV4qXyKip/vD/4mCpB5Eoca99FgF6Zy4lNEPG2E24WdRP6iLjqUzxgdO08Kjd1M+8HxDmwKXbsEP0fXiytMuz9sOd8ppQW0uqd3ZiQgFU/+D3nWOHyOh8dFhCv84+5EmpN/vcNiXgtOGGitrguld1jbDKbbZv2/PDIvF3HxfKELTumcmQbHdpjNo5lyyYo+xOWPSMSNqdMQhMzhS1PMbOckf8Mt/wbNGNcM08aRf4AAAAASUVORK5CYII=';
string public constant body12 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0XFCUHBREWGisuOko3CDtXE0GBJUOuN0bRtpj78NpMomIeAAAAA3RSTlMAAAD6dsTeAAACP0lEQVR4Xu3TTW7bMBQEYBc+gaCLSFUgKuvI7QXsEzB49F4AH7M2YI7aZRehjlD0Bs3lOlSs+CfNBYqONwI+kCNaj6t/N/+zbpjqFj4VRTFzNzGHj3g9Zn6uPmAuZtLn1yXXzN77mTHwBd6zopsVYP87XrWu3U9JBJN31Xs2cmhxtF2KMjTMFbPaHzrgxz0XNy5Mqbng0qiYMU1pfjen7I/VmVtELyON8W2I5DS8cemgXl4AfH+ZYkDEOKVYnVnJv7g0/U5HQAOYM4uqyDfQf8LzmR5gF241857lSDHv5HLBsLDJe4uQU8zkXbxmp3uoA6JK4KEsLrh07OY/ytZZU2YEX51Y2edGumQFvA2A6sKeLIEeMSUA0RrEN25FdDBgjrTM1Vr1kqVaZ/BhVl+ZMS28dl7sak1RcbMPebCSP7GGyEN08HnzwFa7uj9/EzLYs/aCCIior2a2Cyu0qYvWhcjex76vy5FcLcyEoex3c/r+oWD1hIVdUL8/tI+brNv+i28m5u17m4CjG5w89szX4x5PicN2WF2wWBW/Je8j+fnpYphaRfStOs/eTQB/mauFy6A6mKP63abfhTEicjLiBef5j+Rdv+vGhNgBrF7YIQ6vvNkaMsxTOnPBO1MbqOXJHsowAfsxDWfOMerru922LgygvGXVNbcqttw8FPNUD7yUNyxii7ua7P7GZebyVGNvuWwyn/Zxsb5h452XemYTHew1l87rictAHm5Yz4woONyyqCzsJZAvUzY5M78+nvgPc5VkmwGxpe0AAAAASUVORK5CYII=';
string public constant body13 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBREqL0c9U2NRcnxgIy6fPTKxaT3RtpjUn1778Nr///+K88C9AAAAAnRSTlMAAHaTzTgAAAJxSURBVHhe7dRPjtMwFAbwmTnBxCeoUxRXLJsK2DeIC0wv4JGey9ZC71kVqy7iR04w0hyAyFxgBDvWHIrnTEL/DXsWfFkkys/250RRrv7R/E8xpJToYswFq9W6aZZ/5fnm/aZZ6zO+zjRMvtts8vRLvpXzTdNs7oSnrtvrE55/+HQX4upFvinLV4FDl2It279kYsMppZ7fpbS/XLxyLXSpBU7oZpds4PPPLdtffQu+lJywKkvcJeYu9eAqF1JfHrEyBOZ76uR4Iu+IU4r6wBVHtD+S5NuTr0IU7v0fVo4J4fGBmR8fMHDMJXF2YBL+2MnsL4zMFFhyYCACcL3MSRzlWjywnbiigYfXEoTR5QI/sclrAwThGITQxVN2tGUk5kgog6LlI1ZOurepx9wh2mfmgHpkckSuEx8KmNEGZqKJURiCeOTUs1RYIzU0e+YKgLxhSSuWWSuiYwatMmAYFLXp+olvHIItlAiBG9wXC9kgjkwh+qJYMObFg7Ta4rWwv5qYSRcKgSMzAKEe2E5MTKUuKhei9N7XtVad8GxiSfCqbobU9TJXJ57YBcLtvrpfZV3Xb7BMkjjytQncOu/gvpa8bbe860Pq97dHDJYA18LbKPx1JxufuCKOWJFD6V0FliOznlgFIm9awmZVN6GLHLddikfMrV1E4aZuFl3PccG8L/6w4+ifebU2wmx2/YHzP0UbJitPtlQhMW+73h84xxDqef51GGbyMv6UKwKrVsti+Kq93DhjAFvMtbB7iVVmNdbYc1Zl5nEdF/UZG3QIemATHdtTVg5pZBWE/RnTgTkC788ZCCZGCCNPUWXOwM+X49Z/A1WcaDsbs7kvAAAAAElFTkSuQmCC';
string public constant body14 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBREqL0c9U2NRcnxgIy6fPTKxaT3RtpjUn1778Nr///+K88C9AAAAAnRSTlMAAHaTzTgAAAJnSURBVHhe7dQ/jtQwFAZw4AQbn2Azi+IR5WYE9BPEBXYukJWeh9ZC75ktp4g/UlKBOACRucAKOkpOxXN2Mn+XnoIvjaWfn5/zz0/+0fxPMWamKYttztgslk1z/Ve+Wr1ZNcvyhJ9mGotvVqtd+Tk3zepmz8XFMV+9fX8T4uJRNrPZ84DQp1jr9s9ZYJFSGvA6pc0ZX1Suoz51hMTu8pwtffi0Rvtl6MjPNEesrfnuF7D5PZCrXEjD7ICNFbI/Uq/XvXgnSCmWe64QmX4mzfd7X4WoPPgdGwdh+voZwNfPHBDRpyFe7lmU3/Va/REMSIBmzyRC5AatSYg6Vg9oJ65k5PGxBGV2uYGf2Oa1iYJyDErs4jE7WYMFiMI6KbY4YONIZJ0Gzj1Uh8wIfLllLRbXq1NWgNsAiEzMyhTUI9IAILYWcccVkXgLTYcxsTQih0ylycBhVC5tP0z8zDG1hVERcqP7Yq4b5C1LiL4o5mB0QECUtnih7J9MDCkLw4QIEAmXI7cTC0R/nsqFiMi3dV2aXvlyYk3wpm7G1PV1bp0wsQvC6011u8i6rF/yLGl279sGdM47uq01r7o17oaQhs3FAVMrxEvldVT+dnfwMVWCyJU41r6LAL0ylxObIOJtJ9ws6ib0EXHdp3jA6Np5VG7qZt4PiHNgU+zYIfoHXiytMuzdsOd8ppQW0uqdXZuQgHU/+D3nWOHyKh8dFhCv84+5EmpN/vcNiXgtOGGitrgqld1jbDKbbZv2/PDIvF3HxfKELTumcmQbHdpjNo5lyyYo+xOWPSMSNqdMQhMzhS1PMbOckR+GW/4D0zNpCQF5gDcAAAAASUVORK5CYII=';
string public constant body15 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0XFCUHBREqL0c9U2NgIy6fPTKxaT3RtpjUn1778NrKz+9kAAAAA3RSTlMAAAD6dsTeAAACRElEQVR4Xu3STW7bMBQEYBe+QARdRKoC0cg2cnsB+wQKHr0nwEdka8Ccqjdol12E0A2KXK5DxfJf2gsEHW0IfiZHtLj4uPmfZcNUt/CpKIqJVyOz/xcvh8wv1Tx9d81czKTP89wls/dhYji+wHtWTNUA2P+OF61td2MSweht9Z6N7Fsc+lWK4hrmilnt9yvg1wMXNzaMqbng0qiYIY0ptzur7I/1mVtELwON8W2I5OROXFqol1cA31/HGBAxjClWZ1byTy5Nv9MB0ADmzKIq8g30H/Ac0wP6mVvNvGM5Usw72VzgZjacERFyipm8jddsdQe1QFQJPFSPCy4tu/mPsnXSlBnBV0dW9tmBLlkB3wdAdWZPlkCPGBOA2BvEE7ci6gyYAy1ztVS9ZKmWGXyY1FdmSDMvrZd+saSo2MldvljJH1lD5CFW8HnzwNZ+8UB2i5nBnqUXREBEfTVxP7NCm7pobYjsfeq6uhzI1cxMcGW3ndJ1jwWrR8xsg/rdvn1aZ910X3wzMqfvbQIO1ll56pivhx2eUxjT/u6CpVfxG/Iukl+eLy5Tq4i+VevZuw7gk7meuQyqzhzUb9fdNgwRkTcjXnC+/5G87barISGugH1xYovo3ni9MWSY53Tmomma2kB7nuyxDCOwG5I7c45RX99vN3VhAHX8/TW3Kn25fiymW+04ccMifXFfk+3fuMxcHmv6Wy6bzMd9bKxv2HjrpZ7YRIv+mkvr9chlILsb1jMjCva3LCozewlHnlM2ORO/DfOI8Acb+XAdYpJl1wAAAABJRU5ErkJggg==';
string public constant body16 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUKCgoHBREMDhQeKjAxRUk+EhtlJx2FSSerbDTRtpj78Nr/+vpFIU9bAAAAAXRSTlMAQObYZgAAAklJREFUeF7t1DGO00AUBuDMDcZBntDGEdDHiAtsLuCV3liUFnpvIlGl8PzmAnjEBVbaCyyio+ZyPGdjbJxNT8HvJtKn53+sPM3qn87/ZBp7U81uX5bbm7w+vD+Ue3tz+O5wuD1uyvJwd5vXHz7dhbh7kU2WvQoIXYqFHv+aBQ4ppR7vUjpdj+e+pS61hMTeXrOjzz9rVL/6lppMs6zmYwK61JPPfUj93I0Tct9Tp8+TNF6QUrSzYkSufiTNt6cmD1G5b6ZhD2F6fADw+MABcSiJdmJR/tjp9BcwIAGaiUmEyPc6kxBFSD2gGjmXMyNpZVBmPxQ0IzsRJqKgHIMS+/g3e6nBAkThkFKsMGPjSaROPQ8dqv3ACGwvrMPiO3UaFOAqACIjszIF9YjUA4iVQ/zDOZE0DpoW50RrROZM1gzA4axsXdePbDxTtTIqQv7szWqjB+QLS4j6ERswWiAgSrV6Pf0nytAew4QIEAnbM1cjCySzuk4hIvJ9UVjTKduRNaExRXlOUWyH6oSRfRCuT/n9btB98YYz1WldXEDrG0/3heZtW+PYh9SfVjOmSoj3ynVU/nqcLVMuiJyLZ+3dBegz8LQsQaRxrXC5K8rQRcS6S3HGaKtNVC6LctP1iBvgNF/U2Dzzbu+U4Y698uxOsQ5S6ZdtTUhA3Y0nG+OE7Xq4OhwgzdUVlAtVZrd93uphdMFE1Wptlf1LbAY2l5rqSjPl8T0+2gU79kz2zC56LMaNZ7mwCcrNgmViRMJpySQ0MlNYcjbETj8v8Bs7mRlGCf3DNgAAAABJRU5ErkJggg==';
string public constant body17 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUKCgoHBREMDhQeKjAxRUk+EhtlJx2FSSerbDTRtpj78Nr/+vpFIU9bAAAAAXRSTlMAQObYZgAAAkxJREFUeF7t1DGu00AQBuDsDdZBdmjjCOhjxAVeLuAnzVqUFprZUKbwjrkAXtFRPfEu8BAdHcfj37w4NgnpKRg3lj6P/7E98uKfrv+VoexNNZttVa1v8nL3dldt7c3mu93udrupqt3dbV6++3Dnw+avbLLshVffx1Bi/GsWLTTGOOibGA/X7bnrqI8daWRnr7mgj18brb8NHbUZ6jKa9z9VD78GcrnzcZi7KYSK77HH8SStE0wR7CxYA9OPiPry1OY+gId2anYqTI8Pqvr4wF6D9nEIdmIBv+/R/UlZVbyiJiYRIjegJ2rAOdxrfY6WIx9fiwezSwHn8EIQTeTBwYPYhT/ZSaMsqkEYF4VaZ2wcsps4cMqADonVsz0xmsX1cEqqyrVXFRmZweThQeOgiKgLDWfOiaQtFNXBElsjMmeyJgH7o7It+mFk45jqhYEIueSYeYUB+cTiAx5ipZxu7pFaL15O3wSsyDFMGlSJhO2R65FFJbNYJx+Qe1+W1vRgOzLKt6asjlWW6xQddWTnhZtDfr9Jui1fcQad1qXw2rnW0X2Jet01uh+wbIfFjKkW4i24CeDP+9ky5aKBc3GM3I1XHImnZfEibdEJV5uy8j3Gb/oYZqxdvQrgqqxW/aBhpXqYL2pon3mzLcBa7DHZ/J9iC5UaT7Y2Pqo2/TjZtFBsl+nXUahKe/ULyoVqs1k/b3VqvWDCV11asPsbm8TmFFNfaQYe7+OCveCCHZN9Pg1OL9qNYzmx8eD2gmViDaSHSyahkZn8JWep7HR6gt+CFhlYAsKSOAAAAABJRU5ErkJggg==';
string public constant body18 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUKCgoHBREMDhQeKjA+EhtlJx2FSSerbDTRtpj78Nq/Q00PAAAAAXRSTlMAQObYZgAAAh5JREFUeF7t1EFu2zAQBVDzBnQg2uvI7QXsEygYai9ghlkL8Hy1yy5CHqHoDZrbdqhYlWsnPUDRvxLwMBwK+tDm383/uK3Ff8i7Yhk/HJ4qv/i/DZfsP9i7nxmDXeCeBfM0gHf3N7HpSyZC4ejvOdDY4NztstKwtdyu5nEHfNvb8Damkq/dBaEw5ZLnu0VBKepXbqBMU5nDTVLjPKzDEcL0CuDra9EExVSy+pXF+IeN5p/5DEiCZWUSIfoC8+9gETJP6BZupHJvy5G1nhTrgmHhUM8mMs5aiaP+yVF6SARUKJWiHa7YRRLpS2aRWXNlJPYXtmGJkzlVBbhLgMjCbEzJXFEyAO0C9Dc3RDIEWM6Yo96JXDN5V4HTrOzDlBd2kanbOBOhOPtQi5X5wpJ0sKqB6+EJKt1mv34TY9gexwQFiIT9zN3CArH6NzEplJ/a1rvJ2C9sSYNrT3Pa9nHuNBaOSbgfm6dD1WP7ibema11CwjkOkZ5ay+dzj+ecSh43V0ydEB+NezV+eb4qUyNQbiSy7T0kJKTKa1mSyBDOwqdDe0qTQq0ZesW1/2p8ak+7KUN3wHhdVB3e+HAMxgjPeeVN/SkESGdv9uhSAfppudlaKPYPp6PfBECGu59II9S5w+Nbq+voDRN1mwdvHN9jV9ld1nR3ujVezonqbzhwZPIzB424GXeR5cIuGQ83LCtDCeMtk9DCTOmWtzV+fbzAL1C98ZPm59jjAAAAAElFTkSuQmCC';
string public constant body19 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0HBREtJUA1PmNDGitFRSJIaH9RXzJgeUFgm5LRtpj78Nr///+9UF/4AAAAAnRSTlMAAHaTzTgAAAJySURBVHhe7dS/itwwEAbwu3uCs55gZYvdkNKjnIt0mgGFhbzEJjhbrwUDThsW5w1u+4BBpL/m+oOQNmXeJSOvffvv0qfIp8LFz6NPNsZX/2j+JxuSS3Q25oLVett1q7/yfPd11231GV+L7Ifvd7s0fsm3cr3put298NR1e33C8y/v7n1Yv8g3ef7Ks29jqOX4l0xsOMbY86cYN5ebF7aBNjbAEe3skg28/1Xxm999Ay6XnLDKc1xG5jb2YAvrY58fsTIE5kdsZT2Rs8QxBn3gggOWP6Pk+5MrfBDu3TMry4Tw+MDMjw/oOaSSMDswCb9tZfozIzN5lhwYiABsLzORAxGIey4nLmjg4bV4YbSpwE1s0t4AXjh4IbThlC1VjMQcCOWmUPIRKwtEVewxdYj2idmjHlmGybbikJQZS89MNDEKgxcPHHuWitJIDc32XACQMyxpxBJrRXTMoFUC9IOiNm0/8Y1FKDMlQmAHd9lCDogjkw8uyxaMaXMvrWX2WthdTcykM4XAgRmAUA9cTkxMuc4K64P03tW1Vq3wbGKJd6ruhtT1KlVHnth6wmpT3K2TbusPmEdJGPnaeG6ss3BXSz42FS97H/vN7RFDSYBb4SoIf1vKwScuiAMWZFF6155lJdYTK0/kTEPYrevOt4FD1cZwxNyUiyDc1d2i7TksmDfZM1sObs/rrRFms+wPnP4p2jCV8mQr5SNz1fbuwCmGUM/Tr8Mwk5P7T7kgKNV6lQ1ftZOBMwYos7kWti+xSqzGmvKcVZ543McGfcYGLYIe2ATL5SkrizSy8sLujOnAHIA35wwEEyP4kaeoPGXPecp49D8JjjL/IUjL1QAAAABJRU5ErkJggg==';
string public constant body2 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAMDA0HBRElTUoxDiYycE1DGitDjEZSITNsLzKCqFmGQjy51O7Rtpj78Nr///8fK+DDAAAAAnRSTlMAAHaTzTgAAAJuSURBVHhe7dS/jtQwEAZw4AkufoLLRtYelBmsvYaX8GhkceIpNjKfFInmECL7AEgbUaNILuhP21LS09GeREFJQcU4bPYv9BR8aSz9PB7nnx/8o/mfYsxMUxbbnLFZrfv+9q98tXm/6dflCT/MNBbfbTa78nPu+83dnouLY7569/wuxNUf2cxmjwNCm2Kn2z9ngUVKacDblJZnfFG5htrUEBK7y3O29OLTAk8/Dw35meaItTXf/ABe/hzIVS6kYXbAxgrZb6nV6168E6QUyz1XiEzfk+bjva9CVB78jo2DMH39AuDrFw6IaNMQL/csys9arX4FBiRAs2cSIXKD1iREHasH1BNXMvL4WIIyu9zAT2zz2kRBOQYldvGYnSzAAkRhnRRrHLBxJLJIA+ceqkNmBL7cshaLa9UpK8B1AEQmZmUK6hFpABBri7jjiki8habBmFgakUOm0mTgMCqXth0mfuSY6sKoCLnRfTHXDfKWJURfFHMwGiAgSl08UfYPJoaUhWFCBIiEy5HriQWiP0/lQkTk664rTat8ObEmeNP1Y7ruNrdOmNgF4cWyul5lXXeveZY0u/dtAxrnHV13mjfNAjdDSMPy4oCpFuK18iIqf7g5+JgqQeRKHGvfVYBemcuJTRDxthHuV10f2oi4aFM8YDT1PCr3XT9vB8Q5sCx27BD9b16trTLszbDnfKaUFlLrnd2akIBFO/g951jh8iofHRYQr/OPuRKqTf73DYl4LThhorq4KpXdn9hkNts29fnhkXm7jovlCVt2TOXINjrUx2wcy5ZNUPYnLHtGJCxPmYQmZgpbnmJmOSP/Hm75F5kCSrfTKpRrAAAAAElFTkSuQmCC';
string public constant body20 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAMDA0HBREtJUAxDiY1PmNDGitFRSJIaH9RXzJgeUFgm5K51O7Rtpj78Nr////ACsCMAAAAAnRSTlMAAHaTzTgAAAJySURBVHhe7dQ/ihsxFAbwJCfY0Qk8HsQ6pJsXsW5yCT0eKGxOsSFM3NoofDCkDGZyg3UfGBCkSpkDbLX1QiBlmjR5mvXYXnvTp8inRvCbpzf/pCf/aP6nGDLVlMU2J2wW6667+iufbz5vunV5xE9V7ouvN5td+Sl33eZ6z8XZQz7/9Po6xMWjbKbT5wGhTbHR2z9lgUVKqcf7lJYnfFa5FbVpRUjsJqds6c23OV5+71fkp5pDzq358hfw4XdPrnIh9dMDNlbI/kitjjvxTpBSLPdcITL9TJqvd74KUbn3OzYOwnR7A+D2hgMi2tTHyZ5F+VWr1R/BgARo9kwiRK7XmoSoc/WAeuRKBh5eS1Bmlxv4kW1emygox6DELj5kJ3OwAFFYL4o1Dtg4EpmnnnMP1T4zAk+2LE7EteqUFeA6ACIjszIF9YjUA4i1RdxxRSTeQrNSy1wakUOm0mTgMCiXtu1HfuaY6sKoCLnBfTHTG+QtS4i+KGbgvHhAlLp4oeyfjAwpC8OECBAJlwPXIwtEN0/lQkTki6YpTas82bFI8KbphjTNVW6dMLILwvNldbHIum7e8lQ17b63DVg57+ii0bxbzXHZh9Qvzw6YaiFeK8+j8pfLg5+pEkSuxLH2XQToyFyObIKItyvhbtF0oY2I8zbFA8aqnkXlrulmbY84A5bFjh2iv+fF2irDXvZ7zmdKaSG1PtmVCQmYt73fc44VLs/z0WEB8Xr9Q66EapP3viERrwVHTFQX56Wye4xNZrNtU58eHpm367hYHrFlx1QObKND/ZCNY9myCcr+iGXPiITlMZPQyExhy2PMNGfg++mW/wDQL1pjMGSBkAAAAABJRU5ErkJggg==';

}

contract Bodies2 {

string public constant body21 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0XFCUHBREtJUAxDiY1PmNDGitFRSJIaH9RXzJgm5LRtpj78NpmB1zFAAAAA3RSTlMAAAD6dsTeAAACUklEQVR4Xu3SQYrbMBgF4Ay5wBhfxK6NmDBL/xWTfXddWvwg5gSznlJMtklVHm73IQeYInyE0ht07tInT1wnmfYCpW8l/i/Sk4MW/27+Z1kxxSVcZVk28mpgtn/jZZ/4qZjG11dnzM1MfDPNTpm9tyOj5QVes2KsBsD+V7yobb0eoggGZ4vXbOTzO+zePsQgbcWcMavdpwfg23turqwfYnXCuVExfRzieDer7A/lzDWCk57GuNoHcmx/c26hTp4BfH0egkdAP8RQzKzkH9waf8YdoB7MzKIq8gX073Bc0z2aiWtNvGY5Ykgn2VTQTmw4ERFyDImcDedsdQ21QFDx/KgGJ5xbdvMfZeuoMTG8K4+s7LM9XZICrvGA6sSOLJ4eMEQAoTGs0eKFaxFtDZgdLXGxVD1lKZYJnB/VFaaPEy+tk2axpKjY0dv0sKI7svrQ8qnBpcM9W5vFLZmzI4M9SycIgIi6YuRmYoVWZVZbH9h713Vl3pOLiRnf5t1hTNc9ZqweMLH16tbb+m6TdN99cNXAhCNfGY+dba3cdczH3Rr30Q9xe33C0qi4PXkdyE/3vPjEtSK4Wq1j78bDwycuJ869amt26g6b7uD7gMCXEWZmd7MK5EN3WPURYQVss99sEdoX3uwNGeY+zpxVVVUaaMMve8z9AKz72M6cYtSVN4d9mRlAW/7+nGuVJt88ZuOrbjm4YJEmuynJ9k+cJ86PNc0l51Xi4zk2lBdsnHVSjmyCRXPOuXV65NyT2wvWmREE20sWlYmd+JnH5FXKyC/LtCL8Al/neo8gyvdyAAAAAElFTkSuQmCC';
string public constant body22 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBRENDCAaHTQtOFA3CDtAWGpXE0GBJUPRtpj78Nr///9LdwXWAAAAAnRSTlMAAHaTzTgAAAJxSURBVHhe7dQ/btswFAbwJCeIeAJTot3OfHSGjnyPcIdOFh8EdExbwQeowKFrYag3iA+QKXPQoVvnHqqPslT/S/cO/TRI0I/kRwmCrv7R/E8xpJToYswFq8227+//yovdt12/1Wd8LbKf/LDb5emXfCvnm77fPQhPXbfXJ7z4+vYhxM2LfFOWrwOHJsVWtn/JxIZTSh1/Sml9uXjlamhSDZzQzS7ZwLufS7a/uhp8KTlhVZa4SsxN6sBVLqSuPGJlCMz31MjxTN4RpxT1gSuOaH8kyZdnX4Uo3Pk/rBwTwtMjMz89YuCYS+LswCT8ppHZ7xmZKbDkwEAE4DqZkzjKtXhgO3FFAw+vJQijywV+YpPXBgjCMQihi6fsaMlIzJFQBkXLR6ycdC9Th7lDtMvMAfXI5IhcIz4UMKMNzEQTozAE8cipY6mwRmpotucKgLxhSS2WWSuiYwatMmAYFLVpuolvHIItlAiBG9wXc9kgjkwh+qKYM+bFg7Ta4pWwv5qYSRcKgSMzAKEe2E5MTKUuKhei9N61rVaN8GxiSfCq7Ye07X2uTjyxC4TLdXW3ybptP2CZJHHkaxO4dt7BXSv5WC951YXUrW+PGCwBboWXUfjzSjY+cUUcsSKH0rsJLEdmPbEKRN7UhP2m7UMTOS6bFI+YazuPwn3bz5uO45x5Xfxhx9HvebM1wmxW3YHzP0UbJitPdq9CYl42nT9wjiHUi/zrMMzkZfwpVwRWbe6L4av2cuOMAWyx0MLuJVaZ1Vhjz1mVmcd1XNRnbNAh6IFNdGxPWTmkkVUQ9mdMB+YIvD5nIJgYIYw8RZU5A+8vx63/BuOwBpEXjEwbAAAAAElFTkSuQmCC';
string public constant body23 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBRENDCAaHTQtOFA3CDtAWGpXE0GBJUPRtpj78Nr///9LdwXWAAAAAnRSTlMAAHaTzTgAAAJoSURBVHhe7dS9jtQwEAfwgye4+AnOG+9CnXGuoPSMtYhy41EkygOifQAsF7RoFd7gtkW6hqtPFHQ0vBbjXLKfdz0F/zSRfhnP5MsX/2j+pxgyk+hizBmr9abvb57lxfbbtt/oE36RaSi+3W6l/Dnu++3tnovLY158fXvrw/pJVrPZa8++TaGT8c+Z2HBKKfKnlFZnfFnaBtrUACe0V+ds4N33mqsfsQE3kxyxtMblb+bVnwi2tD7F2QErQ2B+plaOB3KWOKWg91xyQPiVJF8eXOmDcHQ7VpYJ4f6Ome/v0HPgNsVwtWcSftNK9XtGZvIs2TMQAdgoNYkDEYh7riYuaeDhsXhhtLmBm9jktQG8cPBCaMMxW6oZiTkQykWh4gNWFojqFDH3EI2Z2ePVyFJMthWHrMxYeWaiiVEYvHjgFJk5VIbDjksAcoYljVhmrYgOGbTKgH5Q1KaNE7+0CFWhRAjs4K6Yy4A4MvngimLOmBf3HKgqXgm7i4mZdKEQODADEOqBq4mJaaaL0vrAAa+7TqtW+GpiiXeq64d03U1unXhi6wnrVXm9zrrpPuAsSXbv23hurLNw3Uk+NjUvo09xdXnAUBHgRrgOwp+XBx9TSRywJIvSd+1Zjsx6YuWJnGkI+3XX+zZwqNsUDpibah6E+66ft5HDnHlV7NhycI+83hhhNsu457ynaMNUyZ3dKJ+Y6za6PecYQr3IW4dhJifXH3NJUKn87ysgclJwwgBVsdDC9ilWmdXYpjrfPDKP69igT9igRdADm2C5OmZlkUZWXtidMO2ZA/DqlIFgYgQ/8hQ1yxn48XTkv7LlB+ReM+zgAAAAAElFTkSuQmCC';
string public constant body24 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0XFCUHBRENDCAaHTQtOFA3CDtAWGpXE0HRtpj78NpO583sAAAAA3RSTlMAAAD6dsTeAAACQ0lEQVR4Xu3SwW3bMBgFYBdeIAIXkSrRyV0/nQHEn8jd5oPQHtNC8LkIoQ0Mb1CgGzTL9VG1YtlpFyj6fCH4mXyixNW/m/9Z10x5Cx+Koph4MzK7v/G6z/xSztN318zFTPo4zy2ZvQ8To+MDvGfFVA2A/e941bhmOyYRjN6V79nKrsG+3aQoXc1cMav9bgN8e+Di2oUx1Qs2VsX2aUzTszllf6wu3CB66WmMb0Ikp+6NjYN6eQXw+XWMARH9mGJ5YSX/4NL0M+0BDWAuLKoin0D/Ds8xPaCdudHMW5YjxbyTywXdzJYzIkJOMZN38ZqdbqEOiCqBh2qxYOPYzTfK1klTZgRfnlnZ53q6ZAV8GwDVmT1ZAj1iTABiaxHfuBHRzoLZ0zKXa9UlS7nO4MOkvrR9mnntvLSrNUXFTd7li5X8mTVEHmIDnzcPbG1XD2TOnRnsWXtBBETUlxO3Myu0rorGhcjex2GoTE8uZ2ZCZ4bTlGF4Llg9YmYX1G93zeMh63H44uuRefveNmDvOiePA/N1v8VTCmPa3S1YWhV/JG8j+eVpcZkaRfSNOs/eQwB/mauZTVDt7F796TCcQh8ReTPigvP9j+TTcNr0CXED7Io3dojdbz4cLRn2KV24qOu6stCWJ3s2YQS2feounGPVV/enY1VYQDv+/5obldYcnovpVnecuGGRtrivyO5PbDKbc017y6bOfN7HxeqGrXdeqoltdGiv2TivZzaB3N2wXhhRsLtlUZnZS1hwjqlzJv49zCPCL7LLLAG58SauAAAAAElFTkSuQmCC';
string public constant body25 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0HBRFubZSRm7GYFUvO1tzRtpjWJyfvY0778Nr////PB9XoAAAAAnRSTlMAAHaTzTgAAAJtSURBVHhe7dS/btswEAbwJE8Q8QlCiTYKdNMxamfegSjgza0KzRZxHbRnyFwD6hvEL5ChXQuhKF+uR1mK/6V7h34cPPx4/GjD4NU/mv/JxuQSnU25YNVs+379V17svu36rT7ja5H98NNul8Yv+VY+b/p+9yQ8d91en/Di64cnH5pX+SbP33j2XQy1XP+SiQ3HGAf+HOPm8vDCttDFFjiivbtkA6tfFb+PQwsul5ywynNcReYuDmAL6+OQH7EyBOZH7GQ9k7PEMQZ94IIDlt+j5PezK3wQHtwLK8uE8PjAzI8P6DmkknB3YBJ+18n0F0Zm8iw5MBAB2EFmIgciEPdczlzQyOPP4oXRpgI3s0lnA3jh4IXQhlO2VDEScyCUTaHkI1YWiKo4YOoQHRKzRz2xDJPtxCEpM5aemWhmFAYvHjgOLBWlkRq623MBQM6wpBVLrBXRMYNWCdCPitp0w8w3FqHMlAiBHd1lS7kgTkw+uCxbMqbDvbSW2VthdzUzk84UAgdmAEI9cjkzMeU6K6wP0ntf11p1wnczS7xTdT+mrtepOvLM1hNWm+K+SbqtP2IeJWHia+O5tc7CfS351Fa8GnwcNrdHDCUBboWrIPxzJRefuSAOWJBF6W08y0qsZ1aeyJmWsG/q3neBQ9XFcMTclssg3Nf9shs4LJk32QtbDm7PzdYIs1kNB05vijZMpXyztfKRueoGd+AUQ6gX6ekwzORk/ykXBKVq1tn4r3YycMYAZbbQwvY1VonVVFOes8oTT+fYoM/YoEXQI5tguTxlZZEmVl7YnTEdmAPw5pyBYGYEP/EclafsOU+Zrv4HuHQoc2DWqEsAAAAASUVORK5CYII=';
string public constant body26 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBRFubZSRm7GYFUu51O7O1tzRtpjWJyfvY0778Nr////FAx/1AAAAAnRSTlMAAHaTzTgAAAJrSURBVHhe7dRNjtMwFAfwgRNMfIKmcVUhscpzFdZ+T1hIXQ1EqAeAAzSWHkjZz2K2dBFuML3ALGCJZCF8KJ4zSdOPmT0L/tlU+vn53y/76h/N/2R95pI8G3LBarPruptnebH/vu92+Rm/SNQP3+/3Mv4cd93+fuLs+pQX397dO795ktV8/sqxa6Ov5e1fMrHmGGPgjzFuL/i6MA20sQGOaGaXrOHtp4pXn0MDdi45YanG9W/mrzGAKYyLYX7EShPon7GV54GsIY7R5xMX7BF+RMmfB1s4LxzsgZVhQri7Zea7W3TsuY3BzyYm4TetTH9hZCbHkomBCMAEmYnsiUDccTlyQT33X4sTRpMK7Mg67Q3ghL0TQuNP2VDFSMyeUBb5ko9YGSCqYsDUIRoSs8PZwDJMphWHpMxYOmaikVEYnLjnGFgqSs3+wAUAWc2SRixxroiOGXKVAF2vmOs2jPzSIJSZEiEwvdtsGWPAgcl5m2VLxrS5k9Yyey1sr0ZmyjOFwJ4ZgDDvuRyZmOTwFMZ56V3Vda5a4dnIEmdV3fWp65tUHXlk4wirbbHaJN3V73EeJYffWztujDWwqiUfmorXwcWwvT5iKAlwJ1x54V/roz9TQeyxIIPSu3EsT+J8ZOWIrG4Iu03dudazr9roj5ibcumFu7pbtoH9knmbHdiwt4+82Wlh1uswcbpTcs1UbuR0KxeZqzbYiVM0Yb5IV4dmJivrT7kgKFU6+wqIrAycMUCZLXJh8xSrxGqoKS8vj8TDPsbnZ6zRIOQ9a2+4PGVlkAZWTtieMU3MHnh7zkAwMoIbeIyap/T8+HLgv28WPxlIzBAbAAAAAElFTkSuQmCC';
string public constant body27 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0XFCUHBRFubZSRm7GYFUvO1tzRtpjWJyf78Nr////56wh1AAAAA3RSTlMAAAD6dsTeAAACTElEQVR4Xu3SQW7bMBAFUAe+QARdRKrEeJGlhtYBxAEXWSYVYHRpTX9b3aDdO/ANiuwDouDlOlSk2HHaCxT92hDzRH0K4Orfzf+sK01xCVdZlk28iZr933g9Jn4ulvH11YmXzTF8WGbnrL23E6PTA7xnxlQNQPvf8aq2dRsDEaKzxXs29PUBw/YxCHWV5g1rtfv8CPz6pJsr62Oozjg3TGYMMUxns6z9Up64hjga4xRXe1EO3SvnFuzoCcC3pygegjEGKU7Myt91a/gZBoA9NCcmZqIvUP8Bp2t1j2bhmhO3Wo4g6Us2FXQLG50QkXKQRM7KW7bcgi0gTD5GaXDGuSXmNgZtnTQkhnflzKx9dlSnpIBrPMC8sFMmry6IAYA0BsJcvHBNxJ2BZsAUKdbM50zFOoHzk7rCjGHhtXXUrNYqTHbyLl2s4GZmL51eNTgMgIdws7pV1tnM0J61IwhAxK6YuFmYwVWZ1dYLxG37vsxH5WJhje/y/jil7+8zrY5Y2Hp27b7e7pIe+gdXRY3MfGU8BttZ2vaaj0OLu+Bj2F+fMTVM7qDcivLznR584ZohrmbrtHfnoU/icuHcM3dmYHfc9Uc/CqQdo5wxhmYjysf+uBkDZAPss1e2kO6FdwejDHMXTpxVVVUacKN/dp/7CLRj6E6cYtiVN8dDmRmAO33/LddMTb67z6Zb3enggoma7KZUtn/iPHE+1zSXnFeJ5+9YKS/YOOuonNiIRfOWc+t45twrdxfMJ4YQ9pdMTAs78jMvyauUiV+WaaXwG3I9TwKOLqhNAAAAAElFTkSuQmCC';
string public constant body3 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0XFCUHBRElTUoxDiYycE1DGitDjEZSITNsLzKCqFnRtpj78NrvTYAXAAAAA3RSTlMAAAD6dsTeAAACUUlEQVR4Xu3ST2rcMBQG8AlzgRhfxK6NmJClX4Wz765Li4cgF8h+3NcP3K5SCp4bzBwgFegIpTdo7tInx+78SXuB0s8b8X6WPxm0+nfzP+tKU1zCVZZlE2+iZvs3Xg+Jn4plfH115GVzDG+W2Slr7+3E6PQAr5kxVQPQ/le8qm3dxkCE6Gzxmg19fIf+7UMQ6irNGWu1+/AAfHuvmyvrY6hOODdMZggxTGezrP1SHrmGOBriFFd7UQ7db84t2NEzgM/PUTwEQwxSHJmVf+jW8DP0AHtojkzMRJ+g/h1O1+oezcI1J261HEHSl2wq6BY2OiEi5SCJnJVzttyCLSBMPkZpcMK5JeY2Bm2dNCSGd+XMrH12UKekgGs8wLywUyavLogBgDQGwly8cE3EnYGmxxQp1synTMU6gfOTusIMYeG1ddSs1ipMdvIuXazgZmYvnV41OPSAh3CzulXW2czQnrUjCEDErpi4WZjBVZnV1gvE3Y1jmQ/KxcIa3+XjYco4PmZaHbGw9ezabX23S7ofv7gqamTmK+PR287S3aj52re4Dz6G7fUJU8Pk9sqtKD/d68EXrhniarZOe3ce+iQuF849c2d6dofdePCDQNohygmjbzaifBgPmyFANsA2+80W0r3wbm+UYe7DkbOqqkoDbvTPHnMfgXYI3ZFTDLvy5rAvMwNwp++fc83U5LvHbLrVnQ4umKjJbkpl+yfOE+dzTXPJeZV4/o6V8oKNs47KiY1YNOecW8cz5165u2A+MoSwvWRiWtiRn3lJXqVM/LJMK4VfrI1vwBYXC+IAAAAASUVORK5CYII=';
string public constant body4 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0HBREQIB4fDxIhPTMzWT05Ih5DGitTOC1WdUnRtpj78Nr///+BuKYLAAAAAnRSTlMAAHaTzTgAAAJzSURBVHhe7dS/btswEAbwJE8Q8QlMyXSBjrpQKNDNVeudh2MBA10s8AZ1dSH0SQI/QDUQnTNlzlD0Abr0XXqUpfhfunfox8HDj8ePNgxe/aP5n2xILtHZmAtWq23XLf/K893XXbfVZ3wtsh++3+3S+CXfyudN1+3uhaeu2+sTnn/5eO/D6kW+yfNXnn0bQy3Xv2RiwzHGnj/EuLk8vLANtLEBjmhnl2zg06+K3/zuG3C55IRVnuM6MrexB1tYH/v8iJUhMD9iK+uJnCWOMegDFxyw/Bkl359c4YNw755ZWSaExwdmfnxAzyGVhNmBSfhtK9OfGZnJs+TAQARge5mJHIhA3HM5cUEDDz+LF0abCtzEJp0N4IWDF0IbTtlSxUjMgVA2hZKPWFkgqmKPqUO0T8we9cgyTLYVh6TMWHpmoolRGLx44NizVJRGami25wKAnGFJI5ZYK6JjBq0SoB8UtWn7iW8sQpkpEQI7uMsWckEcmXxwWbZgTId7aS2z18LuamImnSkEDswAhHrgcmJiynVWWB+k966utWqFZxNLvFN1N6Sul6k68sTWE1ab4m6VdFu/wzxKwsjXxnNjnYW7WvK+qXjd+9hvbo8YSgLcCldB+NtaLj5xQRywIIvSu/IsK7GeWHkiZxrCblV3vg0cqjaGI+amXAThru4Wbc9hwbzJntlycHtebY0wm3V/4PSmaMNUyjdbKh+Zq7Z3B04xhHqeng7DTE72n3JBUKrVMhv+1U4GzhigzOZa2L7EKrEaa8pzVnni8Rwb9BkbtAh6YBMsl6esLNLIygu7M6YDcwDenDMQTIzgR56i8pQ95ynj1f8A1fIr05BMlj4AAAAASUVORK5CYII=';
string public constant body5 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAALVBMVEUAAAAMDA0HBREQIB4fDxIhPTMxDiYzWT05Ih5DGitTOC1WdUnRtpj78Nr///8eGeFyAAAAAnRSTlMAAHaTzTgAAAJsSURBVHhe7dQ/jtQwFAZw4AQbn2AzWWuQ6PLWTEO1BDG1n56MtJxiIusTCuUgRZxkNT1KYdFCA/UWiAMgLsFzmMxf6Cn40lj6+fk5//zgH83/FGNmmrLY5ozNct33N3/lq837Tb8uT/hhprH4brPZlZ9z32/u9lxcHPPVu1d3IS7/yGY2exwQuhQb3f45CyxSSgNeprQ644vKtdSllpDYXZ6zpdefFnj6ZWjJzzRHrK359gfw5udArnIhDbMDNlbIfkudXvfinSClWO65QmT6njQf730VovLgd2wchOnrZwBfP3NARJeGeLlnUX7WafVbMCABmj2TCJEbtCYh6lg9oJ64kpHHxxKU2eUGfmKb1yYKyjEosYvH7GQBFiAK66RY44CNI5FFGjj3UB0yI/DllrVYXKdOWQGuAyAyMStTUI9IA4BYW8QdV0TiLTQtxsTSiBwylSYDh1G5tN0w8SPHVBdGRciN7ou5bpC3LCH6opiD0QIBUeriibJ/MDGkLAwTIkAkXI5cTywQ/XkqFyIiXzdNaTrly4k1wZumH9M0N7l1wsQuCC9W1fUy67p5zrOk2b1vG9A67+i60bxoF7gdQhpWFwdMtRCvlRdR+cPtwcdUCSJX4lj7LgP0ylxObIKIt61wv2z60EXERZfiAaOt51G5b/p5NyDOgVWxY4fof/NybZVhb4c95zOltJBa7+zGhAQsusHvOccKl1f56LCAeJ1/zJVQbfK/b0jEa8EJE9XFVans/sQms9m2qc8Pj8zbdVwsT9iyYypHttGhPmbjWLZsgrI/YdkzImF1yiQ0MVPY8hQzyxn593DLvwCyCENlyTNdMgAAAABJRU5ErkJggg==';
string public constant body6 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAMDA0XFCUHBREQIB4fDxIhPTMxDiYzWT05Ih5DGitWdUnRtpj78NoEgfraAAAAA3RSTlMAAAD6dsTeAAACUklEQVR4Xu3ST27UMBgF8KnmAo1ykYSk1khd5quZfQnSrGN9stQtO5YzMk8ElrOYG/QElUWOgLgBvQvPacL8KVwA8bKx/Iv9nMiLfzf/s6yY4hKusiwbeTUw27/xsk/8VMzT11dnzMVMfDPPnTJ7b0dGxwO8ZsVYDYD9r3hR23o9RBEMzhav2cjnD9i9fYxBuoo5Y1a7T4/At49cXFk/xOqEc6Ni+jjE8WxW2R/KI9cITnoa42ofyLH7zbmFOnkG8PV5CB4B/RBDcWQl/+DS+DPuAPVgjiyqIl9A/w7HMd2jmbnWxGuWI4a0k00F3cyGMyJCjiGRs+Gcra6hFggqnh/V4IRzy27+UbaOGhPDu3JiZZ/t6ZIUcI0HVGd2ZPH0gCECCI1hjRYvXItoZ8DsaImLpeopS7FM4PyorjB9nHlpnTSLJUXFjt6lixXdxOpDx6sGlzb3bG0Wt2TOTQz2LJ0gACLqipGbmRValVltfWDvXduWeU8uZmZ8l7eHMW17n7F6wMzWq1tv67tN0n37zlUDEya+Mh4721m5a5n3uzUeoh/i9vqEpVFxe/I6kJ8eePCZa0VwtVrH3o0Hn8TlzLlX7cxO3WHTHnwfEHgzwglj16wC+dAeVn1EWAHb7DdbhO6FN3tDhnmIR86qqioNtOGX3ed+ANZ97I6cYtSVN4d9mRlAO75/zrVKk2/us/FWd5y4YJEmuynJ9k+cJ86nmuaS8yrxtI8N5QUbZ52UI5tg0Zxzbp1OnHtyd8F6ZATB9pJFZWYnfuI5eZUy8sswjQi/AP1pZ1fvLM0lAAAAAElFTkSuQmCC';
string public constant body7 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBRFCOjtYGSRmVFd4Ki6FaWaPRUCwaFjRtpj78Nr///8k03LpAAAAAnRSTlMAAHaTzTgAAAJwSURBVHhe7dRPitswFAbwmTnBWCeIHFek27gpXWsewnQb3O7F60OBbofsQxDPPUCx6AUG5gJTuuu6h+qTx27+TfcF+gmIyE/SpwTjq380/1MMKSW6GHPBarVu2+Vfeb79uG3X+oyvMw2b77fbvP2Sb+Xzpm2398JT1+31Cc8/fLoPcfUi35Tlq8ChS7GW618yseGUUs/vUtpdHl65PXRpD5zQzS7ZwOefDdtf/R58KTlhVZa4Scxd6sFVLqS+PGJlCMz31Ml4Iu+IU4r6wBVHtD+S5NuTr0IU7v0fVo4J4fGBmR8fMHDMJXF2YBJ+38nuL4zMFFhyYCACcL3sSRxlLh7YTlzRwMPfEoTR5QI/sclnAwThGITQxVN21DAScySURdHyESsn3U3qMXeI9pk5oB6ZHJHrxIcCZrSBmWhiFIYgHjn1LBXWSA3NnrkCIG9YshfLrBXRMYNWGTAMitp0/cQ3DsEWSoTADe6LhVwQR6YQfVEsGPPhQVpt8VrYX03MpAuFwJEZgFAPbCcmplIXlQtReu/qWqtOeDaxJHhVt0PqepmrE0/sAmGzq+5WWdf1GyyTJI58bQLvnXdwV0ve7hve9CH1u9sjBkuAa+EmCn/dyMUnrogjVuRQeleBZWTWE6tA5M2esF3Vbegix6ZL8Yh5bxdRuK3bRddzXDDvij/sOPpnXq2NMJtNf+D8TtGGycovW6qQmJuu9wfOMYR6nl8dhpm8rD/lisCq1bIYnmovX5wxgC3mWti9xCqzGmvsOasy83iOi/qMDToEPbCJju0pK4c0sgrC/ozpwByBd+cMBBMjhJGnqDJn4OfpePXfzOtJzPnZNQUAAAAASUVORK5CYII=';
string public constant body8 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAMDA0HBRFCOjtYGSRmVFd4Ki6FaWaPRUCwaFjRtpj78Nr///8k03LpAAAAAnRSTlMAAHaTzTgAAAJpSURBVHhe7dS/btswEAbwtE8Q8QkiRyXcNaqLzsqBMLoaanfiemC6B94NgfjUByhEdOsUNC+Qolu3vlWPqmU7drp36KeFwI/Ho/7x7B/N/xRjZpqy2OaEzWLVtld/5cv1+3W7Ko/4Waax+Ha93pWfctuub/dcnD/my3cfbkNcPMlmNnsREPoUa93+KQssUkoD3qS0OeHzynXUp46Q2F2csqWPX5dovg0d+ZnmkHNrvvkJbH4N5CoX0jA7YGOF7PfU6/Ug3glSiuWeK0SmH0nz5cFXISoPfsfGQZju7wDc33FARJ+GeLFnUX7ba/UnMCABmj2TCJEbtCYh6lg9oJm4kpHHxxKU2eUGfmKb1yYKyjEosYuP2ckSLEAU1kmxwQEbRyLLNHDuoTpkRuCLLWuxuF6dsgLcBEBkYlamoB6RBgCxsYg7rojEW2g6jImlETlkKk0GDqNyafth4ueOqSmMipAb3Rdz3SBvWUL0RTEHowMCojTFS2V/NjGkLAwTIkAkXI7cTCwQ/XkqFyIiX9d1aXrli4k1wZu6HVPXV7l1wsQuCC831fUi66p+xbOk2b1vG9A57+i61rzulrgZQho25wdMjRCvlJdR+fPNwcdUCSJX4lj7LgL0ylxObIKIt51wu6jb0EfEZZ/iAaNr5lG5rdt5PyDOgU2xY4fo//BiZZVhb4Y95zOltJBG7+zKhAQs+8HvOccKl5f56LCAeJ3/mCuhxuR/35CI14IjJmqKy1LZPcUms9m2aU4Pj8zbdVwsj9iyYypHttGheczGsWzZBGV/xLJnRMLmmEloYqaw5SlmljPyn+GWfwNzTkrccdA4rAAAAABJRU5ErkJggg==';
string public constant body9 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAMDA0XFCUHBRFCOjtYGSRmVFd4Ki6PRUCwaFjRtpj78NoEPKnVAAAAA3RSTlMAAAD6dsTeAAACRElEQVR4Xu3Sz23bMBgFcBdeIIIWkaoIdM5R3QGUD/QAhhcgiI85Gwaf2mMPoUYoukGzXB8Vy//SLhD06ULwZ/KJFhcfN/+zbJjqFj4VRTHxamT2/+LlkPmlmqfvrpmLmfR5nrtk9j5MDMcXeM+KqRoA+9/xorXtZkwiGL2t3rORfYtDv0pRXMNcMav9fgX8eODixoYxNRdcGhUzpDHldmeV/bE+c4voZaAxvg2RnNyJSwv18grg++sYAyKGMcXqzEr+xaXpdzoAGsCcWVRFvoH+E55jekA/c6uZNyxHinknmwvczIYzIkJOMZO38ZqtbqAWiCqBh+pxwaVlN/9Rtk6aMiP46sjKPjvQJSvg+wCozuzJEugRYwIQe4N44lZEnQFzoGWulqqXLNUygw+T+soMaeal9dIvlhQVO7nLFyv5I2uIPMQKPm8e2NovHshuMTPYs/SCCIiorybuZ1ZoUxetDZG9T11XlwO5mpkJrux2U7rusWD1iJltUL/Zt0/rrNvui29G5vS9TcDBOitPHfP1sMFzCmPa312w9Cp+S95E8svzxWVqFdG3aj171wF8Mtczl0HVmYP63brbhSEi8mbEC873P5J33W41JMQVsC9ObBHdG6+3hgzznM5cNE1TG2jPkz2WYQQ2Q3JnzjHq6/vdti4MoI6/v+ZWpS/Xj8V0qx0nblikL+5rsv0bl5nLY01/y2WT+biPjfUNG2+91BObaNFfc2m9HrkMZHfDemZEwf6WRWVmL+HIc8omZ+K3YR4R/gBQcWJ1Nj2FZQAAAABJRU5ErkJggg==';

}

contract Helms1 {

string public constant helm1 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant helm10 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAXFCUxJUdLR15hYniDh5mui2W6nXXdxqHu3bstsOngAAAAAXRSTlMAQObYZgAAAM1JREFUeF7t0DFuAjEQhtGxkgPYEivYcnMDdhA1yfxOj7w+gAvgBoiaAnEDctxMUkXetTuaaL/2zYwl03/PVtXsa8PKlWHlD1tl+cvNO2WtkoL7SWexzrm9WXIR3L9Zaq82Z/NIqgHCnfk6j5ja8wF+A91f3hONMvcBAkCOF10et4oIiMPn6ZZoIsMcPPP2kuwkb8AMSK86xTsCiF47KvFvz2F6Amdvv5TY1xlRkaXEAzgAXGBqvHLhyzUTxHPvqNRCEDsqZpxz+em5ublvhvskZwfu5XkAAAAASUVORK5CYII=';
string public constant helm11 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAuLi5MTExzc3OEhISVlZW8vLzNzc309PQDCwFCAAAAAXRSTlMAQObYZgAAAKhJREFUeF7tzj0OwjAMBeD4BnH4aVdChVgjoMylErCihsCKUNlzhN4cQTLantjoWyz5U/yifpAxoEUtBwHRVI5nY3evyCpWPlzPXDksD6tj3T7Y0+HZ+W3keBPqvvcNxw4RbdfS5WA/e7QnhhffMd0znNaG6YY8nMyNzBeaJ5kjzbPMN01zXhc0m8SwprnIfGeOD+LPIcqcXhuGVeqcayWllBnUv2XMmDd/BRLUPsxs0gAAAABJRU5ErkJggg==';
string public constant helm12 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAADBg0HCBQoERpMJClxQTuaQDmlelHHakXQwnTnl1D/02n//eK4RMhyAAAAAXRSTlMAQObYZgAAAMdJREFUeF5jGMxgFAiCgAAuWUYT19DQUEdc0sIuoaHl5SECeDSHV5Ya4pB2NnYJDQ0txWG6sDFQOxAYYzddBKQ5vDzEFLtuUZNVq3efORIcgEPaqklJSWmNcwF2aRELJSDQJiDtgsNwYSv80l5gaVdXAezS3iCndYXiCjWXFUCfLcUV5mIiLqBQK2zELi2RDJQNLzdbiEN6sbGJi4uzBQ5psRXGxi4uxt04DGfsWgHUvXoXrtQk2LVq954zgniTIrrsKBgFowAAvAw1FigAR10AAAAASUVORK5CYII=';
string public constant helm13 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUAAAAXFCVLR15hYniDh5mosLvFvqvcAAAAAXRSTlMAQObYZgAAAJtJREFUeF7t0rENwjAQheFDWcBIWQDDAvGRHuWdF7B9+68ChA7xXITWf/vpyVdY/mt0Ou8FwrO7G+JCxvmtKV7Dbzb3mm5QxntHuX04EV53BzsNqzfTqIQzVJW//WiouU2LEJapihzlVSaI4EIYDpgltjbVEhWUcy1qnK2WO2WZrW5dRunzZqZdhgZht6FiH5M5Xhq6H/1bR6PRExw2KU+rNlvHAAAAAElFTkSuQmCC';
string public constant helm14 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAuLi5NTU1zc3OEhISVlZW8vLzNzc309PQuVDnCAAAAAXRSTlMAQObYZgAAAMJJREFUeF7tz7EOgjAQgOG7N+iBPACtAVdagVlJ1FWL6KoEdxYfwCdXhbFXJwcT/uWS+3I0wM+bIuFBJBl7PJD5rWeV5nVz3HHnqNbJpqgu7Keb1tbLnmPTFF1XrzjOiEjaSjgV5XtPcstw/BmzkuFhHTBv4zgyP3+53rs5HLl3czTySbhZDJy6OcBhLNyMhgQgpWeGHyamQGvuv+9aSVO2MbgLE6W1NoJhfFmhCIA9v6oM2NDagwC+KCfwhAR/2dTUEwijF8b44v6gAAAAAElFTkSuQmCC';
string public constant helm15 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAWFhY6OjpMTExVFBRzc3OUMTGVlZW8vLzg4ODtd3f/oaFq4qwYAAAAAXRSTlMAQObYZgAAAPFJREFUeF7tkTFOxDAQRWNOkPEoYunisZBCaVthD7EVsUbOCWioWGRlWxfRpuYG21BwBPZypF+7gjLP5dP/XxpXf2cD1ldC1NCDKWqUfvWqLjVz+ghRFvQdjhOf2EBhuo9xnIOnOq99mE9h9pDXuB+n8xKsyYcxLvHYRZcrB3iAeA5Pj35witqbZpPUHI+fYfGWpxstVFI7HtL7zmmXWYek7rlrAAfKjYsXzVOHwI6gymnaxwa5t5C/mXzlBq1XbVa75+s3Gl24SoWHt6+LkU7ltThcfy5S2+J3A0i9hotaEpEsaQFABG1VjsNq/5ONjY1fWE0wjT+DHzEAAAAASUVORK5CYII=';
string public constant helm16 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAPFBMVEUAAAAHBREkBAT+63X/wmb/9rymMxvKby39d039l00eIShEUlhyJRQvNz8rMjn9Xz3+2HUaHSPdYz3xjUS6Udw1AAAAAXRSTlMAQObYZgAAAIVJREFUeF7tz8sKwzAMRFGNJDvvPv//XyuvUjC0yexKdZeCwyD58bIsyzJ8OH4N6DkO43uHweH9ROnd8pjW2M7gC9jhCDPebRvmpjEftf2X2BbIybBAW4SNoOvVpqogrOj6mNzGqsLgZs1HDoctdnMOD1aK+UBhUQ/7DMtq2oZWlX8py7IX22AC0PYnv8cAAAAASUVORK5CYII=';
string public constant helm17 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAABdBy2aQDmoDyzHakXnl1D/Sjf/02n//eI6POuWAAAAAXRSTlMAQObYZgAAAFxJREFUeF5jGNxgFAgw4AaMAoyFQAKndKBoq4AobulS8XbBcFzSgoLt4uaCFQKMglilhRQ7wtNDOxyFFBmwAteKcvPy9lAXBuyAJbyio700RIFhKINRMApGwSgAAGhYDYt5GPoqAAAAAElFTkSuQmCC';
string public constant helm18 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAADBhwGAwYaFRctKSpIQ0RoYWKTzoFKAAAAAnRSTlMAW4oqRUQAAADNSURBVHhe7dDREYIwDAZgYAJhAgztAjQuQBoGwIQBPOn+I1hO73ww9dUH+a9v3zX90+rHOQIA3zRgLHsTUFX6Eg/EsqalxI6uvKZ74XqDiKppKzFdWFV0Kj2NmkOjvbKLgWU/AJ/zHavESKwpWcs1gQlwBLdKmKxi2fbMhFZ392K2LtdtR08W81vb1tGufptOJg8s4DTNN4PrzIHBU1xt7ihmRk7a24yZo8pcqCYIPkTOwy3vvIBDXc6Vnc5r2iBryQHgPdkqWP1fjhx5APQ5MAHDrRQyAAAAAElFTkSuQmCC';
string public constant helm19 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAADBg0TDConFD1EIFVoLnScQZefAGP/AELXMYnKAAAAAXRSTlMAQObYZgAAANNJREFUeF7tkkFuxCAMRSc3yCep1C1JDxCw5wBTPico9AY9QHc9fplMdmO66TZPXoCeDJa+L//lBI2+hTKXrh80LZLL2NFuUVJr6DQvWlkrbx29UkQ/S7Jfd2tcWXllR4sHoIne/jqiMVGDZeEC7lAAPOtL9Lu+bvfLE2PEK1q9pHa2JsPPd6v5YzOaByeP7rlssAYX7Mx59YaOemiNpuahJVlaDj1FBisQDbuWNzNxJ+8PndNo5ile621S2vuAFmj+IkNnm+CUCWjWZrCy+puTk5NfoFojhO+CBtEAAAAASUVORK5CYII=';
string public constant helm2 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant helm20 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUAAAAXFCVIACdwCjqSHD22NEINTYKeAAAAAXRSTlMAQObYZgAAAGFJREFUeF5jGKlgFAiCJBgFBbHLMhoLAoGwkpIAdmlnY2MTFxcXXNIuQGBsbKiMXZpBEAKcBRjwAEYypVlDQZjRCa9u3NIg3QFk6UYAEcUBlDakSNqRhtKMAgzDDIyCUQAAYtALVbw+/yQAAAAASUVORK5CYII=';
string public constant helm21 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAGFBMVEUAAAADBg0ZGB8uMDZTWF5+hozN2Nz/AEIqDDVEAAAAAXRSTlMAQObYZgAAAOtJREFUeF7t0cFtwzAMRmFxA/0inZ6ZZAHaygBCJN+L2F0g7v4r1EGRU6kFCr+LDh8IEWD4/9Ebos/x/fqsvyodHvFSXl0mygqA2xbJ45j4lmutFuCxUn7W9XOKZP7XbWtfRYyLx5nnBw9F2rfHgeVU66Nwu0dnOJDNtofFAjmLUz3VtYCX6KxOijKzACIG+8uT5mGf/hiWthZncbMbMyCybs50smmoUtDu2Vsd2KeRIAL4FxsuOmHsHVSvagpln0MSPWMvdJgtAanHBAPA2mPVF8fQCSlBr11OSOfRQi+6TNVi6AbA1X5HR0c/KZYh8ZycMO4AAAAASUVORK5CYII=';
string public constant helm22 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAAAAAWFhYXFCUlTUoycE02JV5DjEZTIZ1/WLmCqFmizHaxbNTDAADViuXsufdBk1lWAAAAAXRSTlMAQObYZgAAAXpJREFUeF7t0LFKw0AYwPGaN+jkWj7aNBeKgr5BCbiXhoDjDYeiXYohEFy8oVzWTjkIDgUNXLcODu3moFRu7gPkAeLsYr1KvAopBcXBof8puV++cHyV/50BWw8Rq5UZPX0dGjEtDydYP3Ja+zHrn5sxNSz4RkDVhSQu3s6ZBYxB8fXxUUtmADQZ6psxGjF286l7jpR5Jhm91GxxymNGq1WA6v51nucHucz0dISSoZzHTQcA6kH+ulweLvNsTgs+Q/JRype0rfREKFX83opxwQQxyqJnceU4QTh745wjfrtepWnxYRTbYtV4kkg5b8m5NdBsqptzezxNxXg24VLGiFOy3hohxOK2eZGGD3iKeIwZw2S9SCDEpGFv0ez3FvbIGmBCABRoBxOHK1KcdpQVqDMa4T0e2SYWwldWqhHcedAOXJH6tU3sBl6973u+625iADcQIvA7AIo3BKdCpB1tpeww9LWWa3qeu4Xr3W7399MN1RY2VJU/bdeuXR+fnp19BPSz9gAAAABJRU5ErkJggg==';
string public constant helm23 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAADBg0iEQ41IBdAQmRRNyRjboNxVTSJlZ+fAGOii0+3wcX/AEL///9s5/3iAAAAAXRSTlMAQObYZgAAAVZJREFUeF7t0jFrwkAUwHHzDbwiIUId+q6UQCfv9URwMkr3Eh4RnJrY4heQ21soQib37t1LESE4dOwH6CR+l/qEtvTu3Dv4X39597gktX9UILiDdIKEF8O6i0yoAKSaDPuuAoe71AQcDhKdMkmiTgJX9ukNntSUEULsclAQpYofITPKXc6BZ415mdE4lzaHOiMar5EIqedhPnt1/5kZUnEuOzaD1jQPH1CnepScTyyONBmaXt9lRNQd9hs2S7W/GEK1WfaFyxjPy6rabm7FrtDeXVZP4jd7t/hTlNQ9H3MhRHPPb8Bsz78LccraKtouD5ofQjwvdrzUjgaN9vd09Jq6XPzsbhU3NQ9zZbXdroszl8uKX8tKG+oVdZcfiQxx6nLg4QdAnZkZZbNu4uGp5klAhLhfc4tAopJIhkZe5t80BXlgOkyYECn1cpAjKhD7fOyHY8eOfQFDWmUTJuDdIQAAAABJRU5ErkJggg==';
string public constant helm24 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAADBg0TDConFD1EIFVoLnScQZefAGPmddL/AEL/vuH////mQVUgAAAAAXRSTlMAQObYZgAAAWBJREFUeF7t0TFugzAUgOHHZpklJunQdAJ6gICdA6Q8TlDoDXqAjt0YK3oJZ4vwQrbK73I1lMm4Q6WO+WVYPj1bYPin2PR0v7KeYNAMeEg7DQNp+GCaB7bguucdt/MuAWbALgDxCHD5/XBmNHzqgA2ajwO5dEwWek859DEt6Vgz7TMzZIXLEMAIHscanCqsG2E0WNt5wzTQVVWZrJu95V/eNI97skmmEFVb0LDa3ABdM9Vi2+LJ0Oj/Vwt0zlFK9dJUD2TI4xEoycscWzzinmw/esxtIlMhhKowJQ0eGzpnpXBtURWGtMdwFkkhplC6F4DPUKYzHw8A0Yr5phT3wq27CmADqxIp3t/c2j0fom6lkeN5etccBKw5k2JuV+dpgEu1sCqDjAvLKsRy4W2JRYBzVcwsH5sNhD7s6YfrKsRRLlPVnrYKCwgl3IXWr4jFBsKeKKyEcBoumu7qb926desbgrFvLgJRKRoAAAAASUVORK5CYII=';
string public constant helm25 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAADBg0GCBQKCR8iIFAzQnM+YpdHiL9LUWlduOR6hZnL09n///90L6wDAAAAAXRSTlMAQObYZgAAAQ9JREFUeF7t0rFOwzAQBuDcG9gSRlVGSzRi4yFIBzaqxoYxUdMgNjLElM0Lqty9FaM3q2HJmvQN+lKYuec8Qf710/mk8x/5TAEyyrNRBhNm6vlEQgtA+7d7SiKw6FobQTyIZwI9Nh530c3TpVI5DAjDvoN0f1E/B3q2CLcdK9tBbY8v5w7h325Rngalju8Dxq0VjfPcfPUI01ZnG9dXSpre0ms2erXYuVK8Gmf1FUOsi7u37yWXxmGXn+klFyXn1c5R7KiefTzrhxFuPin+Y+W/zhUlKMOm4XzbSBbgtSySQyZuA7xK6/t1lkucI/ZYJ6lkHx7w8TrJchGsGysSwfJwUYt5TkeqTADHcKZMmfIHP2VPk5uFMEwAAAAASUVORK5CYII=';
string public constant helm26 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAADBg1SDS9TWF53Fzd+hoysJ0LN2NzsSUn/AAD/nYr/qMP///8Ii8QAAAAAAXRSTlMAQObYZgAAANhJREFUeF5jIAhGAaOgoAAeaREnpUTc8oxq2mfUHHFLu5w5c6xDAKfNQnvmbOtqxCEt5KLovdstrU0Au2aVtIwUl4y0DEXsmp1cU1JTwtzcHLFrDlI3CjcqVk1xEsAmrVqoGmgaGKpu5ILVcuZg4UBRw2DRQBz+MjU0EBYwFDVkwA4EBQQYGQSEBRjwAUEGQoARu5ggVLMiNmkFRpCbhQUZWLD620kYJC0aLIQ91NTMwdKladjDXCLUEOz7Fuw+E1EGiwsl4vCOIoRyxBsgjAIMdAOjYBSMAgAjfSEKlDmZ0AAAAABJRU5ErkJggg==';
string public constant helm27 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAmADlYC36CDb2kNty9T/TYiv/ZpfPuy//WQDRVAAAAAXRSTlMAQObYZgAAAGlJREFUeF7tzbEJhFAQhOH/LZovVvCOa0BNzAXzA/FMDdRStG1tYDAy2w8mGpjhXSHzJCFZAhypAkMzcL3uDsn09QdSln3VOtagfMd8xxGKtWfYMsJ0/PgfC0J3buV81gjlfmfidSGEcAHuPwk/qDpBQgAAAABJRU5ErkJggg==';



}

contract Helms2 {

string public constant helm28 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAALVBMVEUAAAD///8DBg0HBREuMDY0BCVTWF5UCDB7EC5+hoyfAGOzGzPN2Nz/AEL/XEjXdhzNAAAAAnRSTlMAAHaTzTgAAAFOSURBVHhe7dDBSsNAEAbgpT5B8gR2bJqCCIUi3ssaKXgKLCt4KzVQ8JSy7EBvFdmB3IoUAp68ezYQ8OjJN/El3DQF3EbrC+RngBk+ZoBh3sH8zy2Dzd8MSFkBvzFA1/PRCJ0VtgFw2Y+SrhcIJMIy9XyedB3uJVPPF1hSWdLKjtHU5Y09KUlrfC+MbSdNDqSSVNKSKl67nFvWMQCgodjzrxvsCwU2IWHa3L5fg0ihCmmA3mTKHI4+k8t4y0vNOX92uc/nmzs4A1unJpnnH2OHO0+cX8Hri63BW5Tns5PRT2b9Gdf19qDoJbMxPjjcAdCwzSCLAcJs6PC5ULhjVEKaEXP4SCnasTa3tGAuswu941ARLYb73JFYv0XfFMbqHrNAP9acmQVrckfqGMtViJQOf2EGUsnsiyg9Zk2uPEAyALU2ufoNWHD5YFjLLbf8DU1gxwBtCOX4AAAAAElFTkSuQmCC';
string public constant helm29 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAABGDQ1VFxdXGBhcFxddGhpzICBzJCSOLCzZjv//y/ru+SHkAAAAAXRSTlMAQObYZgAAAJFJREFUeF5jGBRgFLBlNDDgBiyC4hV45B0FBUXUsctzMTAwCjIwCBZgkeMESzMICIq4eGDXyrCAgYFRUFDQBYvhEyDSggwMDILuDBwdDChgwQSQARNYGEBAJLy8A9WEhZbOaVbl0yGuYhQNLUd1n1SniJvFSnMGHEBylaCgF25pRjMGBkbjBAZag1EwCkbBKAAAMuUVoaTOH2MAAAAASUVORK5CYII=';
string public constant helm3 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant helm30 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAAAAAXFCUAAADqlAD/0gp+YQD/8Jf////Gqkq6haOJAAAAAnRSTlMAApidrBQAAACvSURBVHhe7dGxCsIwEMfhkLyAjxDO1t4oNtLOJtW9GnSvBJxrwbmi9bFN91zAzSG/9ePPBcJ+ScSZxxlldFp4XhNcST5IJmAR5lryh+eRkfzx3MfXLXEc59tCTH1Q+QCeN3AmuMlze6zg8qQYrd7KilifMrxrJdUu+DY0GTYzH4JcXDM0WnUkm5XpnFYmzM64vfPdggwv+3aTteOSBSvLegAA+st5y6JJ9velUqnUF/Y9Ir32GyuPAAAAAElFTkSuQmCC';
string public constant helm31 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAM1BMVEUAAABUCDB+/4sAs1IDBg00BCV7EC5TWF7///+zGzMuMDZ+howHBRHN2Nz/AEKfAGP/XEjcwp37AAAAAXRSTlMAQObYZgAAAaJJREFUeF7t08tugzAUBFDuwy8gSf//aztju3IagUV3XTALQ7gcjwjJ8q9iHZj93eo4U21b6eVarSxnbeUGqXatVnm3GkDVvdauSdb1opwbHpKjE8u696e2Vm5cu4XWw1Yj40wzjrmFsB7Iaq0dWDNoZd2SR8YGgJwdRlutUROo9/ATQLuMiiOMG0jIG5WIlBLJlbTGDl/5aGMDqYQgQk79MwI90Eq7ppScJwEwMtTidYYh9HJS3azhBJSVgFxZna3pDHuEF183WEULa4WJ5QtaoNXqmPZQd6wsFpbXdoHmVeINzSfhFNic1lsEOsbgFT821zmGDc0OLW69eTnHCXs7sY8At48rnmqGoR8prSH4iBSRtWZ7zHCC3raUaJ/ufS1RUsJ12BX4VG+tQtxfz5f3NRbBngjsvu+T7kQrb83E0dfECb+9fdLNVDwSYwnOwJaJ3QNfk8TfWKIEBIcddqIFOH5iav7WSOda5AMLtyOlnccDiz7sqL2iwzuGFdqrWoLDlFgtah32oiYPof+ZSZ3gMqfvzid04ufueu7cuXPnzp1vQmsR+UYFzQcAAAAASUVORK5CYII=';
string public constant helm32 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAD///8PABQsASguMDZTWF5VBDV7CjR+hoyoDyzN2Nz/Sjd5QYo+AAAAAnRSTlMAAHaTzTgAAAE4SURBVHhe7dAxasMwFAbgZ5/A8Qks1VFqOpYmu5Fp5mBByOiAhVclKGSvQbNpa0Tmgm8QQi9XmXaJIvsAJf/w9MTHD0IwGc0/5wB+40d/i+fkeJT9bJzZAPsYG4nrfva7xTHLI/CnihfmoCy95jBjKcDDS3fUAiDOanTNS2Za82Wnv899Xdm8joDItdKnS2G4s1lF/kIypfVFuNoqxbzNDbcNnt5w1qlVecjroz6c2dvN0+jma7Vd0Fxy/k7pxuY8UytB9q8FLj+Y6vJrDh4pTQvMJTa8VnVqfyrruY/cM0aRxZ6BX/6UZkwsBpiEsteZxsjcHHxoMT61FRngXSWSc8lnETh5O2+edqWonAweeW6SeUWawMkQbpukFByBmz0iEk5EMMAQipnACIbYQyEKwOLRwJ3vfOcfz4Kw6EohAzQAAAAASUVORK5CYII=';
string public constant helm33 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAAAAAHBRGSNXG5Dja9UYLPdJLsttL/qLj///+nSlA5AAAAAXRSTlMAQObYZgAAAYpJREFUeF7t071q6zAUB3BxnkSoOPZdLRTa8UIXrxZSe1cZCXctborXhAhlDZeketseJYuTyH2B5j84kJ/Ph7BNbsPo+ZIP+CSL9Qw//KOU0OqVzvATM2Cqpzl+XLRMV8sZLsRmGfhWzDBI+3bYdi2ZSeGG6OxtMTAMxZ/haNitFn0IwWBZucoMTpo8tblV0MG5PsQvOrORHeMh7GK2HLR7+R8jlntKKkczxUMTv3A6BV+YK144+/m3iQdkA2u4YtC+S/yhQ1gXe9B0qoz1Xr48j0er0PW6GM1Udb/zXAxxpZzVoTdls590xv82QvIUgd7TcnyfbF2zwgqbVKWbNIVPOnmEFBtw7a1K4QLnsknx2CJLyU+mlajJNOW4J6Ct4AJbaystveTmnYByKqX3atldMu6BrCWqdkq+Xr9HjCBbKVSKcJknCsJJfnJhM0yKvuPJpdJZ1luenCuX5TZ0HCOkz/FD++cgkVWdnQ0thOCskkxmuSZMO1UzaKcwPfz5I6nJTwFKflfuuecbo8CGPSA/BEIAAAAASUVORK5CYII=';
string public constant helm34 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAAP3UB6v8WFCU7OmZNZbRNm+aP0//D6/zl9/+nNpvrAAAAAXRSTlMAQObYZgAAALVJREFUeF7tzLEOgjAUheGbXJ8Ao7ASJ7cacotjX6Eh0tlg2u5EYDUlkccWB7dbVx36r1/OgX8Jv/NZRWnzYRVdyhkAbzyvVE8KpGfnNCl0ywyy4HnoUPsZdRk4xlxQlis0Bc9lQD0GHK1geR/IjIGGHtikr2oXyPGMF9sMvpJjALZTa65Lb6ZC8POdzfK7exyA51YfS2ue2wg3lOUdmT7CArUVSDEGoOZ9ArFQrCDgt6VSqdQLeXEm6xWvf50AAAAASUVORK5CYII=';
string public constant helm35 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAADBg0HBREfDxI5Ih5AQmRjboOJlZ+KEi63wcXGRi/ILzffezr/h23/yE3////2vGgJAAAAAXRSTlMAQObYZgAAAZBJREFUeF7tz7FLAlEcwPHHtR2H8JZSHDwuBHGSlKAIgjxoa7S5xZs18DiEQIcKT4UakjcpTWK32FCCGWKL2OE/0BTnICgR1HIEXe+izd8zGtr8Hu+3fPjx49Afqv0MOL7xG8+tRj+etUuNcqMGq4C6vHsAviAYNZNuNihD+4aAjHoDDejrApdNxPN5KSzVCzzAQp8XLlejW5u9ggGxbgiDaMwwBmGzOMuelnk1fJDNx2Gvfw9wcdq5s2R3TMpotumk1LZkOkbjTwQ01ltWjI7R3ivEL3r5LUrH+w6C8owdlRyNnRjMyHnGGDuWvAbzOqYtH8YR3H6OsvciwuBMi7KusTjVyWHvk4/J/ib2NwMsPsBudFuEOeWqL7J0DimnnFEOEHkX5KD2zba8zWD3+Iodr6YhDmWwSipY2/gQodP6STKp2WqlWroG+UZTVLXq2DrIp8cKcRybED0P3k4oqqIRUgmJEHNBJZPViJ3mEBiXUDq3pCIiRlK21FYlxCykt9jq/lwezSskzmUO/VeLFn0B9WSZdFhv6pUAAAAASUVORK5CYII=';
string public constant helm36 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAANlBMVEUAAAADBg0vNz8eIShTWF5EUlhLy1guMDZ+hoy0byrhnjzN2NxienwZGB+MRxwSExr/4p9pKBJsLoVuAAAAAXRSTlMAQObYZgAAAQpJREFUeF7t0ctqBSEQhOFUdXud28n7v2xKEzibWdhZJvMjCI3fCM7H/+wJ6m60Eoo7FmZ34fCKmy/WFa1j97iGMH6a+FjDOlYmMiZTF9Sxin1zL00siSemVspxlG0NF99q9W4UVF1UszXspXit9UXuafTyqrZahFf0ofo3Zu5l6GmXtHjjxCRzK+4uuxpOsyysmHmegOxysGyUNMvaTDSGYYmXIUPXh7GUXci/wxsou2Vwj2IiT5wBBm+G0QC7oEyYQAgnCu3jb5lwC2HxgcZCogXx8AmiBHlGseJcwrIB/Il3Rovh0+L2jT/NQIDDdtmYbm0+NVuXDYbBBV8dsuEwE/07PT09PT19AQUrCKizxpuBAAAAAElFTkSuQmCC';
string public constant helm37 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAABdBy2FADvGRi/HakXfezrnl1D/yE3/02n//eL///8q32TyAAAAAXRSTlMAQObYZgAAAOdJREFUeF7t0UFKxDAUx+E0J5ggFJfxleJ6JuQAgidIKFkLRbpVCH/IAWR6Az1Br2kYjcW+MODGVX/L9wUeScRPkkjkiLSo1ZnLXJpTTaX9HndeMyzTco7Vr+y4yrBy1JxhChv8mftl5cSX3y+2sE+vFR7KvYcaY3CiuawZsGX5xe2hsP7Nukf0+jaztAFObvgkAX+cHvJqC+huw55Cisf5iciEJZLdcPA9lsydRYJjz5oRsZ1HFQAkOPYjeFHT+XlUNwHgf0J0N80f7+c3RTlRSbXTo1IFeE2+2LXaw1VuxH+0t7e39wkyjjnlIZ/jTAAAAABJRU5ErkJggg==';
string public constant helm38 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAASFBMVEUAAAAgJB02MzxUTltrY3V8SheYkqDE/1pr/wgdHR1bPSa0bypGQk3olEA2MztAPUWyrbhc5wBmXnFFLRr9/4tOwAEUFyB96TgLCgM5AAAAAXRSTlMAQObYZgAAAPRJREFUeF7tzUlyxSAMRVGrp3Xv//e/0wjvQBkmXKCKyam3/LtmszXnvK7bb2j2UPdt6zlsJQMi6b5L36I6ywVIp6r0fX91HJ8q1dd7yIpUQGznyUVYtUsEX9ew5BiL1FpKBAPA2ohOBkQsBTGEnwdWHwb/YGMN4nQAMUBKD8as48MsEYCZHVEMAMdtBHYPyxzEXiPAEavrIEbHrRGzJuYe0Dk11y9lVWOK4a+ia/aSEdYIBvhaUtPxLBFG7JIh2X3fNm5i7BLCF/BX7d2O2oGR9T0MddigfkNy+1mC5VJkaInboZ0XkfoZNt7nbflDzWaz2ewHVrsK0WrfnxMAAAAASUVORK5CYII=';
string public constant helm39 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAaEQY2DgBkGwCGIwSuPwfnXwv71Df+/b2198ebAAAAAXRSTlMAQObYZgAAALBJREFUeF7tzLEOgjAQh/FTeACpsisW5hKjOhID6qrpuUsifQAHmIXBxxbpYuIVFweHfssNv/wPfpmbmCTtuDGo04FTGeYHvVvXNG/0bHX/kPev0UOQXArN1ZTiofrCdS8XN4BFAlFJ81kJRzXtMXCR9zCEV4xUNUcD+yhbXmJB8wBTX+455jMgm2xfnJ3CET1nvtyxNMhoBhbLPPaC7ELzGDwO4PKjYa2PgL/OZrPZnsoeIUZyevg7AAAAAElFTkSuQmCC';
string public constant helm4 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant helm40 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAflBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhFBQAAAAgFBRYExGOJiLcJyHzTFD/h4rAMjXPPkJpHBroRUCnIBywJyP/yMjJNzvMUk5UCwp0HBrrcHJ0IB4PDQzsQj3MKSRdFRN/IB9kEhGSLC74XlofGxf/r7H/tbY/CwowJbPDAAAAC3RSTlMAES42PUxXepmZshhUcsgAAAEnSURBVHhe7dHJTsQwEIRhM8AEUt22s84e9u39X5AyQRBxcs9IHEapQ+TLl9+S3bkNp9gV/h/jD4bFvpAhrqjtd8BdwiEeg6HE0AmOBtz5hO9/NMIKlvA3JsKYNoW32gdq4JHe85Bbpga//XoNbJ8A0ZCbhnTeDwO0Xw9pr8K/BThLmrkQAEiyKZyfVtHex/1m0xH7kHB++su+xarqpOGlgwEfVMX797hvaZsu1PnWQQ6A9m1bgWtEamfBggJaVSiKokSjsGDaC2rcLJy7KqU2YueolwlclhJMmIyallsUpbfhaWBxCnZlfRLWo/UtVGCxH796CVHkYzyI4HpifR0NerejHjmt1raHfqYe4yBN1qgVYziA1qYh1MmO1MwxebR58+bNmzfvE609FvUrBM6xAAAAAElFTkSuQmCC';
string public constant helm5 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAADBg0tFBFGKSBnQjGJZEe9mGKArRaYAAAAAXRSTlMAQObYZgAAAGxJREFUeF7tjLENgDAMBGGDfMwCUSYI8QJRnAEoMgL7rwAIiSqmQzS+xsX5b/oaA3BvNlDQ7RwDV31OQtI3dcyVpO3a3MvqWVrS2jhhKUobMbEA2Y11TgBJh6KDuxJLL2Pt7kOP1t5+xTAM4wCPqwrW/LzCSAAAAABJRU5ErkJggg==';
string public constant helm6 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAABAAFhYniDh5mosLuui2W6nXXO19vdxqHu3bvSFpKnAAAAAXRSTlMAQObYZgAAAIxJREFUeF7t0LENwjAQheHzBnkgBdIeXoDYUXr7FqAAiRIJmCCSJwgzZFzi/nBDg5C/4jW/rjn6d6ac2+abvL+V8ykvQLpuBhkw51WyWR7YxMkGdHOjnb/OMYr31+WpZdPe/RjFDheQBmzHIM4dSbWb+NAzB9Y/sJWUZNXrGVibcwB9gELMAPp5VVVVbysAE15kqV30AAAAAElFTkSuQmCC';
string public constant helm7 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAoHxw2HxFFLyJdPy5ePy56VUB0OoV3AAAAAXRSTlMAQObYZgAAAJZJREFUeF7t0DEOwjAMBdD4BjiG7kkl9taEA9BeoBJi7/0vAVU85nuBjfzFkp9iWwk/SA+dXB12BzkWh+W25A0qP1TXF1pOz4+uOQEWPbKg6ec851EVsSRmzlray2k++jwinuoMxLUdwW6ykr7iqc3RGOwWY3C5WPvSZmvT1ec7GL67l9Pmc30dAQf781pQBp8p/Ft6et56yw9dvk2U+AAAAABJRU5ErkJggg==';
string public constant helm8 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAuLi5NTU1zc3OVlZW8vLz09PTQ6SEyAAAAAXRSTlMAQObYZgAAAHBJREFUeF7tkDESQDAQRblBlrjAGnok+rAOgFm9xv2PYMwos2k0in3tm/eLn31GySFpixYS1m7+MqK2Cy58irHjhviQ8pKpZRLzYkJER6uwjXU/eMTRxLXvAMDtKOjwZABzF19/qyqkjzXZn1EURbkB2CsMU+yyQX8AAAAASUVORK5CYII=';
string public constant helm9 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUAAAADBg1jboOJlZ+3wcX///84ZTkDAAAAAXRSTlMAQObYZgAAALRJREFUeF7t0sENwiAYhmFIFyilCxTwXoABtHxMUNh/FTHVePix8WK88F5IeAIJAPthPfEGPhLlSwVRe7AlPNmqITpVnUeyXFrGdcreu5FxUN6EjCXrACtkpgyVYtlNyDCpwUGXULZLyggJhCdnssGWAGhEwlwZBEQAUWnLSGJeB6yMebeIkdHm5+grNpLfsV5O3yS0V79mcbr58ImvxwFym+fbwXubuT3Ynn4ncmX/q9fr3QEwyRmLpRsTnwAAAABJRU5ErkJggg==';


}

contract Mainhands1 {

string public constant mainhand1 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAAAAAABpLipvb29zNi98QTV/f3+MWUOXl5e6urr09PQEjFlPAAAAAXRSTlMAQObYZgAAAK1JREFUeF7t0DEOgkAQhtGZG8wsq4aSxMQaKygpOACF8RwYL7CxgZoG6CzXU7qh5t/ORCNfMc3LFDP0v21tqWJj0XKEzqYqZv8QwKZuu2nqcsD2mhZONVlf11znIRCvMpfF5HNCJfPQD4KUy9dzfxa8PKoeM8Spd0S2Asr9KIEbyI4Ct4g7CWBuAtgt8x7nC2DShevAOD5FmQ5ZlHdVlG0TZRb63viDh5sf+QvuDdejHG8Nv5PXAAAAAElFTkSuQmCC';
string public constant mainhand10 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAWFhYaEQY0IxU6OjpJMiBMTExWPitpTDdzc3OVlZW8vLzFCjmwAAAAAXRSTlMAQObYZgAAANJJREFUeF7t0L8KwjAQgPGk9AEMloKdiuLfSQT3gk6ODuITFFLfwjcIlEKyBbr0sopg7+V8geQWBRH6rT/uOI79tqEhQWqsRxSfwBLKwfXh8TgzDm1YsTeo/HhMMkR0nZ9jhx1iX4OfeYUIL2jB+rl0+DRgofWzbFwDoEziZ61lA50SRWBamxps6Cm81FWt0hAzoaVKqyCzVIoJhpkLNnkUjIgfcoqj/Ud8JZmtziQv7yTPaR7Ty6Mt+9emO5Jnl4LixW1E8QZJXhuSI53Tp7Mv9AaqdD1c7WK/5gAAAABJRU5ErkJggg==';
string public constant mainhand11 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAWFhYaEQY0IxU6OjpJMiBMTExWPitpTDdzc3OVlZW8vLzg4OCD2IJXAAAAAXRSTlMAQObYZgAAAKhJREFUeF5jGKFgFIwCQQZBfNKSggcdBfDoltwoI4BHVnKhNE5pQemFyyZOdMAlLTZl5+xdExlwAcZEt1W7HRlwAsHMWSuXOODWLjZz5uojuKWnpcwRdMFjuaCPAANuaQERKQEGPEByI15pRmcFfNJMphRJR+CVZtAIwiut3oRXWhW/tDB+w5kMGIYqUDLCK60c5oBPWi1bAJ+01m680poz8ce4Eh38DwAdJBy0VAIGPAAAAABJRU5ErkJggg==';
string public constant mainhand12 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAHBRESExoeISgvNz9AQmREUlhienxjboOJlZ+3wcX///+gYzCNAAAAAXRSTlMAQObYZgAAAOtJREFUeF7d0TFOw0AQBdCZG8wqFmI3DRInIJzAICEuwAFoICfANR2BaqUUsVK5sfB3lQ57L0ck6vkNEgh++/SLmS8/HuMciGmQSOrpICn75fHInc9lsPRhHqeCHCeXlzOGxYYxqgufAWzr7HGIQH8Lt64R/Xrv1+82/fq183TYvWyfosdpBoYmZPewMqOx4PJY8GjmcQHwYEKZTYJ3n7WgzYyn9pnwOLXhphZ/0Z2d3LucShbCOnaMZXmgrCbVkUmq+r/ylTFeXFPWy1/kldCcyV+Nnn/nL6erzDi2HWPdc36jLClTjkZZv/gTLUNOIqK58JMAAAAASUVORK5CYII=';
string public constant mainhand13 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAA/+AXEyhjboOJlZ+3wcX///81FybzAAAAAXRSTlMAQObYZgAAAJpJREFUeF7tzSESwjAQRuFdg96/IpqUoQcIN+i0F4Cmupuhuf8RCD4bg0Hk2U88+qt6vZ40lQ8WYpMvB4hgsoO2GIXFmTx4ELIYdx5miKrA4s1DAeWq8hCDBxxQZaRzKS5jnTXlrbgEqXJOe349wm22ePz6WmdyWcf9XPYgZHqM2RPZvr4L2z4lITPG9Gww8d1Ti6/SYqf0S70PQKsaNTddt8UAAAAASUVORK5CYII=';
string public constant mainhand14 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAAALDCU6IiVAQmRUNCtjboN1SzuJlZ+UZkq3wcX///8SjTBCAAAAAXRSTlMAQObYZgAAAK5JREFUeF7t0DEKwkAQheHZG8wERGKZG4hY2O8FVMKy1mIfRJZcQGxTbBE7C4vNKcUDzAuypAj4tx9viqEf+2dEgMoyNEBTH1jXoY9rVU2q/VEfr6K7wXG4wnHbkM51iAxvdwTYtXtwe5QjA+4z+Q3Zv2gqLsf4xIBNHqcR9pCHLE5Z7N2EvKtFWNVie6isysVl87ifNTaVtZUV0li+0TxbuAZx2XaIzZMJNYOvfAC3szVWWs8c1QAAAABJRU5ErkJggg==';
string public constant mainhand15 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAADBg0oAhlAQmRfBR9jboOEDRyJlZ+3wcW9KirrdmH///9vErs/AAAAAXRSTlMAQObYZgAAAVhJREFUeF7N0TFLw0AYBuA7f0FCCHWUGuMcQnEXbO0Y5HqdpVy8sWC8QKcMkivZSilNRzfdAg6B+3OeDk7ffQ6l4Ls+vB/HvQQK9X2fOHN2VTa92yPBVdN7rvK4bZ+0qXxXWR62pulDHy7fm08xsXXmQbxYGaO1Nh3PoNt5863aXl8CHC9Ki+tdacLaA9/dinJ92JuqB1jI9n2Xa7lvOg2xTWl6rZsOOi53ix/Vq05Bba6UtqkbkMeMidxyYSqASTyabktdM26CAuBoJr6Vzfswgwa701opVbx0owTiiWKWuawewMkvGbflWXsND07TlLFUvmUETsDHov3YeA6m4bOQ7Ya4QofDqbTsTiwfUY5vMY7iC4yDCGOaDgnGowTlGw9lfgyHNcqDV5TPO4JydTqm8yXKKsP5hH9KGcrEJ/81Hs5BgnL4B2coD1Cm8wTl0jtm7gLn38G+AM5Odt8dbwPjAAAAAElFTkSuQmCC';
string public constant mainhand16 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAaEQY0IxVTLQZgIwJ4QAaZXBEQ1NguAAAAAXRSTlMAQObYZgAAAKRJREFUeF7t0jEOgzAMBdBvTuCiuHOExA3oAdIq3QskO6j3P0NVlk7+C2JA6l+fvq1ExmnyT8f56nsTAamRDjaPm3Xj1WHTL8hImCy3ZVvhcdjG9sVhyco5As2U4CS8BP2gHksOrV8GrOSkhPNMFDInUFbKOVIunKsytnekfOd3mLDj2Q+lfOP8XMASRs51158PvD3xdofTxiLlC2cZD2S0R/EvH/ZVE7W/42QBAAAAAElFTkSuQmCC';
string public constant mainhand17 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAATlBMVEUAAAD////aM0NJEQZbGg6lDx2tQEqPFBUYFCW6bXTRhItyCQraf2fwqZaFOkHgiJDgkn3WIjOsWjyvXmXKbkzMXVYHBRHiioRDEgn/0sew2P5WAAAAAnRSTlMAAHaTzTgAAADbSURBVHhe7dI5jgMxEENRkVVaevE+6/0vOoUe2EFHFh04EfOHjxKUoA/vxwMPPPDAAw+cUgKJtN+TGDSjiMP+yjjsQcWgHb6NkHDY82cxqnidA0PD5/U0hRaxfWxpCa923dKQXjv8/K9B9H6S8Ke55NBsRBeORXqaSnbSG/vx8VZKru61H4M22ZJzrf14S9NqzAUMGmnLEhb9GATdvUW4G8fYNgsJg+1hSfTh0Lx3WyOexvu5N6r4q/7ImPYalm8GLRNJw3R/CdcLNQweWbN4c1gwXyiWQ3BX1vYH8JsQjlFDP7AAAAAASUVORK5CYII=';
string public constant mainhand18 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAKTxEYxg8aEQY0IxU5mzRTLQZgIwJ4QAaZXBHxXBzGAAAAAXRSTlMAQObYZgAAANtJREFUeF7tz72KwkAUBeAzZNJP1OkzK6LlaJCkHBcLywQM2KvYLiyL2vo7L7Ds6+4T3INgJXjaj8O5F6+SdwzVT0fZNkxV/2QY5xOZE6Ce9ggrZIQ9YLOgpfkZ1ODam+UCT4waxVVHamvXZvfGiX+5ZdsNVuRl3OZIRU4WWwclv3YvGoCwV7XM1d6ntZf5UBT2S+Qyxp/MyO34Pf4g23/eOsYhJZeXRw/CycHDEN55gPCtpfzbN4R1Y2rWHtLttAsWtaasz5wDXjTJhfMGNFV4hjUfx+K5+hwP5B+8oSB2SjRDXQAAAABJRU5ErkJggg==';
string public constant mainhand19 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAABJQIBuwgBzCICMQMaEQY0IxVJMiBWPitl/3NmSTNpTDecbE6l/6bqIlETAAAAAXRSTlMAQObYZgAAAIRJREFUeF5joDcYBaNgFLiIBuCRZblrfhSPtOTdyTV4tMtOL8rBLc2aPP1YNR7pMqOcbjzSFWk1rXicFt7djc/lrKE78EkzMERsxSvNuicAr3Q3XmmGaPyWh+O3nLULv+UVeKUZwlPxSoclMAxiwIpXNiwVv3QpAwUBx9qOV5ohlGGgAQDLlB0An7lKiAAAAABJRU5ErkJggg==';
string public constant mainhand2 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAWlBMVEUAAAD9Xz39l039sE0KBgJgIwJ4QAb+63X/1GX/8Zz/++C0bxxTLQYoDwr+2HVPHhR/ORODTw//9sGjSBhxJhaVOSb/xFGuZhwqGgZrQAv9d01+ORSZXBGdYhpLRBctAAAAAXRSTlMAQObYZgAAAMNJREFUeF7t0VVuRUEMA9BxMnwRHhb2v80qXYJTqT/j/yMHwp9mZAROy+PVpdWlfZDWLi4urQ4NFZpCVEDaD9GHgrSq1TDBAa2l/O4Mpri0ZsUKYuHazr4KVMAUn70VXZWZurbeTYM5WOmGK/UriDVXIf+spVVwNtzuENxvLH5ek1kq2zVtG4uX/dssid/7sbA4zscnj1NKMUS2OacYJ16/8heNU57N0nPzF7NiXv8bnm1nWjN2hH9W9ODs0cmBg8eOhB9HYgZjUPAN5AAAAABJRU5ErkJggg==';
string public constant mainhand20 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAZlBMVEUAAAAYFCUbFABaZ3ZfRwBseIfa5uTeuC3m7u30/vz+5Qj/97Q1JwBKRVgjGgD47pf6/wBgbX2Bi5hXCgozLz//wMD/5gCcdQBqUACMlaBAMACoGhrGlADLmAD/aGjMmQDMpC59YQuZuOPEAAAAAXRSTlMAQObYZgAAALRJREFUeF7t0UcSwzAMA0CS6sU9vef/n8zETwAPOti47wigaMvZs4c1dmINTrDm2UVY89X5iON58qkDsftjhjHem93a+6DoHTW9vQqnTvFZsdm9U+o0+ACPdg1He81o33B0YkVvGKt6rzj1tYKjRx8vn1IR7Gw5xUcesKfNu/g8FBDbU8hDTwg2swl5hCwJmxBAS2KDfaL2doMtiT2fhdCICG01AsNlOX5hfH8dLd65VmqUPT/XyQoZtDVQqAAAAABJRU5ErkJggg==';
string public constant mainhand21 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAGAwYNCQ0aFRctKSpIQ0RoYWJ6BEtVAAAAAXRSTlMAQObYZgAAAN9JREFUeF7t08FxxCAMhlHcgR3bKeAXFICEc/cKCvAuSgnbfwlJAWKPmRz2uz5GGg4Kf9u7d++W317w/rS6LPOIP7WY9Tx6sDOAo2v2d+wgEaDUmn0GMbGATpeZBBACfBY0U4BGXKzbjUbM6duqqJDPkGaPViVmn9vTei8SZ5+vZk0L+bzh2uqyVhSf+YznR1Soy6umdKGz/68w6XE/TEEDfqRm/YaUfb4jtQocs88FiJGo+xw2YkDiFQbMAuGvc8DrjUiGs8OkED5yGHFhFJ3DqFWLLmHY9Kuv7yj8h34A0NwtVjD5JEoAAAAASUVORK5CYII=';
string public constant mainhand22 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAADBg1XWqFjboNygMOJlZ+as+a3wcXX6/////+4leshAAAAAXRSTlMAQObYZgAAAO5JREFUeF7t1LFqwzAQx+G7N7izZZuOhr5AhpL5Ag1dRTGmo4oQXTOYQ2/QNUMQftu+gHQZMhXyWz8EfzQc3O3ZMySbLzYrmfxlPu/Xq8WDFmpPxqNmak/u1wZPNwJkzpqr216KZ5fSVPRa5+3wkWLQpcaYS3EpdvNS51330UknTc4ji5O3tcHqWGLfV38Vs+pFfgPjkerL1ccYAIYGb/47CBJDrWlfvJy4I6iG++bJza8tzrdPcjEy1JuKhy7J3GDUA2DqBBpNBPhzbjID4DkSGI0BrNwdFpOR4L+Gs80nMvndZvUPHA8YbEaGx/sD92A4WMM0MT8AAAAASUVORK5CYII=';
string public constant mainhand23 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAALVBMVEUAAAAaEQY0IxVTLQZgIwJxBARyISF4QAaWDg6ZXBGwCAj1Ojr+yMj/h4f///+/a1ztAAAAAXRSTlMAQObYZgAAAOpJREFUeF7V0LEKglAYxfGjUIQuFsKlTRzqBYJma5AeoN2t3QSxJ4jaIhqaJIhClxAiskcIeoF6mMam7ywS0X/98XE5Fz/ohEoZqFBGHzdLsLjiCMCUuZGe6PSUD2sYBWXz6oqoB0ZeTxyJO9hnmEisb2rjLJ2sBFbBfnlGPZTYmb+eC116XG2Xjzt2Etul+XriEAus+emtNC4y50A+9SBkzwp0exYgnWeufAyo2Pcswn5EFFrkgbJD2eccc04oqzXnAVjtASrMHlqU+5xHK7DskHNS6c97nKeU4eJvU3xZk7MWfpHR+hZ/egNoIzSQV9WxrgAAAABJRU5ErkJggg==';
string public constant mainhand24 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAb1BMVEUAAAD/NgH9/wH/igH////a5uT0/vwbFABseIfm7u1aZ3ZfRwD+5QjeuC2Bi5j/97Q1JwCMlaBXCgr6/wAYFCWcdQAjGgD47pf/wMD/5gBgbX1AMADMmQDMpC5qUAD/aGhBO1R9YQuoGhrGlADLmADQL4H4AAAAAXRSTlMAQObYZgAAATlJREFUeF7t0reOw0AMBFAOyd1VDs7hYvj/bzxRBwNuycaFj42qh5kRlp7imOKHGBM8oP0jB1uoRKlJBOsDuAv2dmBhjk7/uAB8XxounFluWwUKh94NVW21dbXM4gnezVWyZDtWNerBw4UzCExQgHy4Miy2WIXIjTnVArqlwoVnRsqy9jbremaiuCzR9oUxV7owqpRYWNn/wgTDgrOoChHUyTEPS2+1YKHA/65SDQGBCW68ROcsDFZQECvBrFfP1puFWCg4WhhmQ71TFmFCFLMKKDpaDEdH59WGe/9h+LH1XhnHRufDNAVHb1P99jpOEVy147n+7o6x6OZlTN1xDOL23HfHA0VwMzR9tw1ZKrum74OWStu3P1F7vZqNBu/3haJXSqGnvRKGm83pM4y/3k9tvPM00WPu/34BSTMNj7JgBh0AAAAASUVORK5CYII=';
string public constant mainhand25 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAGFBMVEUAAAAGAwYLBwoaFRctKSpIQ0RoYWKhm5sepfXIAAAAAXRSTlMAQObYZgAAANlJREFUeF6t1D0SwiAQQGG4wTKSWEu8AC45AP71IQn2ThJP4P29gPMa3far9rGD+TLO0NiM7AfkZhRQWyfkDblhbrcr8pqAbV2OEXh7dpm4BOIX86OECFn2z4CLLUEEeA1OKGrYAfstHIW6nKIhPkeLfHDAtUTKdi9Kx9iUJMRjEgGe1DF7YD9rD2xnzYa4y5StdtFRl46ymfbC2S4/ZRvVOehS1NOTFtUBeNJEfNU+I98FOGnFxdOKfFv4cxoM8VuImwkZiv9jbBLkW2TOyD2GMS2zz8j2H2U+Q9cojz1SoocAAAAASUVORK5CYII=';
string public constant mainhand26 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAV1BMVEUAAAAHBRHU1NRwcHCenp5HR0cVFRWxsbG/vb56enocHBwpKSn09PT///8nJyd9fX3p6emgoKA3Nzfh4eFjY2MhISFISEgbGxsoKCgjBgJLS0tbW1s0NDQ+M12xAAAAAXRSTlMAQObYZgAAARBJREFUeF7t1MeOxiAMBGDGhZKQ+pet7/+cG7Ql0t5srhn5wOUTIwsR/Lly5Qr+DrBb+jFYJ5ht/iWoRg3ecJ6rFecTgCbYLl4RADQEzTasB0adpgpAiTJstSFEVOvttVmxYUhKmeimQiRsXJik3MLktNT6sghHI8Z7JuBRiJmjGaMAeCMSHcfRjD8BFErMOqoVP+O3lSRqxXovRGk5bFqMNmBEKeWQWRYgmPFdRXI6bLAGMWpWyWid7RoqbZp16FnbDLNP45hBmRBcQdTzN/J099uovPa0JreeVT/8vZV77EboWFhH7VHdNiAOfhxgslfQY+OwP+HWzH67+9824qNTbx29dwQ/5h5Mboz4wv/0F0nXCDs8gAIEAAAAAElFTkSuQmCC';
string public constant mainhand27 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAANlBMVEUAAADfezofDxL/yE05Ih7nl1D/02lqWlHGRi+EeW3HakX//////eKaQDmqopRRQToHBREGAwaiMolvAAAAAXRSTlMAQObYZgAAAUhJREFUeF7tz8mO5CAQhOGJ3Ni81fu/7AS0+k6W+ujfAsmHj4R/f9vb29vb21td68vwrJXq+Q31yeP4qQLrgBx2yuMIKCKAZ5bALmbVJ65cBw962C42EVSorkXNYhuLVNDp3CCy+CbuXgUKHZRDYSJisYvPvu48iLmhShWJ2MWngrg0VgZQkcD9VIWW67pwtVsBzeCuQxuuVSv8EQ9P4LvNaFspxBGfTewdozQQg/YuOjHtHnZog3KsotzEkCOBRdvQUooO3NzFD9/GYaCbdh5xQ+L47OIebmjaGm2bdv/J1BFGqtquH+vhSVwamw+egz8JfAjKIKeFSN8fTOyHQ0eZn5qYJwZTHyFqOvjBpPsanHk0TEVtDfZPCnu4CAQGse6dNjlaxMzk99LJ0YTsXHPTupvR9ryl7j7r57J5/b1duj+0X2rSv+0/clcRKZqIe0EAAAAASUVORK5CYII=';


}

contract Mainhands2 {


string public constant mainhand28 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAALVBMVEUAAAAAIzMAR2UAmdsYFCQaEQY30P9OVl5n2/9qcnyAi5iirbPa5uT0/vz///+bK6ViAAAAAXRSTlMAQObYZgAAAN9JREFUeF7t0DEKwjAYBeAXJNBJ2gtkc3SIvYBHCIKIdRRKJjf3giCd3Fy8QnHsovYY3XUpnXoGaYc6+Od3dehbP14e+UFlyJAhgc+gCNSLUdVozekpdD+umtoeaE4SiGoXVw4eA8qmtZ252qJJ4zCcGteyrcJgcXWwiNNtAPkoHVwftQ95d7CyWx9AlM9prjQ8D7IwNLflJ2T2zSOMxFGjbWNTkr/ulrtx6mZKows5niQfzgyxrfpbR2d858PrPcGiL0iDP45kdZXz5cywfGEZiwnPBVuPrvz4jWUs8Ttvu7I0o2y+fNAAAAAASUVORK5CYII=';
string public constant mainhand29 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAaHAAvHABZIgCJNACwMAD3QgD/kHD/1c6w1jDFAAAAAXRSTlMAQObYZgAAAPRJREFUeF7d0LFuwjAURmGb8AC+Du0MJlHXBhNYG0HoSpCa7E3bPACh4QFA6mN3r+TDwNZ//Qafa/Vn4xdFG1+ZL8jRzx75fIOvyB0/vj7vmfHy1XC5g9OhRz7h49HngNwNz8TNK7WN6nVPvFsdKT332Ja3HbWlLaYnzVdPXHtqi+pFS5e9OWoble4JWJeH7xvpR0x31DYp3TtwXLoG0+3jFHgrD8B6WX20xLvqAG3zUgpKLyQ3EuZMJpKaIHuJJQmy9iJ2E2ItmbhtFiyTeLmZBcusXzgxYXYzsfBrYvRU/dNpa5ATZBVXzAWyzQ3ynNtE3b9ftzQrBQgzLsoAAAAASUVORK5CYII=';
string public constant mainhand3 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAHBREiEQ41IBdRNyRxVTSii0/bTTTMAAAAAXRSTlMAQObYZgAAAHNJREFUeF7t0rERgCAQBdGjA4QKgCtA0AYYxAaU/luxAjcmYNM3nyE4mazVamU2S+zPTOOzvRb4enol7ncGbjqa/ecjvg+wRvybT6kDO40D2Gihx8WVKwCb2ILgPAvOK3LCtbh95nPckI+ArFUoz2ysTN4HLKUMqqviTQkAAAAASUVORK5CYII=';
string public constant mainhand30 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAeFBMVEUAAAAHBRFHR0fU1NRwcHC/vb6enp7/HwAVFRX/nIgpKSmgoKCxsbF6enojBgL/vTb/zsXp6el9fX0cHBxISEj09PRjY2MhISE3NzcnJyf///+jFABbW1s0NDTGMR1lFQrh4eFmHhQbGxsoKCgnCQSDFgdMEAdSFw9ELN1YAAAAAXRSTlMAQObYZgAAAUFJREFUeF7t0rdyAzEMBFAuAKbLwYrO+f//0DipcweysAthtn2zO7xzt/uXGWtwruv9m+QKO8aYK5bnGIvroeDCAbtlaPeodj7DbMccs9M47Iwa0kInaxTLzoo9tDbG64ozbMUzXL5+LZC3YWrnMardASBmb9qNETFOU8wv75sNNgylfuIpBuYgxgebOu8n74ULbFCrzgcJQZIRD/CM4dCziCQj/v786of714E5UNM0Njw8fTwiPvfciVBDNgzcJWCzoQtkxbTvmbtFbbcYrUODpe9V+rAAzoz3FILv1DrrISXyFDy2zXYNCltKrOoTbVlPZRqalYRVF/lE0l5s4Xa15c1zzWou1ieih/LdJDW2ZVQ8WMXshtQWV6/l2MFkb4cam9bjHYq1SLk9lv/bSIdK3VbsPsKVY6nBXIyR3uSX/gFO/gxCOph57AAAAABJRU5ErkJggg==';
string public constant mainhand31 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAkFBMVEUAAAD///8AAAAAAAD///8AAAAORTIQVz4YDxMHMyMqd1zrh7Mog2MZEBQZa04YblAEHxU4pX46nntBEyhbwZ1qIkIYEBP2qMv/y+JTEzAFJhrSRYPlOIVGJyD/f7gRWD87nHoiBxMKOCgORDIHMiMPRDIaERUPRTLbZJgQRjPqXpwGKBwwHBgIMyT/vtsINCQ7zPPsAAAABnRSTlMAAQECAgNDwa4SAAABL0lEQVR4Xu3Wx27DMBBFUSqJp5BUr+5O7eX//y6MDWThTaI32wy0PbgAIQzG/Tr/82RzsF7jNODxkD4DHz+mANu272Hdbl52ywnE18mOoJVuabCCMLtlHAs3BhvhsNxEOCxa4OGkOeL4VcUZyjh2QhZseTCKjQGXeFqYSzQtxIyHiSOOlWONYyqiOIM2YCXCNXFtee8yaYxLddSdYLhSKusDhtl3WtaDQ2Z43hedeghn+SftfcU5VL4Y7m+5ksFh6fdHyt+2mF7kdyTDVqDy5SLX4eEsvP4jzrKErzLsqMtcJueHlWEC6OUbjC5MgFY5gamf5jU1DZ3w2O76mZaUWH6uMjdXs6/liDfLMHsVJr1KWrwEYJEmHEU8C7SGV8r+aBEtosoKYZdU0pZT4WS/AOLuEqSMfExmAAAAAElFTkSuQmCC';
string public constant mainhand32 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAM1BMVEUAAAA5xuMBAQECAgJNZbTD6/yP0/8WFCWIiIhERkcvLy////8CZotNm+Z+7v9Gvf0CDD6BljT2AAAAA3RSTlMACd3T1tH+AAAA3ElEQVR4Xu3TSW7EMAwFUcefpCb3cP/ThkxygZSy6ABd8PZBMCkdf9e7dy3D1C0gbr5pN/COtbhhHHsW47QUt0gcQXHtyRuftWOcbeEIjgPjohursptT7OFOb0nzLxsUl6U4yvJxV/Cnw8pC7JYUY0/q3oj+KI3fRksbgbHFD5YQNpk9taZOgJWZVPjX2rTuUh8Eu+l+aY0xwchuJmkMTQFspp6UWOmZdhB7ai31lVQHwb1/H8vwqGMZro7/nTCcyo/iWraw7n1wPOe8HlBrjGtRfJx6XEsH7SUu2yfJbQoXjUWIqAAAAABJRU5ErkJggg==';
string public constant mainhand33 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAANlBMVEUAAAADBg0iEhZEUlgvNz9RQToeIShLy1hqWlF+hoyEeW0uMDYSExqqopTN2NxienxTWF7///8epEkyAAAAAXRSTlMAQObYZgAAAUpJREFUeF7t0ttqwzAQBFDN3nSzneT/f7Yrq9D0zatAQ0tHWBjDYRbJ6S8HwNNr0N77F+53xGx9akMNadTvuMbw8YyPGL7XnhPNoEfGBqYubaRMi4sefWjKbSaftuP6PYE+i/eslIB+v4xrrZR10L1lVfIPji/rg/JZXbLjegQsXFN+ONOx19F7GXcApI+HlrGpAuiBqX3soj53yVq0zrEDmlwWFPc+dcC69pCeWAkz17GdupWmNBQgASxioL35OouFHQc0CzXa/TERDlnXJkQb+SYiBqRQgM02yGa2TRrlAANrdHC2QcMeBhhYDICEsZgJbsIiwnHsDGzMNw7j+aMwhJlfOe1p45zF1miCOeZFDQHbjbFW7BjCsqLhkfUDS5it78D8O7G8DdtLOP1k/vOee6bWGr1giy5qQoEqrTdrWca+Fm1y+EXfnQ9TcwrSb9aQWAAAAABJRU5ErkJggg==';
string public constant mainhand34 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAgVBMVEUAAAAdDTU4RFFKV2VLVl9TIZ2YbdexbNTS2eHcn/vu8PNxRrGAi5iIXMiXoa1EJHOuuMUqNEHG0NzHhekkKzPg5OkvFVRlcn9kb3tFMFAjD0GZZLV+i5dbZ3X14P9/jJtXQGOFkJ1CMErSkfOWorJdOXB9O57hsPqbWrxdRGrsx//akouDAAAAAXRSTlMAQObYZgAAAUhJREFUeF7t08duBCEQBFCqyUxOm3ed4/9/oNmxpfHRDZLnsn3i8lRdIMR/TJNjf7BPwp+z9hefgk2TnhxxRmeXhu2Mddgw3VITWidg6y/eRmx1RrIdNsmdoQefpL9x4Q/JuC5MBnZm0ZaJtQsL9uzOIUTcLK/3Vxnxe1EFRNwwkzFjW5moD6FhdYaDwF1tB2MgZs0YtBHTgxu8OSEJj/QcvN9CYNqwsKyBeqQ2+K3CdOJhili3o2xDUHBbFhZQJaD6aSQ4pyR4WCpJIJoClDpDMLGkDqT2FMDGURM69WFf1AQ2FujQPR7fjvcOZ8fVAHZ0Te7R9oGn0ZZXvY82ntl2F1VJ/dXxt55VGUMTByXJkKH7ZCugdQ4u0rFAFq5WwwZiJY1qtevWOZhvb7PWWxUQq/5Kn7G3v6Rp6IxkgSG9NKx9ytCvv+0XBfEOUwiWk1AAAAAASUVORK5CYII=';
string public constant mainhand35 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAe1BMVEUAAAAAAACVlZVLbWMAAABLbmQAAAAoSkEAAAAAhmMAAAAAhmMnS0H///8AvIQAAAAAvYQA+8sAAAAA/Mz///8eHh4ARQBsbGzDw8MAh2MAogBMb2UwMDCWlpYoS0EAbwAB/ygo/yhUVFQAvYS8v72Wl5aBgYFLS0sAVwBfQwtyAAAAEnRSTlMAAQxLYmaqrLPi4+Xv8fv8/P67zkqhAAABfUlEQVR4Xu3Vt5LcMBCE4ZH37p8ZOLrdvZN5/ycUgbotpQSYqFTqANlXDbIDyL8dOGHTH6ydFLPRZiyle7P19ia7pKXhbCIDOCKCyIC1yxJRgRGcdIlZBB/C26JUTDfG0rJlBH4M4EtaSsXuyMhQMTTcW41Z0orB/Sci9A2VUgiBEMp1hvtgehjHGHR29zAj99/WgdEZfC4zzP3YELxci/u1B190K+EJ/zIvtVkPYiwtIfIgeL32fiBHwx3vjDng7nTtvCwR1PcEbrRv1h4cUdyvzq34YUxqOASMUODmVGwdU20x8mDu4HgftoZzw0LdOctRzGV7fNy10XBxshzFdeiKv6jBDsja81bYp+87fvuViZxV6Xwudht5N7VO+nCyap/z1NmDpWHk2R1LL66Mz3YCf0BGdMO8PoNfTYzjF9+Gqhvm5Rn8Zs15RLfjoyJZxvJeV0TMVAcwU8U1AxqQk+nu/h8dY0yMwfN4HcfoNA1z1nWdhjHrmXsD8lfkN7scMF6M+h02AAAAAElFTkSuQmCC';
string public constant mainhand36 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAAAhwAGS8AQ1kAZ4kClq4ewNlU0d5x8f7O//94VZz0AAAAAXRSTlMAQObYZgAAAVBJREFUeF7V0jFPwlAUBeBbIOlj621RV3m00bFQiowQKDoCiQ2zVdMRwR/wDGjK1qHE+G/F1eTcycWzfsnLuSePfqUkahJMszEiKqGqxpEU4bxWZLCa+tcca1PVD3Mb+4mPVGLf5pVNOPbwMJdZupwGRbXG1X9YmLUMij3kEwTvh1EpzPZUjIywS16EuJtdX91VimA26XBPBvNssJNmjaPiFutnnOWhwh5kRSjs5q+ehd2Un0Y7ofo27WVC9c29zm8w1xJ9HRrIb8ny4wZ3s0/Vd/g7GT/VmbBLK9EPZNDrtpfoFeym1CZxz68IualN+Qxyk6z+4lHY7aU/WyzXSMt1J+ExZGN7Y44vGFU3XpdbHDjw8Ig99h3YLWJ2J4gt7rKedgnEY68/aROKG/U0O5h1m12CsdixLum/xnIdkX2RyVvIPBbZjR2RO3I3/oMBvgHT7EFpuaoNKQAAAABJRU5ErkJggg==';
string public constant mainhand37 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAD//WEAAAAAAAAAAABLMQB+YQCrd0TqlAD/0gr/8Jf//GH///+tXRQ0AAAABHRSTlMAftPfUYV6WQAAAblJREFUeF6l0zFqwzAUBuAXqsGgpQfo1BMEWjp0EsQYanyIQlOnCTlCBw+huKnHEqqQMRgCGTxkKNhbTHBiHapSQyKK9LT0Tfb7+PXLg+HPlAUch4I5XilODKWFhV5Wpns6DFQUBmet9qo14pk47aiMJ2a5PtLCkNr5/JTJRv/Y3ehUAfryJGIqrBk+Wh0vyUEyLUVipgvwWrKvVXNz3upuT8Y3+zWTnKgXczyxnzN9MQvzmgqMIVvxJW1SO1KIVlxUCRZOotVw3gA6Ed/NayfzpYtzvmYSPCuHfDGcK6Z2XkiuZbj6tnbvDzFfouloMc3f1wzvftsNppIB53TbQTj6es7jwQQuEU6f837w2gWM/fUjeWEYTyB8JINtF+Pr8Ok+HjOM/bAfYkwOcTzaLW8HCO/GfJb3Oj3ZfWnhvHcTzJiijqlwkTNQTAuwzk0X7iR3WsCGjvsAV7a42pWbkWTaJiZ7kqvNULGwMPzuH2oA5D9T6yBnNi6OP776MsvptFXaAMaiLIVaEl+VGHfLhJBhfQeTm3MkNT4sTfXOA+ckLiTg1DFz8sjNQd/Jce1iCD6dTHwng+R/zw8G/7m6cWq6fwAAAABJRU5ErkJggg==';
string public constant mainhand38 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAaEQY2DgBkGwCGIwSuPwfnXwv71Df+/b2198ebAAAAAXRSTlMAQObYZgAAAQxJREFUeF7t0b1ygkAUhuFlvQE1g2nx8NeqKLXZRPossOkFzvZqdm2TNLnsYL9nJzOpMuPbPvPBcGB/7949iCgJpgzEN81fkzY7MaqHjxKPe5IX11IbIF8e6tDa7krwJNTlm62lE4s465TVQ+MaA6RqQG1qdI4TfVYW37HD3rXmlW7tReERz8I1B9VggyN3F+ccng8jS+X8bp6bF1WrQcKKOcpNv1V1K90n4W2/2VZSJAQDxMVBJhV1b242O0gtySiApacVwdnt1jyZEpzCCMGOYmA3FiPTBfET87V49XK49PJ87eXE//Bgz/5rs3UBPn7MP2kFZdOIVD6IZs5ohuXM/8cbL7PQz0HEftEPI3k2esP9casAAAAASUVORK5CYII=';
string public constant mainhand39 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAXVBMVEUAAAAdHR06OjpQVVAo2CQMLQxtdGue+2IwSC8kIBo8ZzsYThZ96TiWnpMqeygwKSIVFCk2OTeCr4E5rTUPDw8bEiMcGBMMLgtORj1+h38vLy82OjU5MytwZVlPSEH3jClGAAAAAXRSTlMAQObYZgAAAU5JREFUeF7t0UduxTAMBFAOSUnuv5b0+x8zphJ8b63ZJgQE2IuHGVHyJ8ZZWOK48HbiG3vh6Fv3QzttlZOHLu6i2pzvUlY9lKkL277ywDLBokZTaSlhrROHmrQ9mHu1kMknaGt2WK1WpGovTTZDpCzLimDaIgNE6SWlZRKotmmoqfglpYsHhrTqrXarndUwxNo7QFs0Is1UczcMHbJVfNodG2FQm7NqfJnitBtbjizA4qP2OO1tvq3oeVu87rIbQmCN3NXuD34q1RoNa3toYKtd/9oHOm+MsCA1LAPvmdL4XdYM1oa2pyaei+sNBWuFvXCVER2a8QBgNwMobArTW55JHNoyuW1TZIQleVAWo+dx33/x+PD5weOXwwuNj/3hKLwmLDn/g+sVPE6JxHcTjCPEQGkdz+dRwUWnxX1JEFYv6S5C6seDtkAc0gaoeptvAKsJG1wJSfcAAAAASUVORK5CYII=';
string public constant mainhand4 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAaEQY0IxVTLQZgIwJ4QAaZXBEQ1NguAAAAAXRSTlMAQObYZgAAAG9JREFUeF7tzrEJgDAQRuHLTSCofYxqH8UBbOwTxN7C7D+CGzyENAp57cd/nHyuUqnkugpU0+KBp/VcYN7H4Q5w3OoehBqYm4uZ1/WG3HpSk3CtR4VrZuXPjEfWwGzlp5nIPPO8tTmsUbAxb+7kRQ+7eApj2JgsTgAAAABJRU5ErkJggg==';
string public constant mainhand40 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAgFBRDDApJNjZYExGDFhWgHhqiJCLUJiXcJyHnMTXzTFD/enb/h4r/npv/yMgpZEV0AAAAAXRSTlMAQObYZgAAAOpJREFUeF7VzyFOA1EURuF7d3AhL3kMbZp0B28LIwiCBssCsDWT1FUiwKKbwRMCyctUEEQNsrJLqEBUINgAdwP3EBIMf4771C+/XfFi1b3HvIvZTQfgyrwpXszPRR+An0x7k3CjvRfz6Q+882JuBg+4esCb0rzAs96PM/fMK+CVNW8W89ImjzFLbg/3Ei+lDwPWy4p8OLoGzus0L8BV51/EMgJOSyPW824GLKn9rMA62ZrAxmvkfIacrpB1UZBnzFvmV0O+ZV4MyBfvQhvfIJ90yLlFTlNkNfmvO54yt8jaMd8ZemZOzCp/sG+SETsUtHQqAgAAAABJRU5ErkJggg==';
string public constant mainhand5 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAVFBMVEUAAAAbGh8bFAAfFwIjGgBBIgV5gYuSkpKaoqyzv73O2tjPz89qcXva5uQnKixENQpERETq8fD0/vwzLz/ExMRXY2dXXWW+z8xfZmhjNQynsrFmZmaCLjYsAAAAAXRSTlMAQObYZgAAAINJREFUeF7tkEcOhEAMBPHkSGbj//8JL9hD9wGt5LqX3OXhB4qiKIowbidsyYQtqRByyCtsS0sLLj8SF71uRPTCRHci+o9343YozO583+4n9e8ig0F3h1ykonb7vGJ16Okj7g6tHr/RWdA1l+tB2cyzs3YAMcCjFevfEyH7iTht74pWTnNQBJwNSpzpAAAAAElFTkSuQmCC';
string public constant mainhand6 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAYFCUlFBRseIeFWUaLlqWirbPa5uT0/vzAlmiMAAAAAXRSTlMAQObYZgAAAF1JREFUeF5joAsYBaNgFIwCRkEBvNIRjXilU8sF8EmbhTcyMOKWF04rF5AQwKs9XACf9op0AXy2lxcy4AGipXjdnoZXs1i4AP5gZSAImPBLqyjg1eyCV5pBiWEkAwA1VAruYfenCQAAAABJRU5ErkJggg==';
string public constant mainhand7 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAPFBMVEUAAAAfFwLDx8uus7mTmJ3l5eWus7dxQxhBIgXO0dOco6lRKwnJztOPXCz6+/y9wcZjNQzS0tImHADOzs7rDghKAAAAAXRSTlMAQObYZgAAAIBJREFUeF7tzzkKA0EMBVGVep/N2/3v6h6cOJ3vyKAChQ++7GJRFEVRFEWATnMqoqbt+BA1vVEG8uyq2zpyBdUuOdMUzWOktGTWHcEWv52YtXHZHts2dcaua44ysZ94akzQH2zzBO1pwaSgvDxhJnPH5Pi2T9Prd2RL77+98HdFbw7OAsavhnpWAAAAAElFTkSuQmCC';
string public constant mainhand8 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAXFCUiID1AN1dkUXaFADuacqHGRi/fezr/yE1UT2V7AAAAAXRSTlMAQObYZgAAAHlJREFUeF7tzbEJgDAQhWELr1edQJzAEdQFIiip3UAQyZU2kriB2dY4wL30kr/9eHfZr0qlUgoqYdaQiRU6T05RhDfAz0GnAsz62mT2xtqpkNkarmS+veVW5iX4GFhqYTcEln1fM9SMOe8g19/rRuTygx7s41yKknoBAh8XQSP8e7MAAAAASUVORK5CYII=';
string public constant mainhand9 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAAAHBREiEQ41IBdRNyRjboNxVTSJlZ+ii0+3wcX////eKRstAAAAAXRSTlMAQObYZgAAAMRJREFUeF7t0TEKwkAQBdDJDbKgyqYSPIEq9iGL1jaKZdCQeiFk9RgpTNjtUkjYnNLCer5FsBDy28cwnxn6ZcaMCUSIOKrgsDuGiDu9Ai69TsD2yD/VHLFVsuKbOaumLcu98/szYNvvDhVgd8+bkGdb5w+eja0znp0xZXbhmKLGFGnDc2eKWIObmzIWRHy3U4r+3cwAk3xNriEY9+IGmIRQiCn4wgnmDeY1wSzoXxMsB91lO+Qn80Qjlq6FuzFTVEGWn2pvq3Mye93AvgMAAAAASUVORK5CYII=';


}

contract Offhands1 {

string public constant offhand1 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant offhand10 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAQlBMVEUAAAAXHhtZa2BPY1s8UkooPzcjMi0hHh99kYmYqqPN1c7+/v0jNzAAKG0aKSQuQjsTQ5YuYbgvKi86OjocMipCYFVnfnjfAAAAAXRSTlMAQObYZgAAAJlJREFUeF7t08kNAzEMQ1GRktdZsvffalIDBQRz8L8/EAZku3Kr1eqWwchozITGqLqNrk8jOGoCy9MI9z6risk+IdqgU8XFnRzbR5yms6u4OH+4ipg6NrhzbEgcCSyBq4oL+5bAI4MnEr8qMRwdlsBVxpHChKlhj8STz/1UNc4IJqYJkwPsD62e79Jk/DoOHbf7Q8fWml251Rc1RwPYZstpkgAAAABJRU5ErkJggg==';
string public constant offhand11 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAAAWFhYaEQY0IxU6OjpJMiBMTExzc3OVlZW8vLzg4ODMk8wmAAAAAXRSTlMAQObYZgAAAKZJREFUeF7t0zEOgkAQRmHiCTgCAWWsNfRUGG9BaDaWEhJYO4mJ1sYEd0sKk91TeoJ9jY0Fr/2Kv5mJfm5paSktSVenBFk/kQ8mIa7MTNxoWxMr/wFu84uvw9ylvSvD/MrEANtMbBzmYyYeuJqZrTjgtZ4McKMmS5z3tN3ueke8F9rumNsCeSzkDde43ciDuFG3KFw+qite8nAmVgP+idxj4lUa/WNfIQQp8j7FGkoAAAAASUVORK5CYII=';
string public constant offhand13 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAADBg0iID1AN1dkUXaacqHGRi/fezr/yE16hFSoAAAAAXRSTlMAQObYZgAAAHZJREFUeF5jGBZgFIyCUSCAX1oQv7SYAF6jxRPxGi1eiEc6Ea+0QCFjeiMezWXieKQFxcrKMnBLC4mnpVXglhZWT6toL8Qt7VbRUSiI23D38kQ8gcYYjE+WgTEEnywDowkDXiCMUzejAojALe0MliBTGtPcUQAAK64Q9QL1EWsAAAAASUVORK5CYII=';
string public constant offhand14 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAWFhYaEQY0IxVJMiBMTExWPitpTDdzc3OVlZWcbE68vLz09PSEs3P5AAAAAXRSTlMAQObYZgAAAIlJREFUeF5jGORgFIyCUWCMV5a53IACaSHzxfikpY2rDPBJK3vh0y5xyG2VAR7pOSbpCjhlGXfMPIxPuqdzcxYe6c6ZhymQ7ojEZzeDRORmPNKMopF4Dd/aiVd3N37pTrzSDJKdm93xSIt2muCT1pip4oZHmknJJYkBj7QxXmkGZZDZ+ExnGIIAAOUDJQmg9zU1AAAAAElFTkSuQmCC';
string public constant offhand15 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJ1BMVEUAAAAWFhYzHhVJMiBSITNsLzKGQjyTfoWdgoTDsLDLtbTRtpj78No+UeagAAAAAXRSTlMAQObYZgAAANBJREFUeF7F1SESwkAMRuHkBtnusoY6JKrDCZhZELjM7GLQFZXcAQ7Qo1SgcFg4FBXY/BVMp7HfvExc6DeO4NRim4xs59wQX54CuFYHmN97AsurAfFu6wBT5RiyIOYN5AoyvzxiN3gJJnMR35jM9UMY8CeMnOwaMq1HDjY7zJSUE+JzypDbKc4zshabDxN8bPWOuVxtjriOHeZWb7DuEZ+6PqPLuz79wa0mAVwmOCOOJQebORYFTKspFsgqDJh1RMS0GJOQF+QzcwOZl2Tjy30BXO88+ndif0AAAAAASUVORK5CYII=';
string public constant offhand16 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAGFBMVEUAAAAXFCUhGy4rJDU+NUZRRFZiVWV/boFF7Q+WAAAAAXRSTlMAQObYZgAAAHlJREFUeF7tz7EJgDAQheHLBgnBBYIL6Gn64CNO4ACCYC24PxbW90pt8rcfeVzkr1qtVisEqgBxpwC8yXHCiWIzUO9Ct1d4xrg5o1CuhVz+rjPmt0EHtq7nRX6+ZKzefK56JJtdzGOqJoubx34Xu043T9htQVhBPu8Bps4Y0S9hyNoAAAAASUVORK5CYII=';
string public constant offhand17 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAFVBMVEUAAAAXFCUxJUdLR15hYniDh5mosLsDb9zEAAAAAXRSTlMAQObYZgAAAH5JREFUeF7t0cEJwzAMRmF5A5l2g2zQqBNU0j1gejdo/xk6QV4hUCjgd/3gByH5davVqqO2h3Yl7jaB9w3ZdjuIX45snkrj5bMDR8Vbz9mjkthHEKdPuc7hB90dqcTFXIE8kNOnAAe97G6w/Z2ftC23EUrsyA23pYUK1eUv+wAY7R2VFAyEsAAAAABJRU5ErkJggg==';
string public constant offhand18 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAHBREiEQ41IBdRNyRjboNxVTSJlZ+cbE6ii0+3wcXHakXnl1D/02n//eL///91h2BOAAAAAXRSTlMAQObYZgAAALlJREFUOMtjYBgFo2DoAEZBAXzSgh14pWXv4JWWuygoiNtowbpX63/hkhes+r/21f//37HLC0atWlV7UVB81VJs8ozhpYKCMrcFGAXFS7G4TzQQqEnwDFCGUTQQm7tARuwRgDHRgTxIozWI+Ig1QIGijM4CEHXYtTOmCODQDNbOmCmASzNIO6ObAC7NIO2MLgI4NQO1C5oI4tQM0m6IRzMwQJwYRgHJgNFIAK+0IwMNpQ3xS+N12QABAIRuI755zbOIAAAAAElFTkSuQmCC';
string public constant offhand19 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAQlBMVEUAAAARERRVVVUtKSpoYWKEfH0/OzwyMjIzMzOWlparq6sbGhodCwsNCQ1gXV5HR0dIRUaFKyuIhIUqDw+cMTFdV1n8aTgAAAAAAXRSTlMAQObYZgAAALdJREFUeF7t0TmOAzEMRFFVkdTann3uf1WzGzYmcUKFA34xfahA5VVZlmVZlmV4tmVFvTlnnAMUqo0x4hpoemnb0JDWSFHPx2Ma4rhRhtmp5wzhKk1uIjKG0a7tOO4LcE4ggqWSjt0eh+n3gRLClXLTheNnUddnEAuFSted2oPL5zSp12+Z2gxq59U13xU2HYd0fax3BdyGgudcqeAfjs2z8wxlR7/5ky/dwxUfwC/KTsB15X+V3QEXvAUYhCf98AAAAABJRU5ErkJggg==';
string public constant offhand2 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant offhand20 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAM1BMVEUAAABzc3MuLi5KSkqwsLC6uromJiZkZGRoaGjZ2dmGhoZHR0eLi4u8vLyirbPAwMA+Pj4mKO8tAAAAAXRSTlMAQObYZgAAAJhJREFUeF7t0UkOAkEMQ9Gyk9TUE/c/LWrEBXAWCFHef3nxyt9tbW1tbW3b9JbH0GviSMSWuKZBrwfgLtaxG+b0QaG9GnDHQUmqGaaLcaEhdjmuV4MP9bmyqbEDlWIcAGaVqcxdprIvU4VOZTLVmaDaU1TnD1ONDBVEKvRKD5HKPEFlPUPVM1RdpyovKojx402l1ncrj5+3T9RSBUwv7NH0AAAAAElFTkSuQmCC';
string public constant offhand21 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAaEQYxAEo0IxVFAGdJMiBWPitZAIZlAJhmSTN4ALScbE5fc0btAAAAAXRSTlMAQObYZgAAAHhJREFUeF5jIA6MglEwClzwS3s50FBaA7+0Fl5ppooW/NJFeKXd8UkLCrs4CwrglBabHRQ9Dbc0Y+bunYm4ZYVN01KNBXFKh002NZ4WiNtpYTOnBQrgcXooPlkGBlG8sgyMAgxDFTDilTQ2xCttGsiADwgKMIwsAABr/BH8e2EtHAAAAABJRU5ErkJggg==';
string public constant offhand22 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAYFBMVEUAAABbPmRmRm9xVXk9LRIYEiVgYGAnJycrIAvExMTf399RPx2Hh4djShpYWFiObS6TeGKioqK7oH3SuJfdxqmehnKtiEKAaVYzHzjV1dVVPxVrV0YzJg/arlo4Ij54WyRHD0X0AAAAAXRSTlMAQObYZgAAAMVJREFUeF7t0UduRTEIQNEPuPvVXn7K/ncZLCULgGHEnR8B9uvfZVmWZVmW1fe92rplWfpvLXbrtiq5T2Otm5L745P1quL+gtYfl+KLEOmXb1LtQymsqS0/fYivzncpBHz6dMpxyMyJDqcY7GPDSHVX4KGLIRcCN73lOM4x8mQUbu1bQ5jnXADrfopwep6vIXYh34Ak3jqNCF3MwJac+J9SQuwA2db9nV7SEjHl3KTAPByIDn6uZjV8HN3ZBiv5rraNC6y2H6vdC4pHygahAAAAAElFTkSuQmCC';
string public constant offhand23 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAUVBMVEUAAAAOjhsUrSQXHhtFyFMjMi2nrafAycF9kIl9kYklFBRKSUhofHU2PDmGxI0UDQtBT0koKChjY2MIKAg6OjpPOjY8UkqwubEuQjsaKSQJQwmu9BCAAAAAAXRSTlMAQObYZgAAAKlJREFUeF7t01cOAyEUQ1Hs9yjTJ73sf6FhtmCUfETc/yMDEuG79Xq9ZxNu0TE36JhiA0bDtKFh2jjI01aIHGUMZpOxI8l4ptdLyxiUMVx+MRsI8iHimXSoGARFbIWgI5l6akDDNsDpWDU8A8SaKxankaOGg5Xj0CrekWOwIOKSWrDJ1pZd/syn62tZdD3dJxlXfViZh5/UG7dtk+14k204vyvW9SX8bb0PpYEFbfH+j+EAAAAASUVORK5CYII=';
string public constant offhand24 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAALVBMVEUAAAAAL0MAQl8Ac6UAd6oAmdsMHyUOVHMRPUpApMNn2/9w0vGv2Oq17f/M5/M6nApVAAAAAXRSTlMAQObYZgAAAItJREFUeF5jgIFRMApGAS9+6Qv4pXfzbscnzbszHa/2bc/xSk97gVc6C790XjU+f7HFVV/A6TneDWxrOvfi1n179qpOfN6euXk2HumdqbM3bMApmzYt6hgezSlpUcvwSYdEJeCRZnMNxSfNkOS6DJ90ohp+0xPSEhiGIGDDHygpIfilw/AbnsAw7AAAn18jn2dPvJ0AAAAASUVORK5CYII=';
string public constant offhand25 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAM1BMVEUAAABVqv+q//9VVar///+S2/+U1/+u5P/D6/yP0/9Nm+ZNZbQWFCU7OmZISncmLEwoMVWXR3vbAAAACHRSTlMAAwMDAwcTE7WQ+WUAAACdSURBVHhe7dNNCgJBDEThHn+rkox6/9OaaTzBEwShH5DdR60yftRqtVqtVqfruJ44r3HDusx1pVvfLxBPPThWUexD7xQrJaarJdUTR6YMcYTDEMfEotgOUWyL4sM2djGsxv4Ki2F1KYhTbmyMnabYE+8Ui2MdOPBPRgbBW08rItuS6pEcj8q2ifB5PB9Jh7vXHN7Y9KgdD2+f+y+9AducCZPerhk5AAAAAElFTkSuQmCC';
string public constant offhand26 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAXVBMVEUAAAAOjhsUrSQXHhsYxyoRqCAd8DMjMi0m3DhFyFN9kImnrafAycEuQjtofHUUDQt9kYk2PDlBT0lKSUglFBSGxI08UkpjY2MoKCgJQwkaKSQIKAhPOjawubE6Ojqv8samAAAAAXRSTlMAQObYZgAAAORJREFUeF7t0kd2BCEMRVF9ScRQobudw/6XaewlfCYe1GN8jxAHWegqLum8YpewLGFf0Tz2v8PzBT2pszi45CAsFh+89jBGFI4Hz6kPZ2fn1BL7ZCEm9EFij4aWYmCxHuzWblXRE/fDs1Vot0jhaLWgmZB40zKXziyGkjgYiqInCtuhUP1KkRq8qRawGAolsdVpC5o5gzdVgMN2oGjBE4c3QPHUmwXhRqMnDovV30uz+IaeZFoO1zaxsNhoa+eNpGKv3+/nyev7853GU5vQGWGZrh77vtP28UlbeXmbmNcf8p+7+gEpnAhIvwhduwAAAABJRU5ErkJggg==';
string public constant offhand27 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAP1BMVEUAAAAaEQY0IxVJMiBWPitnAABmSTO5HR39Xz2cbE5KAADLPyHuNDSoGRn/hkK0AAD9sE3+2HX+63WGAAD/jUw9F7d7AAAAAXRSTlMAQObYZgAAAIhJREFUeF7t0jcSAzEMQ1GBQWGj0/3PaukIBjsPf/8GLFiiZVmWZZ+A7SWCr2dEP1489oj2+wrgHsB7yB7O25PHfeKT1XtvR9vou729OQxA3F0AENjq0E1HNRROD84CImpmKoKfOdTq5CLVFMT05HXRZRmui5JBUfgYy5eBhiISwBr4EgDlL8u+pYgDSqXOmooAAAAASUVORK5CYII=';


}

contract Offhands2 {


string public constant offhand28 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAWlBMVEUAAAD9Xz3+63X/86f9sE3/0FjYSCkWFhb/322LJRH/wknsojPpZBXpnzX78NqdPwdqKCrKigztSyi7TArcmhZJEwjOPiFOGyv5tVH7tErShhn8ykjZISHZZxQqPAuJAAAAAXRSTlMAQObYZgAAAQFJREFUeF7t0kduxDAUA9D8Jsm9TU25/zXD0QECmF4MApgQtHui2sdfOXPmjLzJuh/A8aYzy0FL4grFhbbAIZT1OlHVlQGHCoPDYSsWAhfgEkI8tkTRugB15xLibuHQortxZ65WSoj4brxKp6FjUa/Fu7U/bUS1q+/Wt3Xt1ExdjcE5d8U8Rgbf8j13HmrEthtg6DCDZfA85y+zx358/a64A25Y/GNK4Jwq7rV9XCkMm9p2IHCf77A0zn2fmrb9zASutmmHjcGwOTcDh1N6nZrDLzsDX4DZd74cxpwGXiYeL8dwtdQHTct2AG8Th1PCmIBJnZorLIdhgUmNXlgyoP8ov6eXDk5FNLR6AAAAAElFTkSuQmCC';
string public constant offhand29 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAq1BMVEUAAAAZGRn9Xz3+63X9sE3+2HX9l01BQUFXHDAoKCj/hkJUVFT88vamNCu6tLfJtLzPyszu3uTwTUDwjTL07O/28PP4urZyQ03+x1t4Lkd5eXmKXmjj3d87KmdLS0toU57n1sLrbTgmGUjv4MF6eno+EyHz2LeNMUr13pCTk5OUgYj50EhoKSStmaAvLy9JFif97tL+rEk0Dhv+2FvRQTbS0dHg2Nv/t2D/7K6ez8tdAAAAAXRSTlMAQObYZgAAASdJREFUeF7t1sVuBEEMBNAu2z20zBRmZvr/L4t7slKumdooymHr/lRykzr8fuTPra5xVLL2MmlTqnivXevY1Iq6HX8kLRVhHV/UuKnNYo2f2yeNbRD7xo0jmWnC144ZHTVgPG+3AqMtKo5ZnBkG8we3nHY8IXGQGiupMXjfDOemLH6c5BmPd3L2OuMsYVOueHTQEotc8dvoVcyUxJKxNkiyUXmqylPNSev0sJ8ztkq2x+HaojcksIiZasDUMTkxbofTO+4Jsui475ga2tZYqOV23KWak8bVi2Ph9Bc2RsNxp4vAaJwCq84SQSKDC8xulqhMm1ejWDhewaKKBEKX5QwiyTJ6UQLkNwyJnyNwgfOicE37n9pt8AQe457H2N3nMY5c/9vzsc0nq1wSZ2JZvnUAAAAASUVORK5CYII=';
string public constant offhand3 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant offhand30 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAMFBMVEUAAAAAAAAADgAbGxs0QABfX19meQCHh4ejpAC1tbXExMTX1wDf39///Fz//Mr///8/TGl4AAAAAXRSTlMAQObYZgAAAPxJREFUeF5jIBmMglHwgJa6P+CV5fuHT5Lv//9/fLjlmfb9c2DAI70bv3T3W9zSjAJqHXe3MBvgki5S63i7SR6PdMbtTfq4pZ3SdnvoCOCSDnJRcunQxCXNIK6SltZ0EJdmQdEStwyfYGMD7NLlE8Urzx+0+W+Aw2z3iYKCkicm4jK9JH3O/2OdAjhkBQXdMqdlCAob4NDsNnPm+T8Z/bjsrhSc0iM48zBOnzFO6REQFGDABSTdMiYyMOCWXpJzEI80o9RCAQZ88nhkaQ/wW86CT5rRxQOvbrFGBnxASBGfrGD5HGM80uJFnpPxSDNqP8HrNIkt+L3twEADAADQNz7aS4lKgwAAAABJRU5ErkJggg==';
string public constant offhand31 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAKlBMVEUAAAAFCA8GAwYNCQ0aFRcbNTItKSowTj9FbkZIQ0RLy1hoYWKhm5v///+QBsuGAAAAAXRSTlMAQObYZgAAAOlJREFUeF7tzLFqwkAcx/G7PIEVUle9lpYM2cQnEMExtjW6HulBcDpoODM6iHvw/vA3S+kYcS1I+hQ+kXmA+7tX8l0//H7sf9fW1uYJ8SNofk4RgXRvmpbHGvrfxNgAVn9nSaxfFsv0gAjutZfE+apCLAnev41U9avOFL+PZBWoA8FzNZSnyzgkeVyEFxVKJ/N8PgEhlCjcnH2kdYI1Ery2SwQscOZmM8kBUQZZx30+2CaIT8HOzZqbxFoA4+aIm0drv/YEd3jc/cw2Mm7Ymd8daN1/pbg5iDTrNUz1oJl/g3nEeMP0nN1XV6JDRv215aJNAAAAAElFTkSuQmCC';
string public constant offhand32 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAZlBMVEUAAAAEEAd96Tie+2IJJwxl4jkKMw8aTR8o2CQFIQQBCQMBCAItjyo6rDdOx0sbdRiAaVaTeGKf/527oH0YEiVs6mkQs2XSuJfdxqkNGA6ehnJrV0YAPSASShAKeUQOLRUBXDEm2YNrPch+AAAAAXRSTlMAQObYZgAAAR9JREFUeF7t1LdywzAQBFBcQmSmcrL9/z/pg2T1OsuFC+wMyze3ywLuf6elpaWlpaUlxjesuHcw/aEmk9beiE8SbTqKIAA8eJTooklTWdcVPpAkiqufJVjK/rB/8LrCFMk7gMMPd8Zsbl+q9w9OYrNHz97zk5MjEz5yCOrv/AC26pvNuF1Ucy0/A1pX98OysNfp8wQkxtljr5z5VurhGKOpd1K8DQynGUiBCXddGvst+zKfQUxWcRpSGpYQamuLq7mOw9AvPsBpAnrdUr5c/DV1Y7VcWxNa9GfwXeq9Wi4ToMjLiyNSziF0auu/Pme9K4bnjzBzUMpBW2cyvkFaPXvmG5ymjCJmjTnvdmXSw+Kis6by++Jn7FwX/zaILx3+BkCRDqIFVcTQAAAAAElFTkSuQmCC';
string public constant offhand33 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAARVBMVEUAAABKNVhQf4aKrbL////D6e4eEyV8WZM1I0GiytAHBRHk+PsbQ0kVDBsZHyDy/f8tHjYrGTdQN2E/LUpgRnJCdHuEtr08JWR4AAAAAXRSTlMAQObYZgAAARRJREFUeF7t1UduxDAUA9Bf1V0m7f5HjTWYJOtPZTNIuH+gLQoQ/XbqCnacVjevEFxoVq/4P4sr/L3q3Sp6wDIxesAT6wQeb1Z/YDcPbyQTW8W2+sGQnVgJ0zBWVRrDDdH3lTiPsPWHVr60UK01YO2hj1HyTmrWI/prqVE4i/UenlmJRi4l+xWJWlManApnkqiVftjgkrZL78j1GPncKBXeqYb1yJyILp3Vovobs3YDNJ8T7+69K8Uy9nNWJ5boWj55O09KpTRxCVnzibcyh24kyOvULsuNsLSNZzGqy1ujP4dfFvBtCb8u4PSkOOGYGmD/A09V2rNhv2NMu03d8GaSj3dCI+4mKFb3Y0UfsCVxITwx+wlYhQoamhNiQQAAAABJRU5ErkJggg==';
string public constant offhand34 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAArlBMVEUAAAAHBREYDxNMfz9eOyV6eWV9TSqE222jXi1aJA8cEQ1tQCAeNxchRBkjEwid6omio5QTEgyth1Gw/Z3AiVLIy7fv8t3/zm1vu0D7qFqaWCYxZyM2YCx/0mkKFAVipzghHxIqRhnSkVHaiT3aikCMzmT2s3FZnUiPTyGsaz0VFAsVJAu4bTeHt2FowFILHwfY/86UZ0uYg3XtnVJtp0pYijn2/+8tVST/yJMuLB2c1sARAAAAAXRSTlMAQObYZgAAASRJREFUeF7t0jVyBDEUBFAhDDMtMpiZ7n8xa6dcztUKHHg7f9Wt0id/lku4F176aIu90vu8WePYI0cPz3vSw/ioiT7Cv6wznaHFy6zKNHwi1WOF4jnPKj2fY5hP+X5/zzG8Tvgrf1sTLA/JNLkhaBYL2DJWK4barapViLWy7a3aKAFotnsZrpQ6QHbolBBGiFMQQtZY/Hlyt7tOGGNEaQ4mCN2LrSylNBvj3twpS/NcijoN3VefadM8izR1nc0GJS1t86cUwWXetC2lZ+uMuzK3lFgcRc7FnWyoBTQyE+O+WrYjDqJoAjzZ2lEHlLhi+YMJXQGYEhgbL/wr6BeOrXbFhBE4lxQ4HY/kHcf45utVAduPGb9DdREnyQyvjmNrYW3tP8g3jRsSlM/V3QwAAAAASUVORK5CYII=';
string public constant offhand35 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAGFBMVEUAAABAAADpkwAAAADqlAD/0gr//GH///9lfYUpAAAAA3RSTlMABPrDchrYAAAAVElEQVR4Xu3LsQmAMBBA0Q+eqd3C1iapA2aQA1EXCGZ9J7hbIPfaz2dqIQRlxSFU7wXE6elRxSLpHt+B6R1tv7CU0ZATQyp9w1Zzx5MrnsXPyjTCD62nCcv5auYuAAAAAElFTkSuQmCC';
string public constant offhand36 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAV1BMVEUAAAAAAAAAAAAAYZgAAAAAAABNZbSP0//D6/xNm+ZD6foDBwRFRUUHBREvLy5pAACQkJAAY5r///85rNI7AAACZYpXAADAOzr9/f03qtFxGBeO7f9PDQ3C7G+GAAAABXRSTlMAAQLs/tGd1kEAAADwSURBVHhe7dPJDsIwDATQsnhLSzda9v//TpxSbpUqJohcmPvTOLFcfC9EmTCx0m9x97Ysn+swW2P5VHehD92Exa0S1uyWTQl482bP0ZpCH75njhbDNFtZwd0yNscmazgsYjVVi3htNbulZnW8vujr8tivYkXeXNBkmcCzYLcKYmExQ7FbVRib4jhafGw1w/CWZozoDfFEBbyq110IhF1ztOCu+qqqnGK49lABa9zGuanI01zlai6bJgGfT9maU/AjvTkkNIcLpMtbU+LNw+AYTQlYPP8ccHk8JuB7Ch5HGB/avm1xXdeYxXH+sfsfruoJsHcM5FNqVgsAAAAASUVORK5CYII=';
string public constant offhand37 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAJFBMVEUAAAAOAhsUAyQXBSkrAlQ7CmtFDn1ZGJlyKLytYfq4cf/Jk/9Lq2IaAAAAAXRSTlMAQObYZgAAALhJREFUeF7t07ENwjAQhWFLsVJAT42QndrikiNl4KxMkAnwiQmssAAKGzADY8ICfh0V+dtPT3Zz5l9aW7OYxwGONSKuyaL5GAPixGIBqyTA9qwcAvjZTgBXfNZkitEsSmXuT+raUOSFMuIHZd/ty2tBvHmluSnz9v1lRrwA3rwgm0UgM80ecIu5v2fvy1w9swNcc2wB23S5ujKHkUXB21ZlAkdydIzOJB06xA3pANjeJoOK0cAG85M+ptQomUVKhVgAAAAASUVORK5CYII=';
string public constant offhand38 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAaEQY2DgBkGwCGIwSuPwfnXwv71Df+/b2198ebAAAAAXRSTlMAQObYZgAAAOJJREFUeF61z7FOwzAQgOEDOOZIgZ1WdAcl6Q60YQ0Fuyuq5JgxA9h+AJT6sREP4B8W/vXT3enkLymzYR6E43hcmXUyzBY5Mvv9QGyRxUTmQDzoyOwdsPmdYbtqHK2ApwCsP/xW5rM0e+AXZGvTF/Devn8QB/+aYHn4JDYhbOJU5jE8pjKrjw2w88d1LvPo8zqXH7uI+enIPAOnbMMtsSHu89ZVRdZ+XhGv3LIrs9yYBfLD4kqA6/sK+Lx+FuqSuRWsY1b5z05Q6zucbWxFvNki9+01Mt4+Ncy7g1CHnWDLAnDfFa4+ZFRz4BkAAAAASUVORK5CYII=';
string public constant offhand39 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAYFBMVEUAAAAMDxBKCxLtbFAlLC50ISqtFSLCLg05JSDxQhz/zKhVHh4+HwN4ICmTOTlFS0xxKipGIxsWGxz1aCprb3AeJihoNQYQFBX0rTJFGBj6iVf/yWuxXFyPQUE9ExMuNjdUrTYyAAAAAXRSTlMAQObYZgAAARRJREFUeF7tz8duAzEMRdFHUn16c035/7+MJQTwmhogjoG5C+0O9IjKjtLr8KtPTjVO0p718nz1iyWWR4slISEmD/gkNYuF0vcwrFJxtBAZmU7TZKJAG/m2heTdYVVbkx1HSPJx0OJWInvXZd6aVWdDG7vOuawlnQYdtpE7F210vktoVWdTYHi3XM6XpSw3gwZPYOdu9/P95hxDic0E+/uzBThjjQbbcrNlIBiomj+zXoq1YdDh68gAZwoer9DVULAoWUONEo+gwBlwIIxqDDLMHAJBi8f+I+tHBD1uHhg0bxk3vVJ/9Sg647FvlBhP3PSoijJGLd4I1ZXd9XoX3nbid/ya5l278ZcdGdRH2zviov9nRz9OTQpId8itigAAAABJRU5ErkJggg==';
string public constant offhand4 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jwAFGwSgAAAIcAAGbMYQTAAAAAElFTkSuQmCC';
string public constant offhand40 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAVFBMVEUAAAAgFBQHBRGiJCJYExGhOrHcJyHzTFBrGnjXZ+FDFErhb+uCHRv/npv/re3/yMi4PLvzUk2WLbBMDVx9HYz3mf+bGJ2/MCyUKpY2ED3OTdD/zPQNJczrAAAAAXRSTlMAQObYZgAAAM9JREFUeF7t0UdyxDAMRFE2wKCsyU73v6c58g0+yjs1w+5Vo8j0fzlz5sxPBG/h+g1DjLdA63xs6ufjYvj7b80IX45zYfb1uN0+E8vrUcYy3Bm+l/E5FoinoTxxs7oeJmZt1zRNX2K47R1qF8J1VVKjuElqK5zbM7bJsmo7LBzcRZvdXdnF8Bsqr1RLte0Qvy0s7rq5B6yURa0lLcI2JVZt1Q4gEbtYojFq4zjHMdeh7s7xAGaLG683q9euOb8GcLYPqm0JPJl3SG2N/DSzPL986gXgcUakSwAAAABJRU5ErkJggg==';
string public constant offhand5 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAHlBMVEUAAAAXFCU5DiJIGSZhYnhpKjCDh5mLQzuosLuwZVCVE2h5AAAAAXRSTlMAQObYZgAAAI1JREFUeF7t0E0KwkAMR/HkBlEoroVOcwFrz+H4MfQA4tpAkR5AXPfGnsAnWNz1bX+b/COzW1paWhmpdnfkYxhx8Yn4kkYDPnm/BS5NHg24zv0B2PMwfeZzihfzDbikeBA7c4ryO3dfmXa385ifuvNMu/fMbU0sVYOseJrIJp7EGldiWQ/IyiyVIav8pTc+9itHe/3RNQAAAABJRU5ErkJggg==';
string public constant offhand6 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEUAAAAXFCVIGSZLR15hYnhpKjCDh5mSHD22NELjlTTxsE5LZKXzAAAAAXRSTlMAQObYZgAAAJZJREFUeF5jGOxgFIyCUSCAV5YxEa+0iBo+7YxGU/FpF9aa5IhP86rpYbhNF4laqa4igMfslUWtiXikF1U04bacUXOlRgduyxldZ1bgla7U6FDBLW3UHq6BV3qmEp5gE2qfFYRfehGeUBUJxy+tPgtPoDIIE5RWxiPNSJm0UZEjA15pQwY8QAi/tLCyAD5pRkNCmYg2AACCCiGNDMEv5wAAAABJRU5ErkJggg==';
string public constant offhand7 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAG1BMVEUAAAAYFCUlFBRseIeFWUaLlqWirbPa5uT0/vzAlmiMAAAAAXRSTlMAQObYZgAAAGFJREFUeF7ty6ENgDAQRuH/mKAV5JCEDboCYYGa+gbDAj1GgLHxJP0F2Pvsy8M/zjkXIwi5Mwhttb9CrpLQMwW1PaBHM5uhB5shpyUQYwsgxCoYLXyP+GgGM6w8b3xf8OIeKBQLDF3l5AkAAAAASUVORK5CYII=';
string public constant offhand8 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUAAAAXFCVpT2J/cIqbq7LH3NCc4ZOnAAAAAXRSTlMAQObYZgAAAHdJREFUeF7ty8EVQjEIBVHoIDHHAvzYgEIDRKzApP9WTAOPhbpwkdneM/Sv7Xa7Xa2pzlmwcjyHYz5HzIA7j1g75BarT5nVol8xi4V0J8SHRrcLoU6iKk54P+RuhQrwumrOTrjFj/INv1KuGbPNGyU1LRlzpV/3Bm3vEoqIwE1AAAAAAElFTkSuQmCC';
string public constant offhand9 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAPFBMVEUAAAAiKTcZDwpXMSG3wcXU3N80IRj///9mPCowOk4RFh92gJU0IBUqGhI4QlaLlqV8TDc4QVItNUZQMySfBZ3iAAAAAXRSTlMAQObYZgAAAKZJREFUeF7t1MkKBCEMRVFfBrXmHv7/XzsF1euGF5raeHF7CBG0/Gg0Gu0ZjIxGI/UcZ2nOaSCwNVCDJ9TA7juF66MuhzVkMDEazws7MXoO3AMflsO+kzi0NwrrPXj6Lu3+4m/MDQmMQmNjsZ6YehkXduOe1Vz7eq5MYxjIfyiFN10LCpnolsN8sTSPJYXfKZxZWgjMN5IE7Tdh0c5rUc2MFin/a/QB4VIIqYZt704AAAAASUVORK5CYII=';


}

contract Uniques {

string public constant unique52 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABSlBMVEUAAAD///8AAAABAQEAAAABAQEAAAABAQFUAAAAAAABAQEAAAAAAB6RkZEAAAD+2toAAAAAAAAAAAAAAAAAAACTk5MWEyQWFCQlIzIlJDPrlZUmJDMmJDIlIzIAAAAPDw8UFBQZGRkkJCQmJDMXFCUAAABLS0uamprSYmDn5Nv///+ZmZn29O3/zc0mJDN4eHjtl5dsLzLVoyT/GwFSITM2NjalQ0Gurq7/3NyicgCNIiCZBABjY2P/XQH/mjqOjo6NjY3g3tUaGhri39bm49r/wJ2BMTCLi4vi39cBAwKPj4/b2dGRkZH/4U/k4dnk4tkGBgY0NDQODg7/9cT8+fMYFSUFBQUgICDS0tJXV1eQkJDc2tLd2tPf3NTl4toBAAEUFBQVFRV6enqVlpaWlpaYmJh+fn7g3dVHR0cWEyQlIjD/7ZQlTUqsq6nl3NlIAAAAJHRSTlMAAAEBAgIDAwMEBAYICw0OECAmMUBw7O7z9fb9/f3+/v7+/v4EklekAAADWklEQVR4Xu3UV4/bVhCGYVFrp9lO707PzJxGUtrai2sv6b33/v9v883waJcmqYWMXOTGr4gFJOHRDAmcHRX/of8FP8QP8fiR8Wh85ulnnnv+2dHoAfG5Sz98+Ob3b19657O33l86M1oYM3NRfHDny8MLh9cv3Lp1/cdPnxwx80KYE+J/vvrt68s3vrl48fLtXxLrZ7wA5jStqpTCjXvvXfn2StBSqqpqCr0gDrkHxG98/uog3m01BzOuF6ZTxW09nU5349Wr+/v7q6tzMUfVKXXxT2l39eDgwOTdle0+NjuZqGbu4t1VpBINY1jD4ADJWDrCjfxrZeVEPDbMH0Phb8ZGDQ9Oho3Q/An6s7v2ykc60/hcDM2lCN0MDFNNVfIRtqUV0xDe3NyMHKC/M2Ox3TlwXlqxoyGMFAmbyjZPtmz4doA+EUNdu2Y6YzC7Y8VhLk4ibDbGRqd00+45e8VCwzglAWgFLMA2Vl/bwK6L/+A4USy2dxuLA86BugFMnCYTw6pTy0oAxt0aDUOYJGD0RHFZlpJmwZalYdDtEE07oftxCJwarLr8dVaJgCH39jhoDvXw7xwNoxjLMoQv8DsxKtB9Of7MTm0PE4yOZiIXcsDtHEcmuGGcmCdsO0QDTlx2GO+ccMTe2KiLbbAIJ8UNcU5EnPHmMZHuXWqdB5bXUQwNYEoUGscsyThGYNg+3uPmnRjOTsRsoVjm4KqqgIlUi2mX7ZoGzJGdOKwN28ZmSfbEeypobW251cx6fWIeOwGfGsQ7niiI6rYVJ+y97l1VTrrnmYCR98BBEETO4T2GeSISEcyAHcbNYG05W0DXYO8ry710to9Bd/wO6TPCle91OT/2Fq57/wAprw0cYA2DLysuTdMO8idgfA0cDCPFBFwGdDy57mHBXNLJ0fDfhuHJ6dFqYfKvdTB0U54sBKicCmjDs7Vr7+sOthjnnRpbQJudnRSXJ9OLr/utegDbgRZYMW3WtEYWc7F03p/v41OP4ysSax0mW/1ItTA3J+d0vfVKD59+oliCUbquzmzWKB8sgJexd2/tRwGI1jWDHaza8Ls9bJnsaXJNQg2uBzH5yuerhcn7DXt5YlTXc3C1sdFcGy1ct+MK1Y8tiutYtdvC5HExhI9r4U5PHYF/AfcYXA1pYWO9AAAAAElFTkSuQmCC';
string public constant unique43 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAM1BMVEUAAAAAAAA3qws1AilXCy+YIkEsFkK7VRxgVH7POUJz70RELlrGsXfb17P2rS3IqLiDZH9AefmqAAAAAXRSTlMAQObYZgAAA/JJREFUeF6F1otu6zAMA9BLyXbe3f7/ay9JIfCWrZjQdWnsExrKA/n3LKje7P27sK7rg8P7/nIOxXhMFR2o4ff0uq6z9KCedpQ9Of6Gg1JlzXDM3FFWRf6rpQPxjIbqS3BNKP20EHOIo1/oKrwcfA8BPzVMq9OFX0vfVH15Fa4x84cWtVWINO1dy1JRuBuBJ77tWhi0raq3G6+3fuCyNeouEW2bqA7ifcS3/t06GFsHEkkumUigb3C09DtrzNiOBqCx/B+d4cY/NQDjGrHO1k4qIpwMt51TvusLssK3Zl2RLeNyfFniXzU57ex2u9Sw3niirwbAmPAn9kV/AjWkIr62qos4k341fqPFxwA+P9fj4O+tk3btzmxN/A3Gan2Sfnx8UCOZqLoun7XOT3+jwR2ix0rL6IXgPLfez5OZPuNcRwdxCD/sveB1pX0tC3Rh+k/W2DoORz/wAaZSk9MeB7NZzlXxu/A4hJ/Btut6vMomyBPKNW3GwRRHP4KXD8a+RBmPzybpXmHrWj91D+Hjgcc4AktJUjXdq001KomztndiR2Na48BaEMhcqTciWlC1bNItIgpLz+BjxIqCqUVS6wKV3YjRpDGkjxlNW9gHBaVjSvfC1fOtYYzYC1vP4J0YVNZbacXl1rIwDmPrbzjcSHQq55TOLqiPsacZR9xYln0UZpMiPT+bdEPqTBl3OKKilGxrTF24haJZ1u6Xk7ctatagrX5XcGluoLcU9mRrWh2MuixxxPEFR+kgbi2iYaAeuklNjFQfaR0cO/H4hoe0LSev3JBNUDfj3sKa1lkT79QAIjIiRBht655/qn+9Z+ya88TU7lVG41CC7dC6Aa2W2wPZFJ1sBJhOHYHC1PuuibnTNvgayFkYXkjbdQhi6mF8R6MB3G9LjE/Wh0obGOpkMgFo0rvtjTmoZGJa4aVu0PomPpCVLKxrBRMPbDVQFmi5VPTn0hqGdDhgA+0xJlZUd3QcLNnWllq0cOlwcEcEwcS0oehE3a1qtaPL9m69IxUceuv4jv8FWMSy6H1jtHu20G63Bmgnnm8ivnSZYKwb5OV2v4S37gG1eb6elDaugleBzbj6VRjSBsa0D2w9cb5sG7Ww7F/Yr4B+0DOa/cqU7uCIQDzx+RPTqt3CIf3E58TnxLjACZA1fhFTQyPGT4GfmJaY/SaOlC0c8RtwhTSxvlP6gzh3wIJgjwmeOmIeBJGJxTjIrIynnXhqY/gh+m9BZuwNN6Z+Yi+pmO1O24UJQNy/6HevvXbGtJ3R8BKIbx1Otn2WnYah235vwoFG3bJRhazrvd7RmbXrWUesa5XR0VEH/kMzK/3B/vhJ+5fGXYjHzwf4D6TSNv0ylTH5AAAAAElFTkSuQmCC';
string public constant unique42 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAolBMVEX////+/n7RtphDjEWCqFkWFCQXFCUlTElDjEYXFCUycE0lTUo5OTlDjEZFNiVaXVqQkJDRtpj78NppVUAAAAAwJBYbGxs/Pz+CqFkzMzOZjoLPz88fQkA/Jgv///9FEyVLS0u0tLRsLzKBgYHt7e1SITOEYDYrUk8kJCQhLSFGjkmfkoWQWFo8PDwbGSmEZkSQclAtLS3bAgDGxsYaFyiHrGAJllh3AAAACXRSTlMAAtDu9fr8/f6YCgbaAAAEfElEQVR4Xu3V5270NhCG0U3PDGtRb9tdv5py/7eWd8i1rbVj+HeAPIJkgstjSl7A2vxX+7+qenf2Yxurd6c/tu9h6I/t+7j6GFc//PsnS/gQh5cdKvQyju/jZxDCAp477U/7/b6MYxS8Wru2ATiLG+Ccz9YjwGxvZEVZ/Arjm6j6fgGGzvZ0sXtfbLipjkuPZfEtLvqY9bK2zvllEdsf+2zfYtHVkw67VZ8/f/bhyVawP8K+1fGmBHxavF88zp13zu1gS1gUwlsMjU4u3tAvX76sd0Z//UrSCVSe/Y0WHmAjMf/+0y3z9DfjMBPfmttOMtGdxOIBrnm19PKs3oVApBSb36Y/poefH27xg03XMeYoOA/b90TLcaUr/DF6PGzRPE2MnR6UUg95SzNNK+sd9f2LrnqJ+l2JWMXu4aErRxeNUrC7nHN+pmGlYauKaNzvXYlihMpBx8jM5HL7cdSzTWmAuGDQYSAPXfwYoZ+KwJQtPh29nudhsGkgwIw3NFhLfhnBpTGEeH9/X84YAuvL/LgAp5SyLhw2Wezs/HhJh3D/fATFeix5B2wtqIUtEdkhkS8t3o9aselKpjPG6DKPBIsutGib7AU78VqBKEYYKMHIZauHYZ5nu8byzFr70qj1d/l2OsQYmO9agxc7p2GeJuhrTIPWFofWybFjNhIjx/WsS+WBZzPNayx2SLZOFlfbjYYV55RiM3Y17nRGaRA9G55eY1gLW+MaYwxwSEadqm35elKyk7UzM6+wJUVgClisokjRxRCik5Ey5knbCbd8jXtgBavsMMAaE76Fb4pCICWjEE1dp6ztxDxN17hplKozvqspGewZFH7Dt2AURhlbm2wiiwyvcXVsSDGma3R3RxxBcRZnBIsm8TjTo2F1hWG/fk0pAd8RIAMbZeBYMAM3qOtgU2Kq1ri2GtU13SFABdy2LRyGiplrgiU7dp1F/WvsvGYmItGCW+99iMxBeVRn663rhDdr3NTaOc3IMN2RD95H3/o2tl6S/y9NJzmrtTFXuG8uViljiJTa7VwbsLFv3U5SrChj62QhNcdqhck7bYxRipmwUqlP5zOe+YwYs/iIu86w0d65EY/fr7Hb+4wRMTB/ErfdnreAfMGMU/vR+xcM2zdNwXBkEysGBt+ezwcWaJERDL3AXmO37DVLROkRKzM+bM8HwfhmgWV/wf7Vzg123pfbJjLGIuDD4Qx8MDY9JtmejKQ17CtMGTOTvCCZrYXF3rhi0y6/MkluG7p5jaFLTet961lRwYftYWtlBqczBpjFyivjBcOXYCW3AYYXTNj1T48o1/TXuF9hl2tJZMa0IVeiJofVa4zKNHAp47Nowa3W3uv2HQwmctMgwjqt6RMdCJIO281GlwQDAhddcFM9YyLSDhE2pDMuW9rgvjN2BFsBXuFNVbwsQ9C7nRgSuAHW8r6Q+abaiK5WGJemqoBpWTzSeueAMswW05KmRkBfrXAlGF6WXXLAz9GiS54ykPX9ESyPnyPvSvoKl7ecc8AlUcDX0aoVfjtZNv0HLpi7khahN24AAAAASUVORK5CYII=';
string public constant unique41 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAq1BMVEUAAAD/////ATH/ATD/ATD/ATH/ATD/ATD/ATD/ATH/ATH/ATD/ATD/ATH/ADEAAAAkZ2wAQkhcmJxjucCa9v//ATEBSE4AJi0JXWYBAQEKCgoLDAwAHSQAQUcCAgJQu8MFBQUBAAAYGBgGBgYZGRkdHR0iCxAANDwlZ2wtbXJISEgJCQkEAAEEBARlZWUKSE6dtbf2AS/2ATD6ATH8ATH9ATH+ATELCwv////42kA4AAAAD3RSTlMAtuTl5ujr7PHz+Pv8/f7xmtO1AAADjUlEQVR4Xo3W55ajWAwE4Ambe3alGwHb3RM25xze/8mmShLnDsbLdHHpQws+yvgHx09upDG7ASbHCSsI9MDCPEaDVtUrXGvOj9B/GIVtnvWzPEb/BftGBEosAdor4PfpBhu0FmXAfZ6U+tjmTAtaUGWcghNN1IeWVbT/VWjw710Tuz6y6rZU4igXxwfarWO4Auv6O4wMH2i3xMLSEc6ID7TZvBZvMYdWPfTeAlhxnrK6I56oHWMSem8DlyO8024PcB94p83+P+4dOG6vpo/wRBeWeovzqofdfOwtzgNTs2eDATdYA2vgaaocOuYOPYoDTwxwcaVlxczAXj2K6eEw50XUYbUbLqVMG0w9sEylFtg6qWqp93rPf2Fzx6SUCj1wli+GzSIZd1dcoNPlogqsesERioChS4Ye+DPimleMoCPrpbXL5R6SB2wq0HZWmMCfWHHg7BiajM9b4F2FjleUUsvHhtVx2Mm/tq61aCdRQmpGGonhDwcWNMHplNJUWPKtYrGVt6OeJsc0xB8Epq0UCdYxW3vglKBJS6UO/HzFIl4CuuKsWKCSM/Ukau8mr34AeeY4B1YVSclev9c4sYxZqwcW1tsJaClZIDySgSu0uFYNvWIaRRLG7Qysgb2Xa5IvoT3yp+H4wgQ4LLA49g1Hlfg34UdKCG/4t+GPHGOHDZz+Ba4DZ64lLSnhvikj0gx/GtieZ8Vn4Jcb3Im/wQ4z8B2x/ACMma5YVPIe/0PcpJgmboZ/l5o3WISITCllfkW4xQIM3dpNXLFxET/sMS0zMGyW82xY7Q8kSr5a5q/bks8DN1jHr1fczigm7oE78ZxkmX9syzyfHc8SdDQnYpwHVukb/KvMi52k3ePQA/tmOCVUB863sL6DCYC42UFKqmLYitMtTH0+47FQBRV4pp2hiWGJ+x57N2zO0JKArVf8hfkzTuUDTE0LjXbIxAgstUg5wEIUV7hbLfmsD/k2ppAGEffRX2SNaA1dUU49Gx660Bp2K9LWiBTHqag0ob3C1fE8G978YnadiOXEa/ZYNbDZtD274pPj3U/5lyrULFbtxFcaeDmd7pr02exO+1cN2x0PDYqcPn96J132WHrvwIpeSXqFT5IMtxfCBw47dOPYAht46HZaVBWP/NPovSpvFlFiZFuupmO+xxElZqCHXQO6DxtFSSVn+g48bFUs7nsdbwRfOTD0wClhcX8vlkfit2p7xY4ADOUyAAAAAElFTkSuQmCC';
string public constant unique51 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAaVBMVEUAAAAAAAAAAACBp1iBp1iq0YEAAAAAAADY/7IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycE1DjEYlTUoAAACCqFmr0oLZ/7L////78NrRtpglTEn/IiUMDAwza0u115EzaUoKCgqPfIOeAAAAEnRSTlMAAQPS2+Dl6Ojq7fLz9vn7/f7WHydaAAADeklEQVR4Xt3W6XbrNgwEYHffbreZAUg793Z7/4csB6QUq1ZO4/7s6Mh0En8HAkzLufzf8s2Hn37+JSL+A43oXHmaD5orpZ+3w7N4PGezZTbj9mxt142R4Wol/3oCc6BPn7ywVka821ohAuxJr0n5Ct5na0xACpBX4+wt3kMB5DEUAOa/6QBY+LZcPcN8z357U0UUJjNtr9xyuxlnvt00r60VD4SMb7HldoOgVMQbPNha5jUmZvLlFvvxkmksAGc62tqN1hO/xH68ZKM6cL5R41oYszEY5yGSZt/Eg2ab2IQBgfBPKzBGYSL/qaOk8dAQILhUzxlSkpfsVOYRf301ttHC0CDlnMzuwmJWc0f9XefgUtmUIGPYQSNkgxHIx/f7+8YRCczWjfcNiaQRUEiAHm4NP7TccWPhnsU6kSvILTy0/aFl2sxh27o5spbkApDjoeEe/9iuNiPrApyEIQbiugBJrtuIQ9uRE6sCAsSOasiDEcKaWiu8a0i2C0tQgi6yD9l4m1o7bnLoNZhtykj7kDtVOKVsecRxh2lciMZWXLjyiAOYVKDYJsIcehqL0vom8F/vdA/fSWSP6MhWpdIYhdGM2ylu9VTDR0RPY09LILSARhrYiWydvNO58CUvF+OO9VGEkqY5K4tJMCk94O7Hwk0ABnGYYK7KYtO8iz/gNnHkZCxMptbuDInE+iU19bG+S9dkNHAn2BNkSnEJwNZN9bdwy4bM9S3rsgKSNJ4XBLKd42Crruo13PYbdywSAHGGo8+PE+iCUGEQwIZ9OoWPiWRSI0ZOrfBqa5iVHfdX2wVSCeTSvE5PFtbHwkjEaWFB2QubsQk77oyIiWPDudUPkkUaklckCSWB2q4heGyF9W3ZHa+9OTJ3IbqukozXHSFA/h5/Fv5qx9geacwUJaCpR4SaHWASQHwkOyAc8OF/NymNW9QUsE29RUgCD9hZmMaOIiNf8XUbuQRJcYIBkhq0UxELB2qIE8O1f/388scZBlivZX0QjBFBU4cAIjRgO8UruscCy6sbX74c8ItTLKi0sXYM2AtpnedYoDEFGA5b5a0rGgGMHxJdEgAJhWfisrCwcuw3lwUWXbZvXsr+ivnB6GzWphvGjqGE0AGfjM8erBm7sUDjmV4YUo1LCTcdO8txRNjM83iXQWFn7zzvR4bVsCSsGK/sGK/jnPhvSIWypfwzcwMAAAAASUVORK5CYII=';
string public constant unique50 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAA+VBMVEUAAAAPDw9OGSgVFhsAAAAAAAAVFhwWFx0AAAAWFx2Llrdkans9QVHZ3u1MUmYkREl5rFMYUTlAi0H///8iRkz/AUFQGyluJyeOPDz67LQtbk87jUMYGR/mxJMlckuCqlAsbkrSZ2Z6rFMpa0M/ikalABLr+/8tMDxBiEo+jT3/8Lj/8PQgRUgYHB+Ek66KlrV/kakBBAJLUWUHDgccRVRSllNTllRjaXoKFQpla3xmbHxnbX4KFgoNExAlRUkQIhCAkaoRJBEqcUMSJxMTFRkUFRowRE+8ws2+xM8DAwMXGR89hT49iT8XGh4GDgb/wdE/jUMYGiBBiESoYO3XAAAACHRSTlMAEcXJ1d/4/CxfLlIAAAOSSURBVHhe7dTXjuNGEIVhOYxdobsZlSeHzeucc875/R/Gp0pNShwOPbe+2F8CCBH4cKQGodn/qxe96Oh+QPteHWK630bR9jJHA9vcp6luTdd1DVvFA03S6H9rKsvSNSisCo3wK9O7KG9XZoU6/bYAB5oxc+ZjXJaYbLukcsyjppcvW0kiMSZtK9f81VtvvCmNJ95Q066qqusSWNK8aQSY6GdiVku8oNYtDFSW9B40jgx2/vQplutLq+ZsGx5j17b5z4PmQbXDNzc3yQ790aO6Dew2LzPzAO++cVV+c3Z25svSwoq2Vzi1334wG0K4G9Nms8FyVT0xXFetgMfYrkGvrlq3GppwF6ayNk119QT6ErUe8BXs8bHChKbRMYZ1XBTkGIHbZb3mOhwfh78Nq96x/PICdfgEem2vZ3it1yccwjHewAe/OQTDbi8uVsvlYoebk5OTZ/0LAcP/ouKN8Wq1WiygC+Aoon0xRvUV5R43fBsvwZcLx/5Yihf3+PvJ5QVauiZga4SZFZnE5RAfbZBrom00PV5+JzBSxLto5tEZbGF6SdttiKnH0mHRFAKxOMNsGODCtx03pgaYlcVxyBnvcIE2JfTCMI9SnbMY4sAWaIepdGwRleU2x0lzn+peS4TjSfxXh0U1qn6oH3+iMWtiaRTxHhfeDp9ut65PC8N53K4pMBFjWbOmPNxpfIYGLE5xgd6XEsY4Y4HmjDeU84+O8xcfWppx8Fj09ZdmjpE/N8CuOxuUpcswYdeGw5xZXpt5FBUB99sFH0ZdoHZcDXRQznj3OCttNo8fm6aYoqrfQxGjeBOBRtsJ/shR/ydygMlsAhNlx5Ixe5rrcbfs540SOUY9tt0mCjaZJePBb874An8LPIyIgjSyU3PoBvrW8gYRrYAXhBUvxhRoQY2ELz4ihXIdJjDsynEwG0SAV8D69QfvKhDYDWc7wkWxgO6X9/jLX5/rLnY8+s3Fhs7PoW/ha8Ofvf8759OaWgY+xzg1Kf05n88DosLxH9/+KDzPGraPfBkUFhjl6RRjILq+JqHvPv9J8lk73ndE5M82WYdYJOBuQaSMO1A37Ec9DA4XGAnmici+dyBkt7PFVXWEB4cXTPi20NHudrb9UU9jaGBKKVHG1NvInO2oh55piBDs4nFvZWLXFyAc+15nCXud1TBhI/LtIDS4LyLgbnnKiloPVcRxby2Fs2bT2K01wGJpsuhQ/AvVGYLuotmwVAAAAABJRU5ErkJggg==';
string public constant unique49 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAdVBMVEX///830P8XFCUAAAAXFCUcb5YFVHgilcw3SF030P9MwvyiqK7///92kvZsLzIAM1rc6P/78NpSITMAIIev2/DGd3rRtpjb4edhanU/Cx0HY8Ov5v+L2f84VcD/1tc2BBYjls2v2/ECCxADAwMne6IbGxsCAgL5Sf7UAAAAA3RSTlMAqcuJBdhGAAADcklEQVR4Xu3U53bjRgwFYCUApg+berG9qe//iLnAUFnL4sryycnJn1w1mtYnAMOy+lfyf+if2EL/Gf7jy4aRGf/2ZVv2+wO84khfxft80Ce/w/V5bDYrHmYdn5PXHDIzzaVrLLE+YUPJuWRU5myln65sdp/xzHkf+HBgqgM9nrku2QyqWPWjxO/Y7IwDB6byAN8uBocsAi/eS9gbjvGJymxR5kFTSj6HwEw1DuWhropBCpuz+JBzSIWK4c/Crs98Pp+tqn6ib+mfxeIyl1LOInLGZwr7QzA8ECMPpEYya1UNPoFzEGAtnS5e+TK9iDjHeVQ8v0bFTOUllkKXcqF+UTP+pbo/jNBzRsMOuALTJRH0khVYw7tx51uwpdhTqbUMRClRIeEljDS8G3l+7L7jOFQiT5H8EnZmDe/YHg2HnmhdYyzD8CtRJe8+ap6Q37Vwf3Di5yQvhovagvLDACx3+LXrpkkccOihkwZWQga2rkt9ealDvMesGFz63gfXS6stsGHvEjDpJU30UmOhO/y63XZTdzz2PoXsUNvS933JwJGAK/U9xRhJbofmLSbewh57UR36Ob7ug/PAohhfongikVuMtXbTtmHvA8adr8kY8LcuMQ0nwmDYnD5iWOjjkRVvNhuPOO/tDtGwoDyWVPHb2wLuj8wrvlqxIxa/bTa/QIijVvkE3L3DP8Ma1oXgZkVs1Xz9hkaoVGGKcNMSFtPAqkGdtY1odWByTKeBUkq0hBOIAEPrL5lDnG3DruhUDSdZrCziWDnrpset17p309SWiNbAiDBsvMF2SkhCcdZD3hVmzh0CiqAhwz6JqC3xp3c4QWuHzFprxhOse3tz2lLCkVatGPrmUCUbUISdOGsVbWtJ59sCYNpTNMxG7jHCAizuFc0iE6Bc8Vr7lnuMmsBw7IDht9sJOXa2u2Eh2KT2TifRMEuCBcbcsIpL0+ge1i9ja5sZRRruDLMHgQVyXgN7j1vbt7gDFuCmHDaXMHTLiqWNjpkb/ltb23PXywEWtYZVt5+zdtiyeoQdrGuV1XM7FBo9vWn1GCOGuw7PhuWK1+tnNANa+DqKXa8UH2HmJewQ8Z/1zagwD80qEcWAwF5vCGv680d2HMXpS3ts0uxoeBRaxxLpCXyzV3fhnenB0LzbOYfXB7yzXXjHTvoxfpfFvbfgL+JnRyf3vnAGAAAAAElFTkSuQmCC';
string public constant unique48 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAbFBMVEX///8BAQEAAAAA/v4Bqv8lTUoXFCW6PUfSZm5DjEYycE3RtpicEhz78NqCqFlSITP/srkWPDpsLzLng4psAAAcGSr/////ys694ZcQMzH8/PzMzMz/3N+oqKiioqLq6uoAJCEQPDn/vsMAAACLIMA2AAAABXRSTlMAAQICA9JshoIAAANmSURBVHhe5dbpjuM2EARg56i+KFKSr7n3SN7/HdNFy8AsYWTGCfbX1hiwTcznbrZpQbuflD8+B77Kl90vkq//w8p9hX6Y6Z0D/nv3q+fPAQxTlGv+w7cnwbwui8rdp0YW88yi+kp9VyRV16+LvS53arHHFpnkpip3nSyJ1pr3REY+e6alJwB6oDVybkLk41+TsFcBvPUA7uHWrLl84lKVUPDt23dq/355wUZu9/vbgCPx+XyGu2/PoL3mgx2H4OXlhbg/w2lVawWbIb9NPQIQQaa3DYbzRq0Fzgl63NSCR79oltjS/1tKLbRNl5ua1mk7rk+ypRKXpAj3pkoMuYFTXvHVPlV4IOMR1CyA4y3cNTJS6lP/E+7Ut/XOPQB9p7/0UyMbZdhnY8rzhjcNYlWT4bxKp8fjkRjx3AC09hZIi2uU2sbfeMdJazk6PARvfXd425rhtCGmisQWAxYEoLWa+dInGj3PCJRaS6rEunTdxnn3rmuxo6kaHsmZcChTS7CymRoiM2LWMFOYmqI1cw/33HrplV0DklqpByxYet8mYuyteQaegTJenEB0m8GPeDGNy6KoLQtdIIhLZeUOJLxBlbMbLKtwTdj3gl4ingFlUAsL09aq+iNWDfdtKxyqsTTWdfXLnmvpuBEXDYyz9ndalXC1B11XoGRqb6pbFh4wLhFySXo+HDhbjXWdmUvX3TYZMP4yiwyHKvN6NmUmnR6madpsjdZ46B8HDCgt4C4CzKbTedL9XvcHTYuASK0ltbfMWDk8A0QIAkh8mB7m+WE2dfTpZVVN6e6PxO/sFWf4BmGTTjYnTRwoHYeyqkfzEW/jhqC/wSG3qrMeVN2jFIe3sI7FfWhbwgNAiISDr2ya99Oklrh54sbmaUPkBs4AIu7QAsyH/X7e782mJF5aC3Em4YhFQB1BrEWPmG3PzA8dg+0Gh004Xgv4cQwPv6eVxL9TH6ZIzbDt21dt4m0HmaPsjHK3Px0m7giM9Ny6bRVsGBErIHa6YJu4hFqLybtGh8gVr2udINpLn3YdW0msMt5cjJi61GmSyfanE/Ehl7SUCshHt8MixDbJTk+7XT5MEyMTHvLhvRsQAfbNhQ0nTOxD7SFCGIkBmS5YJ9oLjn/HESNmYSeGu3+EkXi4uEq3iI/wu9xaHfA/nrxATzuNntUAAAAASUVORK5CYII=';
string public constant unique47 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAyVBMVEUAAAAAAAD/AAD//wAuLi4AAAD/bQH/qwL/bgL//wH/qgIaGhobGxsAAAD//wEAAAD/bQEAAAD/bgL//////wH/qwJ2Y1ppAACiAAD/TQIBAQH/mQEtLS0/Pz9UVFT/bSVJRUWNjY3/ywL//xQnJyf/AQE5OTn//db/VAL/tyMREREqKir/hy1IAAAbGxv+/v5AHw8CAAAtCAAtLCwDAwH/cgf/cgg2NjYlEAAIBwf/sneysrLKygD29vb4awH//wL9bQH//yT+/gELlsTbAAAAEXRSTlMAAQEBCxa40tfa6fn7/Pz+/i9v7RIAAASfSURBVHhejdWHciM3EARQnWMOk7CZmdJl55z9/x/lbmDBrRUl+1risXilp2nMoko3j0bdY/355o2jwFqYuxteIf+PZhvmmrFqBFtEb0Uf3wCztecUrL111PFfo12LNTpDwl2hYRu5Bj6zuGD1sAs2vtG2b4BdidwWWuy5eQhrfa86s/Ly2XbWNg9jL1NDI3MQW+Wfn2jbFvYhXBIffpax25YxG7a0/l1nh6Zp5VjF0RYdXo4eYe6wvt3umMGHAbhvsSzauODF8sGgN9z8gECLNWja9sADH1WaDF6ueoNQVwyY5sm77UDcdbDHZ9JIlStcd2V5cLKidzunLfiltE13jd3N88GfGgKMyTW5NbE9I355H38ATA3ssEKzwm17OMjfz8S6Tu7h8Bn7zVNoYnqZ8SvDtolRu+0EYK0D2FTNDL23g/sgO+HbBXcHocU1e0yzALDbnQP7nfmMD8CtmLQCe40/yrrirMrbAHw+HzrezqNsGjxpQVb6PddFs7bgKcdQcHvm7YQW2wBa16y0yBfffMVhbI7LWTMMW2AuG7iR/X7TdodmbZ/I7pPXANRmi7XhbsvrmYUfZL+5leud4bG83ikxg/fydYfr+TtGdzw0VrZBbY69wh9zSQo94DvMLAxH3tpvgdFnjsZgjqZdY2TcUZOxubvsaC0s79sPwLQPYYZYw1XrFTXmyz/7zg5u6LuHvSVe54Ij3D1sy0B64NW/Opthcs7xePOwPkkePZAwbrT6A4ofzs0LsVt5H5PXDlaD+DQ3j6zZwSNCfsXo5sfnshcJXWFJxOFOrMDsHs5Qqk7T9yjePMd5N2IzlhnbJBLqFtB+qjoqnpBffm4UGLU9qEWmrGVK0ySw5iyO5hilSFAqLf7zDxHRXBsYZkoXLEiE60itPPg0R0ERYZS1dRwF1haM10n45xhaMefFEgfVbNEVd4TtJCXYii2lUwg/K2aXFDsPpQU2kYRmsAtOyU9x0lJEZRUCBw3i/UZO0ADTjFkCB0X4I++oadQ4d66uAkp8e0vsKWnFc4jLaPX5b6ubWajGaQzSURiU9mqBpxwpOIK4xsNV83nQb2SSJAOoeJKcJCe9udJGW7AgI76mAKYknn8hRs9LhY7Mw9xhxxGaLkd0Mg5etp2s4FH4U+KBWAQpbZCKJYR4Ulkm142xhJR/akhFnbh+XE5MnJPtBMZbWmO5pqEWaK29WODEWMEpyah20YnYTYGh59q0NbXmiZ0StJqzfMFsApuomXGNeQb6SXwsOpwLKiGJgmvtapd1G2dF1qMEkM9nxhgpuNamWbB8/qlIrm/EZTlKnIihiaFznjwhWoKPtNTEKhgWc8eM0ccD2m6FYJ2Kg5NjYo2Y91PxZMB7EXnM6kisGeck2oKdPTa3j2PqxOVD1xQ8WdJSG1XewjnXuD5ZYJ3G4GwvpakdvaOXzUb6/t2311h0Xiax8bkDiF46Ktfdt+1m0ze9fL3CeQqTZPTJMVhHkFh64SSpb63rm6b3b2VVGc6cNzvxvik/3NsIjg196Jp+HP8aZY1tVNo0UY8e15i6a4CZRZf7VCwv+aiq9zBs1n0/ZVvwv2Ax6SQC5PzNAAAAAElFTkSuQmCC';
string public constant unique46 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAXVBMVEUAAAAMDA0XFCUbGxs9PT0nJyc5HyFNRERdLChdXV1wYmiKSDaMe4muSzjEJDD2gYehlqiJHit4EzG/b0qKWk31VV3/f1WoKDz/mnL90u0zHBxXHCddOTa/hWpPKyg3WNeTAAAAAnRSTlMAAHaTzTgAAARsSURBVHhehdYJYts6EAPQFCS1L96ztf/+x/wAhrKttGmRNDapeZ6RnMp5URCpz+LHN9Hh3XGMZ2UUypJdYGyprB4fXXvHlNZjhx7LslTzdst93+d8C+Yjfe20x6NDvK4rchabQ9/eZr1E1hHj0fhZN11H3FWNrFAzb2+zaLWsaah3Jz02DQC+gsZjUJT5jbnNfIZjHbpDQ2xbA/XUI49QHxmUnKnnm2yue9lvBkck3mlicxR8MsQ6U3I/0Z7sVrsLuia0MDVm5JxS6Qu/EzsrxbbxkHt9xzovEJecliWVkpaUuSQzwhf7vIfRU+F2A9iaTZOscGSPgfqz4rMxxHP2ieMNwL6+BkvgCO25Ey4ZNEV99YgNfmm1UgPZKQAbM8LWKRXcUIyAwgDuWDtT556xJscwTQOExWSJuYNUSlaA5Y6XlVmO1MIlTcpveBo4hK/B5yf7GVubH93aeBjAMuOUAg+DMO1R5e7s4POonYpTGoa2RbGuOBe0xJyallPaRtBT0wam5dSNdT8Lz7RDy6TAy/Fo6yD3/M3NTiGeDodDM0I8cCk4DIGlbbdAPao1nibiriGvGM0UmDqz0TMudjUpaeqReJrwHzF/jM1EnYgjz9iQzW0D21JD/5o7zr2bCz90LpkqkzKygUmmmKMxZlHfJ9g+dMrqlzKDoTZ2WuMusK5HSsMX2w7sxyAlPrdl+QM3xmCRssf69WHV4UDOizoId9KDVlxq1bYsq0VfMPsdiAdhWY86qHOjpTVoVWWMZ1wbn2HLUaTB+NpppRNivmC0wsqA8wjatuUdt+ng++Z8m3mcK5ZF1Q4PinBLCdr5pns9csn8BviZwZNBax0Yzzgujm/JmGkB0DZdx/NtgNvcgpjRtf2CJ4dDd6g3zkw0+uNrPItz3zTeK6x7fDhU/BJ0bM50Z24150YTUUfhHrf3N9A17Mlqkg2PxNQbpl4D71u78cjIN9QjLb+4hOqshZdnvLUGonPXifihLre5FdDucWQAuo1Y/mIu9HDhVvSE252Wu4hcPj4ufCL988OFjyLDfeuWGgYhPn6GvoQdyELvsPVhaltjKBcJ6l9QjGnbYd/a2HzQ/Lj4pgaPCq4yUxCN27b9U+tJkBpAES7QqCi2gSfjww5rX7vuDtb3sjkm1Z2R695YnyWcj+d3qHMj3sE2OJCiPhlzlUl7dgbqfPYbXokJzWlznfpxU/cS7+uKSdh+w694+QFzMIlTKxvurfFO+4qJ7GGNV+AHOfD66qtF3SdEUolTJmUA7Ky0OA9dr9TEPsf1XanLDNHT6XS9wjF0cHpdZRkk2ZyJHSRp45Os2T7se6Ld4dcIKja9mv7Ohd/fryhQSrrjFDumtH/WFcN/NwDXU8228y3VK9dzPibl+NCxcyT9ti1Ltyn9hwleyB2knFPf034XV/qdyTUshpP7lHptON9xh13je2uFTJ3j97vX7rdhm8I2ic1CA33F/9YIKx+YVrgUa77o33DW4NADtv/PhCmRp5T19Yz/B1qoWtHkxcTEAAAAAElFTkSuQmCC';
string public constant unique45 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAASFBMVEUAAAD///8AAAAYACAQaEwQODgijj5KGithHceDMbe4Qf/GsXd6MjuPfJqvn79hXYDf2/b/67U4NU1yzD7gAABOQUaiU0J+aWb/rhT/AAAAAnRSTlMAAHaTzTgAAATpSURBVHhetdbbbvQ2DATgZKizz3vI//5v2hnSjhOgBdqLMgvE6+y3IxGSnI//t4ATQGDct37X+Fs6nRjHpWEV458xvFy4va+GcJ2/pG90a0B//ZoNFL+xLPEs/NuO0Z1WQlXFb0s8dseVfxxifuO2F5XH5CIwLT76fkXPgfveB6/GHlby1CZxdyFntH5FK8r1wbrunvJLr/qNKZFYwq6/xh69P+zgq59tPLWK0YFREm0poYU5zhPXgy9iGBGlxwtTyxLmRCzfh4q2Ou7TwZo6YC5qtW9dhZEzrSqXZxuTf7oJS7fjaPwK1DnSgEv7mwxIllJyetIaf6YhHNlT/8DkgdUUBKuu420K+yRO7FA9KltEHNWaGnrbWwsTun0WXsckj+nGlNTEVxA1aqWuNdqcZRNxoTba2W58uD6ttDi1cGEJjwTXx3R0Y/CNqUHLSsxJsaBoiWO2ZaQE6cZF22CBgVPDMKUXwI8Cr3R84yHcORwC6dZKQmB9yWfsAUwcoYasoR5J2JIGXJC7LMt7wHtJmtAYDlqz6ZBObqdk7JkwNXLubj07sXslI7AZNexNfKSo48L8YFer0Mc4DxJ2Txnf2GT/WJ6m7MWLko3WEm18UDsKwtH/VED8Qf1+0/5BVmtVPnebLduhvdCFR99BjGdK0FJIgQXfDDbq7HPO6q3NmZh7fZBLYw2ckQt1NPCPCoyX1qBEoeBk0yS9U9MuwnRAeZ72hZX2pXQgR8GsGoPTs5BL71jXhzCtGc5uC694vSLeOU6bjPNXu6ixK9i3NyrxtUpWJnuuJDnsstNBq4xOvCiYGjZXyAq/V6cUyMbpUtaaaSvnS6sQBT8WdGHjbvu2EWuTvZEPq+kqS4k6lxMv24lrHG7DMQDGvmgTV3iqLDPt+CJdHA/s27KgBVZwj2TZl3K5oLXu9Q0HtU2lSCfIEq+Bl0rch+Pp/Z4OHIAv2CzMRD+PiyoNx+u2rowWXjYwWPV5vF7Hy8B1KYxM64n8CZsfIF6IFY3HStxHYLzZrctqJHFOTxPnTJvHtpjwY/Vo4vXGn2CFzTg3rCIFtQHGuhKvy2NxvT18tezjxEwqlw1NnghVy9gflgeIqZeFeF/Q9tGFrw+HDX1WPFp2qya8npp4wy+cAdnAjNiZEo+W3scMYteLsDrWZFXSP4O3zTM2f7S00Yfha2ANHXjFuPFPDTyi/NEyeq/gc3tAZvUBqHno31hrQXicM57nyuK4A+uR53pbt4eatrkerrnnUxrE/TOGQf5FwZVSOWzMQ4cJNd3jseGxxS4ZgZ+Ovw/Hi+th1zrp3ntr0LABGFTtwkPH2uCKhZ/yrkHNlzSrmVkDNg7dqqGxOFBqDB0Yo330BllhakmlV1MWMajjHwfvbeABRtE6DqtoSeE5i9b6FYHgXHBax6n0AdnkwZq38Fx92hmkujBHwBW8a7TIuY1+B5fAM6pnK3euXmR3tb53NoRBbbB/wredM/OEZS3q1h4N9P4suQculyWuOc/QWclEP1N5/Us3MJTdiX8JkYLSgsFM5i/AbYQDPzRKbszNtOWJa5m7rRmYwWBcVuk/ssHMZ1FwT+mJD+nwxHxb4b+kRNmBHxoZJawY7ypcdxzp7aybBKJed8sB5CzbG1hxK0pWTlj2LuKbg7R9/H3Bc24bk/63RSt8F+1/LNz1bf8C5BZYgnUfJFgAAAAASUVORK5CYII=';
string public constant unique44 = 'iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAQlBMVEUAAAAAAABLPyOdn6oiHxRzGSI1PEB8eEB1iJE1ESLM1dvPOULGsXdXbWgZCCwjIknt59qMHynBICArPnNqERGZm5lSGMcoAAAAAXRSTlMAQObYZgAABBhJREFUeF6d1AmO4koQBNDJpVav0P3vf9UfUWk8Vhs0owkBxipeZW3mV0SQX/8WEdcy/5sWL7NqKf+khdL1hoX5k3V1aHH5Qbd129Y/ePGiAuoiV7puX+vXtqKD4J+x014GLlBfwPzE189cUhlaVV94lAWFg9/gP2iZkg6MnBYCMyaGHXfyEXfT63w31lOl44WjQO0P2JArDluotby0IHc75eruVc7N5UTVuX3rWA3FFOa5KPZSfuKWnf2/MNC8hSpaoo9tcx32heXArblaN/XfGlPl+rlSIBh02C7h5MSTG7DVwJKlb+uufX8Kispz77pvq/samE5MzvXinBkZDXWXr3XfAWFnXnbidZ2kWx7eTpwSbOGwlMc0NqrveynF0YDsGIqsCbbiJWJ7feGWuERwLDSrxKmyTl3CGubskrNU2Gy9ZuLQA7NwaKF3aFfEOyyw5For3rRROLSTqbqSc3emKYmOu2jAKXGpte8oaVZZ+KJhzpRZp5Q4EByMmBCw1KVax4Bz2KsG8qjCmeMkOzW7hHU8XnmBstp7lrBXjWhofOIRHMeDfYl4xwJmkVzzqH0/4QJPqK7EmwKCg6rphPOvKqN2rgZ999DO0jNwUXJQBU4psYk6y1tNPoQWzLm8NqBbXtZ1VYZbLZID3xK6zNs8z9QsW0x1+4oFEZkd+gMWANFy2G5qpSylYJ+5caNjHOAPeA39quoY8xKz15d20E/Ywbhy3bK5LA7IiA6NdW/tveahZmnUNVdWdS2MygpNSp3eavkC9qFNFdIVgXVg15SmydVbmuR9ZRlntUdV4kIv/PNsKcUfE/qQd4WFFzfnS/duZkfhFbjB8qZRvy3MRTPrvS+9Z8vVcDVW5hmKh0ySJOq7JV6Y3LMsfBp4ExMqwDNwE+aGY+wppYbY3nvFFbeyEjtL69tTIuvAG8aE0PdcMT8msdAoXRzy7XMV5QND12wphaaN0oCfIr9tbUuzZMDwQeTEIm+r0zbitOSWK0t7OjFPGzNN9kYDp+a0jUkJUg8cT0eBREw+WG20gVUnlYgWh1bgx+Ox3LCo02qTayTnPFGgqQDjCxraRd9+jixIPvKABo5JwxGf6pu/jQT4fllczWx5tBZ/xlGqPQa26Ru5YLgD9xGjFREXLYFBH6wcOuz3BT+fpxSGxDUsZn1uvdk0RvdNDEP3BCZjPCoDIUNw+YhD91EYiHmaYSgHVLUx9RruhyWGHsVilBFMrAHXCpkrIxdMG/iwR7WcAdPxrpAGeNXyID517/+NgXLwsOz8wLFTB+5y4MfjgpkFrbGxbHh1QHtozmkYacSX0DK2wEZie0CpATkImruWoFxZmEskh87I2fbjZKNvdr7cMDXtBQe/4iX/bD81uN3arji/MO2dRwJ8bob96/wPvD86LPNf8TEAAAAASUVORK5CYII=';


}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"bodies","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"footer","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"name":"getBodyName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"name":"getHelmName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"name":"getMainhandName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"name":"getOffhandName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"body_","type":"uint8"},{"internalType":"uint8","name":"helm_","type":"uint8"},{"internalType":"uint8","name":"mainhand_","type":"uint8"},{"internalType":"uint8","name":"offhand_","type":"uint8"}],"name":"getSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"id_","type":"uint16"},{"internalType":"uint8","name":"body_","type":"uint8"},{"internalType":"uint8","name":"helm_","type":"uint8"},{"internalType":"uint8","name":"mainhand_","type":"uint8"},{"internalType":"uint8","name":"offhand_","type":"uint8"},{"internalType":"uint16","name":"level_","type":"uint16"},{"internalType":"uint16","name":"zugModifier_","type":"uint16"}],"name":"getTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"header","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"helms","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"mainhands","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"offhands","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"ids","type":"uint8[]"},{"internalType":"address","name":"source","type":"address"}],"name":"setBodies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"ids","type":"uint8[]"},{"internalType":"address","name":"source","type":"address"}],"name":"setHelms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"ids","type":"uint8[]"},{"internalType":"address","name":"source","type":"address"}],"name":"setMainhands","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"ids","type":"uint8[]"},{"internalType":"address","name":"source","type":"address"}],"name":"setOffhands","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"ids","type":"uint8[]"},{"internalType":"address","name":"source","type":"address"}],"name":"setUniques","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"uniques","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615dae80620000626000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c8063589734f4116100ad578063b83e3bf211610071578063b83e3bf214610367578063bb6b819714610383578063cec1be4f1461039f578063dc8f842e146103cf578063e03c1019146103eb57610120565b8063589734f4146102775780636affebc9146102a757806371df9969146102d757806381d1c16a14610307578063ac4b378a1461033757610120565b8063215ef0cd116100f4578063215ef0cd146101bf5780633ce30185146101ef5780633d46df241461020d5780634713a3cb1461023d578063481c6a751461025957610120565b8062e251661461012557806301a00faa1461015557806301bcfea8146101855780630d7163c6146101a1575b600080fd5b61013f600480360381019061013a91906146fd565b61041b565b60405161014c9190614f01565b60405180910390f35b61016f600480360381019061016a91906146fd565b610f64565b60405161017c9190614f01565b60405180910390f35b61019f600480360381019061019a91906145b2565b611aad565b005b6101a9611be3565b6040516101b69190614f01565b60405180910390f35b6101d960048036038101906101d491906146fd565b611bff565b6040516101e69190614f01565b60405180910390f35b6101f7612748565b6040516102049190614f01565b60405180910390f35b610227600480360381019061022291906146fd565b612765565b6040516102349190614ee6565b60405180910390f35b610257600480360381019061025291906145b2565b612798565b005b6102616128ce565b60405161026e9190614ee6565b60405180910390f35b610291600480360381019061028c91906146fd565b6128f4565b60405161029e9190614ee6565b60405180910390f35b6102c160048036038101906102bc919061472a565b612927565b6040516102ce9190614f01565b60405180910390f35b6102f160048036038101906102ec91906146fd565b612a8c565b6040516102fe9190614ee6565b60405180910390f35b610321600480360381019061031c91906146fd565b612abf565b60405161032e9190614f01565b60405180910390f35b610351600480360381019061034c919061465b565b613277565b60405161035e9190614f01565b60405180910390f35b610381600480360381019061037c91906145b2565b613303565b005b61039d600480360381019061039891906145b2565b613439565b005b6103b960048036038101906103b491906146fd565b61356f565b6040516103c69190614ee6565b60405180910390f35b6103e960048036038101906103e491906145b2565b6135a2565b005b610405600480360381019061040091906146fd565b6136d8565b6040516104129190614ee6565b60405180910390f35b606060288260ff161115610439576104328261370b565b9050610f5f565b60148260ff16101561098d57600a8260ff1610156106cc5760058260ff1610156105715760038260ff1610156104ed5760018260ff16146104af576040518060400160405280600581526020017f546f7263680000000000000000000000000000000000000000000000000000008152506104e6565b6040518060400160405280600781526020017f5069636b617865000000000000000000000000000000000000000000000000008152505b9050610f5f565b60038260ff1614610533576040518060400160405280600a81526020017f506c65622053746166660000000000000000000000000000000000000000000081525061056a565b6040518060400160405280600481526020017f436c7562000000000000000000000000000000000000000000000000000000008152505b9050610f5f565b60078260ff1610156106015760058260ff16146105c3576040518060400160405280600981526020017f446167676572202b3100000000000000000000000000000000000000000000008152506105fa565b6040518060400160405280600e81526020017f53686f72742053776f7264202b310000000000000000000000000000000000008152505b9050610f5f565b60078260ff161461068e5760088260ff1614610652576040518060400160405280600c81526020017f4c6172676520417865202b320000000000000000000000000000000000000000815250610689565b6040518060400160405280600e81526020017f466965727920506f6b6572202b310000000000000000000000000000000000008152505b6106c5565b6040518060400160405280600d81526020017f53696d706c6520417865202b31000000000000000000000000000000000000008152505b9050610f5f565b600f8260ff161161087957600d8260ff1610156107ae57600a8260ff161461077057600b8260ff1614610734576040518060400160405280600d81526020017f4a616767656420417865202b320000000000000000000000000000000000000081525061076b565b6040518060400160405280600c81526020017f49726f6e204d616365202b3200000000000000000000000000000000000000008152505b6107a7565b6040518060400160405280600e81526020017f49726f6e2048616d6d6572202b320000000000000000000000000000000000008152505b9050610f5f565b600d8260ff161461083b57600e8260ff16146107ff576040518060400160405280600f81526020017f556c747261204d616c6c6574202b330000000000000000000000000000000000815250610836565b6040518060400160405280600f81526020017f4375727665642053776f7264202b3300000000000000000000000000000000008152505b610872565b6040518060400160405280601281526020017f456e6368616e74656420506f6b6572202b3300000000000000000000000000008152505b9050610f5f565b60128260ff1610156109095760108260ff16146108cb576040518060400160405280601181526020017f417373617373696e20426c616465202b34000000000000000000000000000000815250610902565b6040518060400160405280601181526020017f4469736369706c65205374616666202b330000000000000000000000000000008152505b9050610f5f565b60128260ff161461094f576040518060400160405280600e81526020017f53696d706c652057616e64202b34000000000000000000000000000000000000815250610986565b6040518060400160405280600e81526020017f5377616d70205374616666202b340000000000000000000000000000000000008152505b9050610f5f565b601e8260ff161015610c5b5760198260ff161015610b005760178260ff161015610a7c5760148260ff1614610a3e5760158260ff1614610a02576040518060400160405280601481526020017f536b756c6c204372757368657220417865202b35000000000000000000000000815250610a39565b6040518060400160405280600f81526020017f536b756c6c20536869656c64202b3500000000000000000000000000000000008152505b610a75565b6040518060400160405280600e81526020017f526f79616c20426c616465202b340000000000000000000000000000000000008152505b9050610f5f565b60178260ff1614610ac2576040518060400160405280601681526020017f466c616d696e6720526f79616c20426c616465202b3500000000000000000000815250610af9565b6040518060400160405280601081526020017f466c616d696e67205374616666202b35000000000000000000000000000000008152505b9050610f5f565b601b8260ff161015610b905760198260ff1614610b52576040518060400160405280601481526020017f4e6563726f6d616e636572205374616666202b36000000000000000000000000815250610b89565b6040518060400160405280601281526020017f4265727365726b65722053776f7264202b3600000000000000000000000000008152505b9050610f5f565b601b8260ff1614610c1d57601c8260ff1614610be1576040518060400160405280600e81526020017f426c6f6f642053776f7264202b37000000000000000000000000000000000000815250610c18565b6040518060400160405280601081526020017f46726f7a656e20536379746865202b36000000000000000000000000000000008152505b610c54565b6040518060400160405280601781526020017f466c616d696e6720536b756c6c20536869656c64202b360000000000000000008152505b9050610f5f565b60238260ff1611610e085760218260ff161015610d3d57601e8260ff1614610cff57601f8260ff1614610cc3576040518060400160405280600c81526020017f4963652053776f7264202b370000000000000000000000000000000000000000815250610cfa565b6040518060400160405280601181526020017f426f77206f6620417274656d6973202b370000000000000000000000000000008152505b610d36565b6040518060400160405280601281526020017f4461726b204c6f7264205374616666202b3700000000000000000000000000008152505b9050610f5f565b60218260ff1614610dca5760228260ff1614610d8e576040518060400160405280600e81526020017f44656d6f6e696320417865202b38000000000000000000000000000000000000815250610dc5565b6040518060400160405280600f81526020017f4e6574686572204c616e6365202b3800000000000000000000000000000000008152505b610e01565b6040518060400160405280601081526020017f43727970746963205374616666202b38000000000000000000000000000000008152505b9050610f5f565b60268260ff161015610e985760248260ff1614610e5a576040518060400160405280601281526020017f4c696768746e696e67204c616e6365202b390000000000000000000000000000815250610e91565b6040518060400160405280601181526020017f4f6c64204d6f6f6e2053776f7264202b380000000000000000000000000000008152505b9050610f5f565b60268260ff1614610f255760278260ff1614610ee9576040518060400160405280600e81526020017f48656c6978204c616e6365202b39000000000000000000000000000000000000815250610f20565b6040518060400160405280601881526020017f506f73736573736564204772656174205374616666202b3900000000000000008152505b610f5c565b6040518060400160405280601081526020017f4d6f6c74656e2048616d6d6572202b39000000000000000000000000000000008152505b90505b919050565b606060288260ff161115610f8257610f7b8261370b565b9050611aa8565b60148260ff1610156114d657600a8260ff1610156112155760058260ff1610156110ba5760038260ff1610156110365760018260ff1614610ff8576040518060400160405280600481526020017f4e6f6e650000000000000000000000000000000000000000000000000000000081525061102f565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050611aa8565b60038260ff161461107c576040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152506110b3565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050611aa8565b60078260ff16101561114a5760058260ff161461110c576040518060400160405280600e81526020017f4f72636973682048656c6d202b31000000000000000000000000000000000000815250611143565b6040518060400160405280600f81526020017f4c6561746865722048656c6d202b3100000000000000000000000000000000008152505b9050611aa8565b60078260ff16146111d75760088260ff161461119b576040518060400160405280600c81526020017f426f6e652048656c6d202b3200000000000000000000000000000000000000008152506111d2565b6040518060400160405280600c81526020017f49726f6e2048656c6d202b3100000000000000000000000000000000000000008152505b61120e565b6040518060400160405280600e81526020017f4c65617468657220436170202b310000000000000000000000000000000000008152505b9050611aa8565b600f8260ff16116113c257600d8260ff1610156112f757600a8260ff16146112b957600b8260ff161461127d576040518060400160405280600f81526020017f537472616e67652048656c6d202b3200000000000000000000000000000000008152506112b4565b6040518060400160405280601081526020017f436861696e6d61696c20436170202b32000000000000000000000000000000008152505b6112f0565b6040518060400160405280601081526020017f46756c6c204f72632048656c6d202b32000000000000000000000000000000008152505b9050611aa8565b600d8260ff161461138457600e8260ff1614611348576040518060400160405280600c81526020017f426f61722048656164202b33000000000000000000000000000000000000000081525061137f565b6040518060400160405280601181526020017f436861696e6d61696c20436f6966202b330000000000000000000000000000008152505b6113bb565b6040518060400160405280601281526020017f46756c6c20506c6174652048656c6d202b3300000000000000000000000000008152505b9050611aa8565b60128260ff1610156114525760108260ff1614611414576040518060400160405280600f81526020017f526f79616c205468696e6779202b34000000000000000000000000000000000081525061144b565b6040518060400160405280601481526020017f4f7262206f662050726f74656374696f6e202b330000000000000000000000008152505b9050611aa8565b60128260ff1614611498576040518060400160405280600e81526020017f43757273656420486f6f64202b340000000000000000000000000000000000008152506114cf565b6040518060400160405280601181526020017f4461726b2049726f6e2048656c6d202b340000000000000000000000000000008152505b9050611aa8565b601e8260ff1610156117a45760198260ff1610156116495760178260ff1610156115c55760148260ff16146115875760158260ff161461154b576040518060400160405280600e81526020017f44656d6f6e20536b756c6c202b35000000000000000000000000000000000000815250611582565b6040518060400160405280600f81526020017f54686f726e65642048656c6d202b3500000000000000000000000000000000008152505b6115be565b6040518060400160405280600e81526020017f5265642042616e64616e61202b340000000000000000000000000000000000008152505b9050611aa8565b60178260ff161461160b576040518060400160405280600e81526020017f43757273656420486f6f64202b35000000000000000000000000000000000000815250611642565b6040518060400160405280601181526020017f5472656173757265204368657374202b350000000000000000000000000000008152505b9050611aa8565b601b8260ff1610156116d95760198260ff161461169b576040518060400160405280600b81526020017f5061726173697465202b360000000000000000000000000000000000000000008152506116d2565b6040518060400160405280601381526020017f426c7565204b6e696768742048656c6d202b36000000000000000000000000008152505b9050611aa8565b601b8260ff161461176657601c8260ff161461172a576040518060400160405280601381526020017f4e657468657220426c696e64666f6c64202b3700000000000000000000000000815250611761565b6040518060400160405280600e81526020017f486f726e65642043617065202b360000000000000000000000000000000000008152505b61179d565b6040518060400160405280600e81526020017f447261676f6e2045796573202b360000000000000000000000000000000000008152505b9050611aa8565b60238260ff16116119515760218260ff16101561188657601e8260ff161461184857601f8260ff161461180c576040518060400160405280601281526020017f526564204b6e696768742048656c6d202b370000000000000000000000000000815250611843565b6040518060400160405280601681526020017f4d6173746572205761726c6f636b2043617065202b37000000000000000000008152505b61187f565b6040518060400160405280601281526020017f4c696768746e696e672043726f776e202b3700000000000000000000000000008152505b9050611aa8565b60218260ff16146119135760228260ff16146118d7576040518060400160405280601881526020017f42616e64206f6620746865204461726b204c6f7264202b38000000000000000081525061190e565b6040518060400160405280600c81526020017f4963652043726f776e202b3800000000000000000000000000000000000000008152505b61194a565b6040518060400160405280601081526020017f4265686f6c6465722048656164202b38000000000000000000000000000000008152505b9050611aa8565b60268260ff1610156119e15760248260ff16146119a3576040518060400160405280601081526020017f426c617a696e6720486f726e73202b39000000000000000000000000000000008152506119da565b6040518060400160405280600f81526020017f48656c6d206f66204576696c202b3800000000000000000000000000000000008152505b9050611aa8565b60268260ff1614611a6e5760278260ff1614611a32576040518060400160405280600d81526020017f48656c69782048656c6d202b3900000000000000000000000000000000000000815250611a69565b6040518060400160405280600f81526020017f4d6f6c74656e2043726f776e202b3900000000000000000000000000000000008152505b611aa5565b6040518060400160405280601181526020017f506f737365737365642048656c6d202b390000000000000000000000000000008152505b90505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3490614f63565b60405180910390fd5b60005b83839050811015611bdd578160036000868685818110611b6357611b62615352565b5b9050602002016020810190611b7891906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611bd59061524b565b915050611b40565b50505050565b6040518060c0016040528060998152602001615ce06099913981565b606060288260ff161115611c1d57611c168261370b565b9050612743565b60148260ff16101561217157600a8260ff161015611eb05760058260ff161015611d555760038260ff161015611cd15760018260ff1614611c93576040518060400160405280600481526020017f4e6f6e6500000000000000000000000000000000000000000000000000000000815250611cca565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050612743565b60038260ff1614611d17576040518060400160405280600481526020017f4e6f6e6500000000000000000000000000000000000000000000000000000000815250611d4e565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050612743565b60078260ff161015611de55760058260ff1614611da7576040518060400160405280601581526020017f50617065722048616e647320536869656c64202b310000000000000000000000815250611dde565b6040518060400160405280601081526020017f576f6f64656e20536869656c64202b31000000000000000000000000000000008152505b9050612743565b60078260ff1614611e725760088260ff1614611e36576040518060400160405280600e81526020017f4f666668616e6420417865202b32000000000000000000000000000000000000815250611e6d565b6040518060400160405280600e81526020017f50697261746520486f6f6b202b310000000000000000000000000000000000008152505b611ea9565b6040518060400160405280600981526020017f446167676572202b3100000000000000000000000000000000000000000000008152505b9050612743565b600f8260ff161161205d57600d8260ff161015611f9257600a8260ff1614611f5457600b8260ff1614611f18576040518060400160405280600781526020017f426f6d62202b3200000000000000000000000000000000000000000000000000815250611f4f565b6040518060400160405280600f81526020017f4c6172676520536869656c64202b3200000000000000000000000000000000008152505b611f8b565b6040518060400160405280601281526020017f4f666668616e6420536c6173686572202b3200000000000000000000000000008152505b9050612743565b600d8260ff161461201f57600e8260ff1614611fe3576040518060400160405280600d81526020017f5761722042616e6e6572202b330000000000000000000000000000000000000081525061201a565b6040518060400160405280601481526020017f5265696e666f7263656420536869656c64202b330000000000000000000000008152505b612056565b6040518060400160405280601081526020017f4f666668616e6420506f6b6572202b33000000000000000000000000000000008152505b9050612743565b60128260ff1610156120ed5760108260ff16146120af576040518060400160405280601481526020017f4d6574616c204b69746520536869656c64202b340000000000000000000000008152506120e6565b6040518060400160405280600e81526020017f48616e642043616e6e6f6e202b330000000000000000000000000000000000008152505b9050612743565b60128260ff1614612133576040518060400160405280600f81526020017f43757273656420536b756c6c202b34000000000000000000000000000000000081525061216a565b6040518060400160405280600b81526020017f43726f7373626f77202b340000000000000000000000000000000000000000008152505b9050612743565b601e8260ff16101561243f5760198260ff1610156122e45760178260ff1610156122605760148260ff16146122225760158260ff16146121e6576040518060400160405280600b81526020017f4772696d6f697265202b3500000000000000000000000000000000000000000081525061221d565b6040518060400160405280600f81526020017f43757273656420546f74656d202b3500000000000000000000000000000000008152505b612259565b6040518060400160405280601081526020017f5370696b656420536869656c64202b34000000000000000000000000000000008152505b9050612743565b60178260ff16146122a6576040518060400160405280601381526020017f46726f737420536964652053776f7264202b35000000000000000000000000008152506122dd565b6040518060400160405280601181526020017f4f666668616e6420476c61697665202b350000000000000000000000000000008152505b9050612743565b601b8260ff1610156123745760198260ff1614612336576040518060400160405280601381526020017f456e6368616e74656420476c61697665202b360000000000000000000000000081525061236d565b6040518060400160405280600f81526020017f4d6167696320536869656c64202b3600000000000000000000000000000000008152505b9050612743565b601b8260ff161461240157601c8260ff16146123c5576040518060400160405280601081526020017f4275726e696e6720426c616465202b37000000000000000000000000000000008152506123fc565b6040518060400160405280601181526020017f4275726e696e6720536869656c64202b360000000000000000000000000000008152505b612438565b6040518060400160405280600f81526020017f4275726e696e672057616e64202b3600000000000000000000000000000000008152505b9050612743565b60238260ff16116125ec5760218260ff16101561252157601e8260ff16146124e357601f8260ff16146124a7576040518060400160405280601381526020017f44656d6f6e6963204772696d6f697265202b37000000000000000000000000008152506124de565b6040518060400160405280601281526020017f506f7373657373656420536b756c6c202b3700000000000000000000000000008152505b61251a565b6040518060400160405280600f81526020017f486f6c792053636570746572202b3700000000000000000000000000000000008152505b9050612743565b60218260ff16146125ae5760228260ff1614612572576040518060400160405280601d81526020017f4c696768746e696e672041726d62616e64206f6620506f776572202b380000008152506125a9565b6040518060400160405280601181526020017f44656d6f6e696320536379746865202b380000000000000000000000000000008152505b6125e5565b6040518060400160405280601381526020017f53636570746572206f662046726f7374202b38000000000000000000000000008152505b9050612743565b60268260ff16101561267c5760248260ff161461263e576040518060400160405280601081526020017f4e657468657220536869656c64202b3900000000000000000000000000000000815250612675565b6040518060400160405280600c81526020017f496365205374616666202b3800000000000000000000000000000000000000008152505b9050612743565b60268260ff16146127095760278260ff16146126cd576040518060400160405280601081526020017f48656c69782053636570746572202b3900000000000000000000000000000000815250612704565b6040518060400160405280601981526020017f5374616666206f6620746865204461726b204c6f7264202b39000000000000008152505b612740565b6040518060400160405280601281526020017f4d6f6c74656e205363696d69746172202b3900000000000000000000000000008152505b90505b919050565b60405180610120016040528060e48152602001615bbc60e4913981565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281f90614f63565b60405180910390fd5b60005b838390508110156128c857816006600086868581811061284e5761284d615352565b5b905060200201602081019061286391906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806128c09061524b565b91505061282b565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060288460ff16111561299b576040518060c0016040528060998152602001615ce060999139612959600487613a5e565b60405180610120016040528060e48152602001615bbc60e4913960405160200161298593929190614bd6565b6040516020818303038152906040529050612a84565b6040518060c0016040528060998152602001615ce0609991396129bf600087613a5e565b60048660ff16116129df57604051806020016040528060008152506129eb565b6129ea600187613a5e565b5b60008660ff1611612a0b5760405180602001604052806000815250612a17565b612a16600287613a5e565b5b60048660ff1611612a375760405180602001604052806000815250612a43565b612a42600387613a5e565b5b60405180610120016040528060e48152602001615bbc60e49139604051602001612a7296959493929190614c07565b60405160208183030381529060405290505b949350505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060288260ff161115612add57612ad68261370b565b9050613272565b60148260ff16101561303157600a8260ff161015612d705760058260ff161015612c155760038260ff161015612b915760018260ff1614612b53576040518060400160405280600b81526020017f477265656e204f72632032000000000000000000000000000000000000000000815250612b8a565b6040518060400160405280600b81526020017f477265656e204f726320310000000000000000000000000000000000000000008152505b9050613272565b60038260ff1614612bd7576040518060400160405280601081526020017f4461726b20477265656e204f7263203100000000000000000000000000000000815250612c0e565b6040518060400160405280600b81526020017f477265656e204f726320330000000000000000000000000000000000000000008152505b9050613272565b60078260ff161015612ca55760058260ff1614612c67576040518060400160405280601081526020017f4461726b20477265656e204f7263203300000000000000000000000000000000815250612c9e565b6040518060400160405280601081526020017f4461726b20477265656e204f72632032000000000000000000000000000000008152505b9050613272565b60078260ff1614612d325760088260ff1614612cf6576040518060400160405280600981526020017f526564204f726320330000000000000000000000000000000000000000000000815250612d2d565b6040518060400160405280600981526020017f526564204f7263203200000000000000000000000000000000000000000000008152505b612d69565b6040518060400160405280600981526020017f526564204f7263203100000000000000000000000000000000000000000000008152505b9050613272565b600f8260ff1611612f1d57600d8260ff161015612e5257600a8260ff1614612e1457600b8260ff1614612dd8576040518060400160405280600f81526020017f426c6f6f6420526564204f726320330000000000000000000000000000000000815250612e0f565b6040518060400160405280600f81526020017f426c6f6f6420526564204f7263203200000000000000000000000000000000008152505b612e4b565b6040518060400160405280600f81526020017f426c6f6f6420526564204f7263203100000000000000000000000000000000008152505b9050613272565b600d8260ff1614612edf57600e8260ff1614612ea3576040518060400160405280600a81526020017f436c6179204f7263203300000000000000000000000000000000000000000000815250612eda565b6040518060400160405280600a81526020017f436c6179204f72632032000000000000000000000000000000000000000000008152505b612f16565b6040518060400160405280600a81526020017f436c6179204f72632031000000000000000000000000000000000000000000008152505b9050613272565b60128260ff161015612fad5760108260ff1614612f6f576040518060400160405280600f81526020017f4461726b20436c6179204f726320320000000000000000000000000000000000815250612fa6565b6040518060400160405280600f81526020017f4461726b20436c6179204f7263203100000000000000000000000000000000008152505b9050613272565b60128260ff1614612ff3576040518060400160405280600a81526020017f426c7565204f726320310000000000000000000000000000000000000000000081525061302a565b6040518060400160405280600f81526020017f4461726b20436c6179204f7263203300000000000000000000000000000000008152505b9050613272565b601e8260ff1610156132715760198260ff1610156131a45760178260ff1610156131205760148260ff16146130e25760158260ff16146130a6576040518060400160405280601381526020017f4d69646e6967687420426c7565204f72632031000000000000000000000000008152506130dd565b6040518060400160405280600a81526020017f426c7565204f72632033000000000000000000000000000000000000000000008152505b613119565b6040518060400160405280600a81526020017f426c7565204f72632032000000000000000000000000000000000000000000008152505b9050613272565b60178260ff1614613166576040518060400160405280601381526020017f4d69646e6967687420426c7565204f726320330000000000000000000000000081525061319d565b6040518060400160405280601381526020017f4d69646e6967687420426c7565204f72632032000000000000000000000000008152505b9050613272565b601b8260ff1610156132345760198260ff16146131f6576040518060400160405280600c81526020017f416c62696e6f204f72632032000000000000000000000000000000000000000081525061322d565b6040518060400160405280600c81526020017f416c62696e6f204f7263203100000000000000000000000000000000000000008152505b9050613272565b6040518060400160405280600c81526020017f416c62696e6f204f7263203300000000000000000000000000000000000000008152509050613272565b5b919050565b6060600061328f61328a89898989612927565b613c71565b90506132d66132a18a61ffff16613df6565b826132b08b8b8b8b8b8b613f57565b6040516020016132c293929190614d45565b604051602081830303815290604052613c71565b6040516020016132e69190614e52565b604051602081830303815290604052915050979650505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338a90614f63565b60405180910390fd5b60005b838390508110156134335781600460008686858181106133b9576133b8615352565b5b90506020020160208101906133ce91906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061342b9061524b565b915050613396565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146134c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c090614f63565b60405180910390fd5b60005b838390508110156135695781600560008686858181106134ef576134ee615352565b5b905060200201602081019061350491906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806135619061524b565b9150506134cc565b50505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362990614f63565b60405180910390fd5b60005b838390508110156136d257816002600086868581811061365857613657615352565b5b905060200201602081019061366d91906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806136ca9061524b565b915050613635565b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060602f8260ff1610156138bb57602c8260ff1610156137f05760298260ff16146137b257602a8260ff1614613776576040518060400160405280601681526020017f47726f6d6c6f636b205468652044657374726f796572000000000000000000008152506137ad565b6040518060400160405280601481526020017f566f7267616b20546865205761722043686965660000000000000000000000008152505b6137e9565b6040518060400160405280600781526020017f437468756c6875000000000000000000000000000000000000000000000000008152505b9050613a59565b602c8260ff161461387d57602d8260ff1614613841576040518060400160405280601681526020017f486f6b6e756b205468652044656d6f6e2054616d657200000000000000000000815250613878565b6040518060400160405280601881526020017f4f7267756720546865204d6173746572205761726c6f636b00000000000000008152505b6138b4565b6040518060400160405280600f81526020017f5975636b686120546865204865726f00000000000000000000000000000000008152505b9050613a59565b60328260ff16101561399257602f8260ff16146139545760308260ff1614613918576040518060400160405280601681526020017f4d6f727a756c20546865204963652057617272696f720000000000000000000081525061394f565b6040518060400160405280601081526020017f686167726120746865205a6f6d626965000000000000000000000000000000008152505b61398b565b6040518060400160405280600881526020017f4c617661204d616e0000000000000000000000000000000000000000000000008152505b9050613a59565b60328260ff1614613a1f5760338260ff16146139e3576040518060400160405280600981526020017f4d6f75736520476f640000000000000000000000000000000000000000000000815250613a1a565b6040518060400160405280601781526020017f536c696d65204f72632054686520466f72676f7474656e0000000000000000008152505b613a56565b6040518060400160405280601281526020017f543430303020546865204d656368614f726300000000000000000000000000008152505b90505b919050565b60606000806004811115613a7557613a74615323565b5b846004811115613a8857613a87615323565b5b14613c105760016004811115613aa157613aa0615323565b5b846004811115613ab457613ab3615323565b5b14613bd05760026004811115613acd57613acc615323565b5b846004811115613ae057613adf615323565b5b14613b905760036004811115613af957613af8615323565b5b846004811115613b0c57613b0b615323565b5b14613b5057600660008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613b8b565b600560008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613bcb565b600460008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613c0b565b600360008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613c4b565b600260008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b9050613c68613c6382613c5e8787613fc7565b614259565b614326565b91505092915050565b6060600082511415613c9457604051806020016040528060008152509050613df1565b6000604051806060016040528060408152602001615ca06040913990506000600360028551613cc39190615016565b613ccd919061509d565b6004613cd991906150ce565b90506000602082613cea9190615016565b67ffffffffffffffff811115613d0357613d02615381565b5b6040519080825280601f01601f191660200182016040528015613d355781602001600182028036833780820191505090505b509050818152600183018586518101602084015b81831015613db0576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050613d49565b600389510660018114613dca5760028114613dda57613de5565b613d3d60f01b6002830352613de5565b603d60f81b60018303525b50505050508093505050505b919050565b60606000821415613e3e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613f52565b600082905060005b60008214613e70578080613e599061524b565b915050600a82613e69919061509d565b9150613e46565b60008167ffffffffffffffff811115613e8c57613e8b615381565b5b6040519080825280601f01601f191660200182016040528015613ebe5781602001600182028036833780820191505090505b5090505b60008514613f4b57600182613ed7919061515c565b9150600a85613ee69190615294565b6030613ef29190615016565b60f81b818381518110613f0857613f07615352565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85613f44919061509d565b9450613ec2565b8093505050505b919050565b6060613f628761434f565b613f6b87614380565b613f74876143ca565b613f7d87614414565b613f8a8761ffff16613df6565b613f978761ffff16613df6565b604051602001613fac96959493929190614dad565b60405160208183030381529060405290509695505050505050565b60606000806004811115613fde57613fdd615323565b5b846004811115613ff157613ff0615323565b5b14614169576001600481111561400a57614009615323565b5b84600481111561401d5761401c615323565b5b1461412d576002600481111561403657614035615323565b5b84600481111561404957614048615323565b5b146140f1576003600481111561406257614061615323565b5b84600481111561407557614074615323565b5b146140b5576040518060400160405280600681526020017f756e6971756500000000000000000000000000000000000000000000000000008152506140ec565b6040518060400160405280600781526020017f6f666668616e64000000000000000000000000000000000000000000000000008152505b614128565b6040518060400160405280600881526020017f6d61696e68616e640000000000000000000000000000000000000000000000008152505b614164565b6040518060400160405280600481526020017f68656c6d000000000000000000000000000000000000000000000000000000008152505b6141a0565b6040518060400160405280600481526020017f626f6479000000000000000000000000000000000000000000000000000000008152505b6141ac8460ff16613df6565b6040516020016141bd929190614c5f565b6040516020818303038152906040529050806040516024016141de90614f43565b604051602081830303815290604052906040516141fb9190614bbf565b60405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505091505092915050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516142839190614ba8565b600060405180830381855afa9150503d80600081146142be576040519150601f19603f3d011682016040523d82523d6000602084013e6142c3565b606091505b509150915081614308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142ff90614f23565b60405180910390fd5b8080602001905181019061431c9190614612565b9250505092915050565b6060816040516020016143399190614eb9565b6040516020818303038152906040529050919050565b606061435a82612abf565b60405160200161436a9190614d18565b6040516020818303038152906040529050919050565b606061438b82610f64565b6143a361439a8460ff1661445e565b61ffff16613df6565b6040516020016143b4929190614cd3565b6040516020818303038152906040529050919050565b60606143d58261041b565b6143ed6143e48460ff1661445e565b61ffff16613df6565b6040516020016143fe929190614e74565b6040516020818303038152906040529050919050565b606061441f82611bff565b61443761442e8460ff1661445e565b61ffff16613df6565b604051602001614448929190614c8e565b6040516020818303038152906040529050919050565b600060288261ffff16111561447657606490506144a8565b60008261ffff16141561448c57600090506144a8565b600460018361449b9190615128565b6144a5919061506c565b90505b919050565b60006144c06144bb84614fa8565b614f83565b9050828152602081018484840111156144dc576144db6153bf565b5b6144e78482856151e7565b509392505050565b6000813590506144fe81615b76565b92915050565b60008083601f84011261451a576145196153b5565b5b8235905067ffffffffffffffff811115614537576145366153b0565b5b602083019150836020820283011115614553576145526153ba565b5b9250929050565b600082601f83011261456f5761456e6153b5565b5b815161457f8482602086016144ad565b91505092915050565b60008135905061459781615b8d565b92915050565b6000813590506145ac81615ba4565b92915050565b6000806000604084860312156145cb576145ca6153c9565b5b600084013567ffffffffffffffff8111156145e9576145e86153c4565b5b6145f586828701614504565b93509350506020614608868287016144ef565b9150509250925092565b600060208284031215614628576146276153c9565b5b600082015167ffffffffffffffff811115614646576146456153c4565b5b6146528482850161455a565b91505092915050565b600080600080600080600060e0888a03121561467a576146796153c9565b5b60006146888a828b01614588565b97505060206146998a828b0161459d565b96505060406146aa8a828b0161459d565b95505060606146bb8a828b0161459d565b94505060806146cc8a828b0161459d565b93505060a06146dd8a828b01614588565b92505060c06146ee8a828b01614588565b91505092959891949750929550565b600060208284031215614713576147126153c9565b5b60006147218482850161459d565b91505092915050565b60008060008060808587031215614744576147436153c9565b5b60006147528782880161459d565b94505060206147638782880161459d565b93505060406147748782880161459d565b92505060606147858782880161459d565b91505092959194509250565b61479a81615190565b82525050565b60006147ab82614fd9565b6147b58185614fef565b93506147c58185602086016151e7565b80840191505092915050565b60006147dc82614fe4565b6147e68185614ffa565b93506147f68185602086016151e7565b6147ff816153ce565b840191505092915050565b600061481582614fe4565b61481f818561500b565b935061482f8185602086016151e7565b80840191505092915050565b600061484860408361500b565b9150614853826153df565b604082019050919050565b600061486b60218361500b565b91506148768261542e565b602182019050919050565b600061488e60218361500b565b91506148998261547d565b602182019050919050565b60006148b160028361500b565b91506148bc826154cc565b600282019050919050565b60006148d56101af8361500b565b91506148e0826154f5565b6101af82019050919050565b60006148f960018361500b565b915061490482615712565b600182019050919050565b600061491c603c8361500b565b91506149278261573b565b603c82019050919050565b600061493f603f8361500b565b915061494a8261578a565b603f82019050919050565b6000614962601e8361500b565b915061496d826157d9565b601e82019050919050565b600061498560028361500b565b915061499082615802565b600282019050919050565b60006149a8601e8361500b565b91506149b38261582b565b601e82019050919050565b60006149cb60028361500b565b91506149d682615854565b600282019050919050565b60006149ee60028361500b565b91506149f98261587d565b600282019050919050565b6000614a11601283614ffa565b9150614a1c826158a6565b602082019050919050565b6000614a3460018361500b565b9150614a3f826158cf565b600182019050919050565b6000614a57600e8361500b565b9150614a62826158f8565b600e82019050919050565b6000614a7a600f8361500b565b9150614a8582615921565b600f82019050919050565b6000614a9d60038361500b565b9150614aa88261594a565b600382019050919050565b6000614ac0601d8361500b565b9150614acb82615973565b601d82019050919050565b6000614ae3600083614ffa565b9150614aee8261599c565b600082019050919050565b6000614b0660228361500b565b9150614b118261599f565b602282019050919050565b6000614b2960458361500b565b9150614b34826159ee565b604582019050919050565b6000614b4c60878361500b565b9150614b5782615a63565b608782019050919050565b6000614b6f600b83614ffa565b9150614b7a82615b24565b602082019050919050565b6000614b92601a8361500b565b9150614b9d82615b4d565b601a82019050919050565b6000614bb482846147a0565b915081905092915050565b6000614bcb828461480a565b915081905092915050565b6000614be2828661480a565b9150614bee828561480a565b9150614bfa828461480a565b9150819050949350505050565b6000614c13828961480a565b9150614c1f828861480a565b9150614c2b828761480a565b9150614c37828661480a565b9150614c43828561480a565b9150614c4f828461480a565b9150819050979650505050505050565b6000614c6b828561480a565b9150614c77828461480a565b9150614c82826149e1565b91508190509392505050565b6000614c998261485e565b9150614ca5828561480a565b9150614cb082614932565b9150614cbc828461480a565b9150614cc782614a27565b91508190509392505050565b6000614cde82614955565b9150614cea828561480a565b9150614cf58261490f565b9150614d01828461480a565b9150614d0c82614a27565b91508190509392505050565b6000614d238261499b565b9150614d2f828461480a565b9150614d3a826149be565b915081905092915050565b6000614d5082614a4a565b9150614d5c828661480a565b9150614d67826148c7565b9150614d7282614b85565b9150614d7e828561480a565b9150614d89826148a4565b9150614d95828461480a565b9150614da082614a27565b9150819050949350505050565b6000614db882614a6d565b9150614dc4828961480a565b9150614dcf826148ec565b9150614ddb828861480a565b9150614de6826148ec565b9150614df2828761480a565b9150614dfd826148ec565b9150614e09828661480a565b9150614e1482614881565b9150614e20828561480a565b9150614e2b82614b1c565b9150614e37828461480a565b9150614e4282614978565b9150819050979650505050505050565b6000614e5d82614ab3565b9150614e69828461480a565b915081905092915050565b6000614e7f82614af9565b9150614e8b828561480a565b9150614e968261483b565b9150614ea2828461480a565b9150614ead82614a27565b91508190509392505050565b6000614ec482614b3f565b9150614ed0828461480a565b9150614edb82614a90565b915081905092915050565b6000602082019050614efb6000830184614791565b92915050565b60006020820190508181036000830152614f1b81846147d1565b905092915050565b60006020820190508181036000830152614f3c81614a04565b9050919050565b60006020820190508181036000830152614f5c81614ad6565b9050919050565b60006020820190508181036000830152614f7c81614b62565b9050919050565b6000614f8d614f9e565b9050614f99828261521a565b919050565b6000604051905090565b600067ffffffffffffffff821115614fc357614fc2615381565b5b614fcc826153ce565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615021826151d0565b915061502c836151d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615061576150606152c5565b5b828201905092915050565b6000615077826151a2565b9150615082836151a2565b925082615092576150916152f4565b5b828204905092915050565b60006150a8826151d0565b91506150b3836151d0565b9250826150c3576150c26152f4565b5b828204905092915050565b60006150d9826151d0565b91506150e4836151d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561511d5761511c6152c5565b5b828202905092915050565b6000615133826151a2565b915061513e836151a2565b925082821015615151576151506152c5565b5b828203905092915050565b6000615167826151d0565b9150615172836151d0565b925082821015615185576151846152c5565b5b828203905092915050565b600061519b826151b0565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156152055780820151818401526020810190506151ea565b83811115615214576000848401525b50505050565b615223826153ce565b810181811067ffffffffffffffff8211171561524257615241615381565b5b80604052505050565b6000615256826151d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615289576152886152c5565b5b600182019050919050565b600061529f826151d0565b91506152aa836151d0565b9250826152ba576152b96152f4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a224d61696e68616e6454696572222c2276616c7565223a602082015250565b7f7b2274726169745f74797065223a224f666668616e64222c2276616c7565223a60008201527f2200000000000000000000000000000000000000000000000000000000000000602082015250565b7f2c7b2274726169745f74797065223a20226c6576656c222c202276616c75652260008201527f3a00000000000000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f222c20226465736372697074696f6e223a2245746865724f726373206973206160008201527f20636f6c6c656374696f6e206f662035303530204f726373207265616479207460208201527f6f2070696c6c6167652074686520626c6f636b636861696e2e2057697468206e60408201527f6f2049504653206f72204150492c207468657365204f7263732061726520746860608201527f65207665727920666972737420726f6c652d706c6179696e672067616d65207460808201527f6861742074616b657320706c6163652031303025206f6e2d636861696e2e205360a08201527f7061776e206e6577204f7263732c20626174746c6520796f7572204f7263207460c08201527f6f206c6576656c2075702c20616e642070696c6c61676520646966666572656e60e08201527f74206c6f6f7420706f6f6c7320746f20676574206e657720776561706f6e73206101008201527f616e64206765617220776869636820757067726164657320796f7572204f72636101208201527f206d657461646174612e205468697320486f726465206f66204f7263732077696101408201527f6c6c207374616e64207468652074657374206f662074696d6520616e64206c696101608201527f7665206f6e2074686520626c6f636b636861696e20666f7220657465726e69746101808201527f792e222c2022696d616765223a202200000000000000000000000000000000006101a082015250565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a2248656c6d54696572222c2276616c7565223a00000000602082015250565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a224f666668616e6454696572222c2276616c7565223a00602082015250565b7f7b2274726169745f74797065223a2248656c6d222c2276616c7565223a220000600082015250565b7f7d5d000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b2274726169745f74797065223a22426f6479222c2276616c7565223a220000600082015250565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b7f2829000000000000000000000000000000000000000000000000000000000000600082015250565b7f6661696c656420746f2067657420646174610000000000000000000000000000600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b226e616d65223a224f72632023000000000000000000000000000000000000600082015250565b7f2261747472696275746573223a205b0000000000000000000000000000000000600082015250565b7f222f3e0000000000000000000000000000000000000000000000000000000000600082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b50565b7f7b2274726169745f74797065223a224d61696e68616e64222c2276616c75652260008201527f3a22000000000000000000000000000000000000000000000000000000000000602082015250565b7f7d2c7b22646973706c61795f74797065223a2022626f6f73745f6e756d62657260008201527f222c2274726169745f74797065223a20227a756720626f6e7573222c2022766160208201527f6c7565223a000000000000000000000000000000000000000000000000000000604082015250565b7f3c696d61676520783d22312220793d2231222077696474683d2236302220686560008201527f696768743d2236302220696d6167652d72656e646572696e673d22706978656c60208201527f6174656422207072657365727665417370656374526174696f3d22784d69645960408201527f4d69642220786c696e6b3a687265663d22646174613a696d6167652f706e673b60608201527f6261736536342c00000000000000000000000000000000000000000000000000608082015250565b7f6e6f74206d616e61676572000000000000000000000000000000000000000000600082015250565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000600082015250565b615b7f81615190565b8114615b8a57600080fd5b50565b615b96816151a2565b8114615ba157600080fd5b50565b615bad816151da565b8114615bb857600080fd5b5056fe3c7374796c653e236f72637b73686170652d72656e646572696e673a20637269737065646765733b20696d6167652d72656e646572696e673a202d7765626b69742d63726973702d65646765733b20696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b20696d6167652d72656e646572696e673a2063726973702d65646765733b20696d6167652d72656e646572696e673a20706978656c617465643b202d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b7d3c2f7374796c653e3c2f7376673e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c7376672069643d226f7263222077696474683d223130302522206865696768743d2231303025222076657273696f6e3d22312e31222076696577426f783d223020302036302036302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b223ea2646970667358221220fdfa10dbe4711b24ec3be76bda2cef7d8fe94fbe9f4b70422a919278ea2badb764736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101205760003560e01c8063589734f4116100ad578063b83e3bf211610071578063b83e3bf214610367578063bb6b819714610383578063cec1be4f1461039f578063dc8f842e146103cf578063e03c1019146103eb57610120565b8063589734f4146102775780636affebc9146102a757806371df9969146102d757806381d1c16a14610307578063ac4b378a1461033757610120565b8063215ef0cd116100f4578063215ef0cd146101bf5780633ce30185146101ef5780633d46df241461020d5780634713a3cb1461023d578063481c6a751461025957610120565b8062e251661461012557806301a00faa1461015557806301bcfea8146101855780630d7163c6146101a1575b600080fd5b61013f600480360381019061013a91906146fd565b61041b565b60405161014c9190614f01565b60405180910390f35b61016f600480360381019061016a91906146fd565b610f64565b60405161017c9190614f01565b60405180910390f35b61019f600480360381019061019a91906145b2565b611aad565b005b6101a9611be3565b6040516101b69190614f01565b60405180910390f35b6101d960048036038101906101d491906146fd565b611bff565b6040516101e69190614f01565b60405180910390f35b6101f7612748565b6040516102049190614f01565b60405180910390f35b610227600480360381019061022291906146fd565b612765565b6040516102349190614ee6565b60405180910390f35b610257600480360381019061025291906145b2565b612798565b005b6102616128ce565b60405161026e9190614ee6565b60405180910390f35b610291600480360381019061028c91906146fd565b6128f4565b60405161029e9190614ee6565b60405180910390f35b6102c160048036038101906102bc919061472a565b612927565b6040516102ce9190614f01565b60405180910390f35b6102f160048036038101906102ec91906146fd565b612a8c565b6040516102fe9190614ee6565b60405180910390f35b610321600480360381019061031c91906146fd565b612abf565b60405161032e9190614f01565b60405180910390f35b610351600480360381019061034c919061465b565b613277565b60405161035e9190614f01565b60405180910390f35b610381600480360381019061037c91906145b2565b613303565b005b61039d600480360381019061039891906145b2565b613439565b005b6103b960048036038101906103b491906146fd565b61356f565b6040516103c69190614ee6565b60405180910390f35b6103e960048036038101906103e491906145b2565b6135a2565b005b610405600480360381019061040091906146fd565b6136d8565b6040516104129190614ee6565b60405180910390f35b606060288260ff161115610439576104328261370b565b9050610f5f565b60148260ff16101561098d57600a8260ff1610156106cc5760058260ff1610156105715760038260ff1610156104ed5760018260ff16146104af576040518060400160405280600581526020017f546f7263680000000000000000000000000000000000000000000000000000008152506104e6565b6040518060400160405280600781526020017f5069636b617865000000000000000000000000000000000000000000000000008152505b9050610f5f565b60038260ff1614610533576040518060400160405280600a81526020017f506c65622053746166660000000000000000000000000000000000000000000081525061056a565b6040518060400160405280600481526020017f436c7562000000000000000000000000000000000000000000000000000000008152505b9050610f5f565b60078260ff1610156106015760058260ff16146105c3576040518060400160405280600981526020017f446167676572202b3100000000000000000000000000000000000000000000008152506105fa565b6040518060400160405280600e81526020017f53686f72742053776f7264202b310000000000000000000000000000000000008152505b9050610f5f565b60078260ff161461068e5760088260ff1614610652576040518060400160405280600c81526020017f4c6172676520417865202b320000000000000000000000000000000000000000815250610689565b6040518060400160405280600e81526020017f466965727920506f6b6572202b310000000000000000000000000000000000008152505b6106c5565b6040518060400160405280600d81526020017f53696d706c6520417865202b31000000000000000000000000000000000000008152505b9050610f5f565b600f8260ff161161087957600d8260ff1610156107ae57600a8260ff161461077057600b8260ff1614610734576040518060400160405280600d81526020017f4a616767656420417865202b320000000000000000000000000000000000000081525061076b565b6040518060400160405280600c81526020017f49726f6e204d616365202b3200000000000000000000000000000000000000008152505b6107a7565b6040518060400160405280600e81526020017f49726f6e2048616d6d6572202b320000000000000000000000000000000000008152505b9050610f5f565b600d8260ff161461083b57600e8260ff16146107ff576040518060400160405280600f81526020017f556c747261204d616c6c6574202b330000000000000000000000000000000000815250610836565b6040518060400160405280600f81526020017f4375727665642053776f7264202b3300000000000000000000000000000000008152505b610872565b6040518060400160405280601281526020017f456e6368616e74656420506f6b6572202b3300000000000000000000000000008152505b9050610f5f565b60128260ff1610156109095760108260ff16146108cb576040518060400160405280601181526020017f417373617373696e20426c616465202b34000000000000000000000000000000815250610902565b6040518060400160405280601181526020017f4469736369706c65205374616666202b330000000000000000000000000000008152505b9050610f5f565b60128260ff161461094f576040518060400160405280600e81526020017f53696d706c652057616e64202b34000000000000000000000000000000000000815250610986565b6040518060400160405280600e81526020017f5377616d70205374616666202b340000000000000000000000000000000000008152505b9050610f5f565b601e8260ff161015610c5b5760198260ff161015610b005760178260ff161015610a7c5760148260ff1614610a3e5760158260ff1614610a02576040518060400160405280601481526020017f536b756c6c204372757368657220417865202b35000000000000000000000000815250610a39565b6040518060400160405280600f81526020017f536b756c6c20536869656c64202b3500000000000000000000000000000000008152505b610a75565b6040518060400160405280600e81526020017f526f79616c20426c616465202b340000000000000000000000000000000000008152505b9050610f5f565b60178260ff1614610ac2576040518060400160405280601681526020017f466c616d696e6720526f79616c20426c616465202b3500000000000000000000815250610af9565b6040518060400160405280601081526020017f466c616d696e67205374616666202b35000000000000000000000000000000008152505b9050610f5f565b601b8260ff161015610b905760198260ff1614610b52576040518060400160405280601481526020017f4e6563726f6d616e636572205374616666202b36000000000000000000000000815250610b89565b6040518060400160405280601281526020017f4265727365726b65722053776f7264202b3600000000000000000000000000008152505b9050610f5f565b601b8260ff1614610c1d57601c8260ff1614610be1576040518060400160405280600e81526020017f426c6f6f642053776f7264202b37000000000000000000000000000000000000815250610c18565b6040518060400160405280601081526020017f46726f7a656e20536379746865202b36000000000000000000000000000000008152505b610c54565b6040518060400160405280601781526020017f466c616d696e6720536b756c6c20536869656c64202b360000000000000000008152505b9050610f5f565b60238260ff1611610e085760218260ff161015610d3d57601e8260ff1614610cff57601f8260ff1614610cc3576040518060400160405280600c81526020017f4963652053776f7264202b370000000000000000000000000000000000000000815250610cfa565b6040518060400160405280601181526020017f426f77206f6620417274656d6973202b370000000000000000000000000000008152505b610d36565b6040518060400160405280601281526020017f4461726b204c6f7264205374616666202b3700000000000000000000000000008152505b9050610f5f565b60218260ff1614610dca5760228260ff1614610d8e576040518060400160405280600e81526020017f44656d6f6e696320417865202b38000000000000000000000000000000000000815250610dc5565b6040518060400160405280600f81526020017f4e6574686572204c616e6365202b3800000000000000000000000000000000008152505b610e01565b6040518060400160405280601081526020017f43727970746963205374616666202b38000000000000000000000000000000008152505b9050610f5f565b60268260ff161015610e985760248260ff1614610e5a576040518060400160405280601281526020017f4c696768746e696e67204c616e6365202b390000000000000000000000000000815250610e91565b6040518060400160405280601181526020017f4f6c64204d6f6f6e2053776f7264202b380000000000000000000000000000008152505b9050610f5f565b60268260ff1614610f255760278260ff1614610ee9576040518060400160405280600e81526020017f48656c6978204c616e6365202b39000000000000000000000000000000000000815250610f20565b6040518060400160405280601881526020017f506f73736573736564204772656174205374616666202b3900000000000000008152505b610f5c565b6040518060400160405280601081526020017f4d6f6c74656e2048616d6d6572202b39000000000000000000000000000000008152505b90505b919050565b606060288260ff161115610f8257610f7b8261370b565b9050611aa8565b60148260ff1610156114d657600a8260ff1610156112155760058260ff1610156110ba5760038260ff1610156110365760018260ff1614610ff8576040518060400160405280600481526020017f4e6f6e650000000000000000000000000000000000000000000000000000000081525061102f565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050611aa8565b60038260ff161461107c576040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152506110b3565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050611aa8565b60078260ff16101561114a5760058260ff161461110c576040518060400160405280600e81526020017f4f72636973682048656c6d202b31000000000000000000000000000000000000815250611143565b6040518060400160405280600f81526020017f4c6561746865722048656c6d202b3100000000000000000000000000000000008152505b9050611aa8565b60078260ff16146111d75760088260ff161461119b576040518060400160405280600c81526020017f426f6e652048656c6d202b3200000000000000000000000000000000000000008152506111d2565b6040518060400160405280600c81526020017f49726f6e2048656c6d202b3100000000000000000000000000000000000000008152505b61120e565b6040518060400160405280600e81526020017f4c65617468657220436170202b310000000000000000000000000000000000008152505b9050611aa8565b600f8260ff16116113c257600d8260ff1610156112f757600a8260ff16146112b957600b8260ff161461127d576040518060400160405280600f81526020017f537472616e67652048656c6d202b3200000000000000000000000000000000008152506112b4565b6040518060400160405280601081526020017f436861696e6d61696c20436170202b32000000000000000000000000000000008152505b6112f0565b6040518060400160405280601081526020017f46756c6c204f72632048656c6d202b32000000000000000000000000000000008152505b9050611aa8565b600d8260ff161461138457600e8260ff1614611348576040518060400160405280600c81526020017f426f61722048656164202b33000000000000000000000000000000000000000081525061137f565b6040518060400160405280601181526020017f436861696e6d61696c20436f6966202b330000000000000000000000000000008152505b6113bb565b6040518060400160405280601281526020017f46756c6c20506c6174652048656c6d202b3300000000000000000000000000008152505b9050611aa8565b60128260ff1610156114525760108260ff1614611414576040518060400160405280600f81526020017f526f79616c205468696e6779202b34000000000000000000000000000000000081525061144b565b6040518060400160405280601481526020017f4f7262206f662050726f74656374696f6e202b330000000000000000000000008152505b9050611aa8565b60128260ff1614611498576040518060400160405280600e81526020017f43757273656420486f6f64202b340000000000000000000000000000000000008152506114cf565b6040518060400160405280601181526020017f4461726b2049726f6e2048656c6d202b340000000000000000000000000000008152505b9050611aa8565b601e8260ff1610156117a45760198260ff1610156116495760178260ff1610156115c55760148260ff16146115875760158260ff161461154b576040518060400160405280600e81526020017f44656d6f6e20536b756c6c202b35000000000000000000000000000000000000815250611582565b6040518060400160405280600f81526020017f54686f726e65642048656c6d202b3500000000000000000000000000000000008152505b6115be565b6040518060400160405280600e81526020017f5265642042616e64616e61202b340000000000000000000000000000000000008152505b9050611aa8565b60178260ff161461160b576040518060400160405280600e81526020017f43757273656420486f6f64202b35000000000000000000000000000000000000815250611642565b6040518060400160405280601181526020017f5472656173757265204368657374202b350000000000000000000000000000008152505b9050611aa8565b601b8260ff1610156116d95760198260ff161461169b576040518060400160405280600b81526020017f5061726173697465202b360000000000000000000000000000000000000000008152506116d2565b6040518060400160405280601381526020017f426c7565204b6e696768742048656c6d202b36000000000000000000000000008152505b9050611aa8565b601b8260ff161461176657601c8260ff161461172a576040518060400160405280601381526020017f4e657468657220426c696e64666f6c64202b3700000000000000000000000000815250611761565b6040518060400160405280600e81526020017f486f726e65642043617065202b360000000000000000000000000000000000008152505b61179d565b6040518060400160405280600e81526020017f447261676f6e2045796573202b360000000000000000000000000000000000008152505b9050611aa8565b60238260ff16116119515760218260ff16101561188657601e8260ff161461184857601f8260ff161461180c576040518060400160405280601281526020017f526564204b6e696768742048656c6d202b370000000000000000000000000000815250611843565b6040518060400160405280601681526020017f4d6173746572205761726c6f636b2043617065202b37000000000000000000008152505b61187f565b6040518060400160405280601281526020017f4c696768746e696e672043726f776e202b3700000000000000000000000000008152505b9050611aa8565b60218260ff16146119135760228260ff16146118d7576040518060400160405280601881526020017f42616e64206f6620746865204461726b204c6f7264202b38000000000000000081525061190e565b6040518060400160405280600c81526020017f4963652043726f776e202b3800000000000000000000000000000000000000008152505b61194a565b6040518060400160405280601081526020017f4265686f6c6465722048656164202b38000000000000000000000000000000008152505b9050611aa8565b60268260ff1610156119e15760248260ff16146119a3576040518060400160405280601081526020017f426c617a696e6720486f726e73202b39000000000000000000000000000000008152506119da565b6040518060400160405280600f81526020017f48656c6d206f66204576696c202b3800000000000000000000000000000000008152505b9050611aa8565b60268260ff1614611a6e5760278260ff1614611a32576040518060400160405280600d81526020017f48656c69782048656c6d202b3900000000000000000000000000000000000000815250611a69565b6040518060400160405280600f81526020017f4d6f6c74656e2043726f776e202b3900000000000000000000000000000000008152505b611aa5565b6040518060400160405280601181526020017f506f737365737365642048656c6d202b390000000000000000000000000000008152505b90505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3490614f63565b60405180910390fd5b60005b83839050811015611bdd578160036000868685818110611b6357611b62615352565b5b9050602002016020810190611b7891906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611bd59061524b565b915050611b40565b50505050565b6040518060c0016040528060998152602001615ce06099913981565b606060288260ff161115611c1d57611c168261370b565b9050612743565b60148260ff16101561217157600a8260ff161015611eb05760058260ff161015611d555760038260ff161015611cd15760018260ff1614611c93576040518060400160405280600481526020017f4e6f6e6500000000000000000000000000000000000000000000000000000000815250611cca565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050612743565b60038260ff1614611d17576040518060400160405280600481526020017f4e6f6e6500000000000000000000000000000000000000000000000000000000815250611d4e565b6040518060400160405280600481526020017f4e6f6e65000000000000000000000000000000000000000000000000000000008152505b9050612743565b60078260ff161015611de55760058260ff1614611da7576040518060400160405280601581526020017f50617065722048616e647320536869656c64202b310000000000000000000000815250611dde565b6040518060400160405280601081526020017f576f6f64656e20536869656c64202b31000000000000000000000000000000008152505b9050612743565b60078260ff1614611e725760088260ff1614611e36576040518060400160405280600e81526020017f4f666668616e6420417865202b32000000000000000000000000000000000000815250611e6d565b6040518060400160405280600e81526020017f50697261746520486f6f6b202b310000000000000000000000000000000000008152505b611ea9565b6040518060400160405280600981526020017f446167676572202b3100000000000000000000000000000000000000000000008152505b9050612743565b600f8260ff161161205d57600d8260ff161015611f9257600a8260ff1614611f5457600b8260ff1614611f18576040518060400160405280600781526020017f426f6d62202b3200000000000000000000000000000000000000000000000000815250611f4f565b6040518060400160405280600f81526020017f4c6172676520536869656c64202b3200000000000000000000000000000000008152505b611f8b565b6040518060400160405280601281526020017f4f666668616e6420536c6173686572202b3200000000000000000000000000008152505b9050612743565b600d8260ff161461201f57600e8260ff1614611fe3576040518060400160405280600d81526020017f5761722042616e6e6572202b330000000000000000000000000000000000000081525061201a565b6040518060400160405280601481526020017f5265696e666f7263656420536869656c64202b330000000000000000000000008152505b612056565b6040518060400160405280601081526020017f4f666668616e6420506f6b6572202b33000000000000000000000000000000008152505b9050612743565b60128260ff1610156120ed5760108260ff16146120af576040518060400160405280601481526020017f4d6574616c204b69746520536869656c64202b340000000000000000000000008152506120e6565b6040518060400160405280600e81526020017f48616e642043616e6e6f6e202b330000000000000000000000000000000000008152505b9050612743565b60128260ff1614612133576040518060400160405280600f81526020017f43757273656420536b756c6c202b34000000000000000000000000000000000081525061216a565b6040518060400160405280600b81526020017f43726f7373626f77202b340000000000000000000000000000000000000000008152505b9050612743565b601e8260ff16101561243f5760198260ff1610156122e45760178260ff1610156122605760148260ff16146122225760158260ff16146121e6576040518060400160405280600b81526020017f4772696d6f697265202b3500000000000000000000000000000000000000000081525061221d565b6040518060400160405280600f81526020017f43757273656420546f74656d202b3500000000000000000000000000000000008152505b612259565b6040518060400160405280601081526020017f5370696b656420536869656c64202b34000000000000000000000000000000008152505b9050612743565b60178260ff16146122a6576040518060400160405280601381526020017f46726f737420536964652053776f7264202b35000000000000000000000000008152506122dd565b6040518060400160405280601181526020017f4f666668616e6420476c61697665202b350000000000000000000000000000008152505b9050612743565b601b8260ff1610156123745760198260ff1614612336576040518060400160405280601381526020017f456e6368616e74656420476c61697665202b360000000000000000000000000081525061236d565b6040518060400160405280600f81526020017f4d6167696320536869656c64202b3600000000000000000000000000000000008152505b9050612743565b601b8260ff161461240157601c8260ff16146123c5576040518060400160405280601081526020017f4275726e696e6720426c616465202b37000000000000000000000000000000008152506123fc565b6040518060400160405280601181526020017f4275726e696e6720536869656c64202b360000000000000000000000000000008152505b612438565b6040518060400160405280600f81526020017f4275726e696e672057616e64202b3600000000000000000000000000000000008152505b9050612743565b60238260ff16116125ec5760218260ff16101561252157601e8260ff16146124e357601f8260ff16146124a7576040518060400160405280601381526020017f44656d6f6e6963204772696d6f697265202b37000000000000000000000000008152506124de565b6040518060400160405280601281526020017f506f7373657373656420536b756c6c202b3700000000000000000000000000008152505b61251a565b6040518060400160405280600f81526020017f486f6c792053636570746572202b3700000000000000000000000000000000008152505b9050612743565b60218260ff16146125ae5760228260ff1614612572576040518060400160405280601d81526020017f4c696768746e696e672041726d62616e64206f6620506f776572202b380000008152506125a9565b6040518060400160405280601181526020017f44656d6f6e696320536379746865202b380000000000000000000000000000008152505b6125e5565b6040518060400160405280601381526020017f53636570746572206f662046726f7374202b38000000000000000000000000008152505b9050612743565b60268260ff16101561267c5760248260ff161461263e576040518060400160405280601081526020017f4e657468657220536869656c64202b3900000000000000000000000000000000815250612675565b6040518060400160405280600c81526020017f496365205374616666202b3800000000000000000000000000000000000000008152505b9050612743565b60268260ff16146127095760278260ff16146126cd576040518060400160405280601081526020017f48656c69782053636570746572202b3900000000000000000000000000000000815250612704565b6040518060400160405280601981526020017f5374616666206f6620746865204461726b204c6f7264202b39000000000000008152505b612740565b6040518060400160405280601281526020017f4d6f6c74656e205363696d69746172202b3900000000000000000000000000008152505b90505b919050565b60405180610120016040528060e48152602001615bbc60e4913981565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281f90614f63565b60405180910390fd5b60005b838390508110156128c857816006600086868581811061284e5761284d615352565b5b905060200201602081019061286391906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806128c09061524b565b91505061282b565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060288460ff16111561299b576040518060c0016040528060998152602001615ce060999139612959600487613a5e565b60405180610120016040528060e48152602001615bbc60e4913960405160200161298593929190614bd6565b6040516020818303038152906040529050612a84565b6040518060c0016040528060998152602001615ce0609991396129bf600087613a5e565b60048660ff16116129df57604051806020016040528060008152506129eb565b6129ea600187613a5e565b5b60008660ff1611612a0b5760405180602001604052806000815250612a17565b612a16600287613a5e565b5b60048660ff1611612a375760405180602001604052806000815250612a43565b612a42600387613a5e565b5b60405180610120016040528060e48152602001615bbc60e49139604051602001612a7296959493929190614c07565b60405160208183030381529060405290505b949350505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060288260ff161115612add57612ad68261370b565b9050613272565b60148260ff16101561303157600a8260ff161015612d705760058260ff161015612c155760038260ff161015612b915760018260ff1614612b53576040518060400160405280600b81526020017f477265656e204f72632032000000000000000000000000000000000000000000815250612b8a565b6040518060400160405280600b81526020017f477265656e204f726320310000000000000000000000000000000000000000008152505b9050613272565b60038260ff1614612bd7576040518060400160405280601081526020017f4461726b20477265656e204f7263203100000000000000000000000000000000815250612c0e565b6040518060400160405280600b81526020017f477265656e204f726320330000000000000000000000000000000000000000008152505b9050613272565b60078260ff161015612ca55760058260ff1614612c67576040518060400160405280601081526020017f4461726b20477265656e204f7263203300000000000000000000000000000000815250612c9e565b6040518060400160405280601081526020017f4461726b20477265656e204f72632032000000000000000000000000000000008152505b9050613272565b60078260ff1614612d325760088260ff1614612cf6576040518060400160405280600981526020017f526564204f726320330000000000000000000000000000000000000000000000815250612d2d565b6040518060400160405280600981526020017f526564204f7263203200000000000000000000000000000000000000000000008152505b612d69565b6040518060400160405280600981526020017f526564204f7263203100000000000000000000000000000000000000000000008152505b9050613272565b600f8260ff1611612f1d57600d8260ff161015612e5257600a8260ff1614612e1457600b8260ff1614612dd8576040518060400160405280600f81526020017f426c6f6f6420526564204f726320330000000000000000000000000000000000815250612e0f565b6040518060400160405280600f81526020017f426c6f6f6420526564204f7263203200000000000000000000000000000000008152505b612e4b565b6040518060400160405280600f81526020017f426c6f6f6420526564204f7263203100000000000000000000000000000000008152505b9050613272565b600d8260ff1614612edf57600e8260ff1614612ea3576040518060400160405280600a81526020017f436c6179204f7263203300000000000000000000000000000000000000000000815250612eda565b6040518060400160405280600a81526020017f436c6179204f72632032000000000000000000000000000000000000000000008152505b612f16565b6040518060400160405280600a81526020017f436c6179204f72632031000000000000000000000000000000000000000000008152505b9050613272565b60128260ff161015612fad5760108260ff1614612f6f576040518060400160405280600f81526020017f4461726b20436c6179204f726320320000000000000000000000000000000000815250612fa6565b6040518060400160405280600f81526020017f4461726b20436c6179204f7263203100000000000000000000000000000000008152505b9050613272565b60128260ff1614612ff3576040518060400160405280600a81526020017f426c7565204f726320310000000000000000000000000000000000000000000081525061302a565b6040518060400160405280600f81526020017f4461726b20436c6179204f7263203300000000000000000000000000000000008152505b9050613272565b601e8260ff1610156132715760198260ff1610156131a45760178260ff1610156131205760148260ff16146130e25760158260ff16146130a6576040518060400160405280601381526020017f4d69646e6967687420426c7565204f72632031000000000000000000000000008152506130dd565b6040518060400160405280600a81526020017f426c7565204f72632033000000000000000000000000000000000000000000008152505b613119565b6040518060400160405280600a81526020017f426c7565204f72632032000000000000000000000000000000000000000000008152505b9050613272565b60178260ff1614613166576040518060400160405280601381526020017f4d69646e6967687420426c7565204f726320330000000000000000000000000081525061319d565b6040518060400160405280601381526020017f4d69646e6967687420426c7565204f72632032000000000000000000000000008152505b9050613272565b601b8260ff1610156132345760198260ff16146131f6576040518060400160405280600c81526020017f416c62696e6f204f72632032000000000000000000000000000000000000000081525061322d565b6040518060400160405280600c81526020017f416c62696e6f204f7263203100000000000000000000000000000000000000008152505b9050613272565b6040518060400160405280600c81526020017f416c62696e6f204f7263203300000000000000000000000000000000000000008152509050613272565b5b919050565b6060600061328f61328a89898989612927565b613c71565b90506132d66132a18a61ffff16613df6565b826132b08b8b8b8b8b8b613f57565b6040516020016132c293929190614d45565b604051602081830303815290604052613c71565b6040516020016132e69190614e52565b604051602081830303815290604052915050979650505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338a90614f63565b60405180910390fd5b60005b838390508110156134335781600460008686858181106133b9576133b8615352565b5b90506020020160208101906133ce91906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061342b9061524b565b915050613396565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146134c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c090614f63565b60405180910390fd5b60005b838390508110156135695781600560008686858181106134ef576134ee615352565b5b905060200201602081019061350491906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806135619061524b565b9150506134cc565b50505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362990614f63565b60405180910390fd5b60005b838390508110156136d257816002600086868581811061365857613657615352565b5b905060200201602081019061366d91906146fd565b60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806136ca9061524b565b915050613635565b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060602f8260ff1610156138bb57602c8260ff1610156137f05760298260ff16146137b257602a8260ff1614613776576040518060400160405280601681526020017f47726f6d6c6f636b205468652044657374726f796572000000000000000000008152506137ad565b6040518060400160405280601481526020017f566f7267616b20546865205761722043686965660000000000000000000000008152505b6137e9565b6040518060400160405280600781526020017f437468756c6875000000000000000000000000000000000000000000000000008152505b9050613a59565b602c8260ff161461387d57602d8260ff1614613841576040518060400160405280601681526020017f486f6b6e756b205468652044656d6f6e2054616d657200000000000000000000815250613878565b6040518060400160405280601881526020017f4f7267756720546865204d6173746572205761726c6f636b00000000000000008152505b6138b4565b6040518060400160405280600f81526020017f5975636b686120546865204865726f00000000000000000000000000000000008152505b9050613a59565b60328260ff16101561399257602f8260ff16146139545760308260ff1614613918576040518060400160405280601681526020017f4d6f727a756c20546865204963652057617272696f720000000000000000000081525061394f565b6040518060400160405280601081526020017f686167726120746865205a6f6d626965000000000000000000000000000000008152505b61398b565b6040518060400160405280600881526020017f4c617661204d616e0000000000000000000000000000000000000000000000008152505b9050613a59565b60328260ff1614613a1f5760338260ff16146139e3576040518060400160405280600981526020017f4d6f75736520476f640000000000000000000000000000000000000000000000815250613a1a565b6040518060400160405280601781526020017f536c696d65204f72632054686520466f72676f7474656e0000000000000000008152505b613a56565b6040518060400160405280601281526020017f543430303020546865204d656368614f726300000000000000000000000000008152505b90505b919050565b60606000806004811115613a7557613a74615323565b5b846004811115613a8857613a87615323565b5b14613c105760016004811115613aa157613aa0615323565b5b846004811115613ab457613ab3615323565b5b14613bd05760026004811115613acd57613acc615323565b5b846004811115613ae057613adf615323565b5b14613b905760036004811115613af957613af8615323565b5b846004811115613b0c57613b0b615323565b5b14613b5057600660008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613b8b565b600560008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613bcb565b600460008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613c0b565b600360008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b613c4b565b600260008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b9050613c68613c6382613c5e8787613fc7565b614259565b614326565b91505092915050565b6060600082511415613c9457604051806020016040528060008152509050613df1565b6000604051806060016040528060408152602001615ca06040913990506000600360028551613cc39190615016565b613ccd919061509d565b6004613cd991906150ce565b90506000602082613cea9190615016565b67ffffffffffffffff811115613d0357613d02615381565b5b6040519080825280601f01601f191660200182016040528015613d355781602001600182028036833780820191505090505b509050818152600183018586518101602084015b81831015613db0576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050613d49565b600389510660018114613dca5760028114613dda57613de5565b613d3d60f01b6002830352613de5565b603d60f81b60018303525b50505050508093505050505b919050565b60606000821415613e3e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613f52565b600082905060005b60008214613e70578080613e599061524b565b915050600a82613e69919061509d565b9150613e46565b60008167ffffffffffffffff811115613e8c57613e8b615381565b5b6040519080825280601f01601f191660200182016040528015613ebe5781602001600182028036833780820191505090505b5090505b60008514613f4b57600182613ed7919061515c565b9150600a85613ee69190615294565b6030613ef29190615016565b60f81b818381518110613f0857613f07615352565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85613f44919061509d565b9450613ec2565b8093505050505b919050565b6060613f628761434f565b613f6b87614380565b613f74876143ca565b613f7d87614414565b613f8a8761ffff16613df6565b613f978761ffff16613df6565b604051602001613fac96959493929190614dad565b60405160208183030381529060405290509695505050505050565b60606000806004811115613fde57613fdd615323565b5b846004811115613ff157613ff0615323565b5b14614169576001600481111561400a57614009615323565b5b84600481111561401d5761401c615323565b5b1461412d576002600481111561403657614035615323565b5b84600481111561404957614048615323565b5b146140f1576003600481111561406257614061615323565b5b84600481111561407557614074615323565b5b146140b5576040518060400160405280600681526020017f756e6971756500000000000000000000000000000000000000000000000000008152506140ec565b6040518060400160405280600781526020017f6f666668616e64000000000000000000000000000000000000000000000000008152505b614128565b6040518060400160405280600881526020017f6d61696e68616e640000000000000000000000000000000000000000000000008152505b614164565b6040518060400160405280600481526020017f68656c6d000000000000000000000000000000000000000000000000000000008152505b6141a0565b6040518060400160405280600481526020017f626f6479000000000000000000000000000000000000000000000000000000008152505b6141ac8460ff16613df6565b6040516020016141bd929190614c5f565b6040516020818303038152906040529050806040516024016141de90614f43565b604051602081830303815290604052906040516141fb9190614bbf565b60405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505091505092915050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516142839190614ba8565b600060405180830381855afa9150503d80600081146142be576040519150601f19603f3d011682016040523d82523d6000602084013e6142c3565b606091505b509150915081614308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142ff90614f23565b60405180910390fd5b8080602001905181019061431c9190614612565b9250505092915050565b6060816040516020016143399190614eb9565b6040516020818303038152906040529050919050565b606061435a82612abf565b60405160200161436a9190614d18565b6040516020818303038152906040529050919050565b606061438b82610f64565b6143a361439a8460ff1661445e565b61ffff16613df6565b6040516020016143b4929190614cd3565b6040516020818303038152906040529050919050565b60606143d58261041b565b6143ed6143e48460ff1661445e565b61ffff16613df6565b6040516020016143fe929190614e74565b6040516020818303038152906040529050919050565b606061441f82611bff565b61443761442e8460ff1661445e565b61ffff16613df6565b604051602001614448929190614c8e565b6040516020818303038152906040529050919050565b600060288261ffff16111561447657606490506144a8565b60008261ffff16141561448c57600090506144a8565b600460018361449b9190615128565b6144a5919061506c565b90505b919050565b60006144c06144bb84614fa8565b614f83565b9050828152602081018484840111156144dc576144db6153bf565b5b6144e78482856151e7565b509392505050565b6000813590506144fe81615b76565b92915050565b60008083601f84011261451a576145196153b5565b5b8235905067ffffffffffffffff811115614537576145366153b0565b5b602083019150836020820283011115614553576145526153ba565b5b9250929050565b600082601f83011261456f5761456e6153b5565b5b815161457f8482602086016144ad565b91505092915050565b60008135905061459781615b8d565b92915050565b6000813590506145ac81615ba4565b92915050565b6000806000604084860312156145cb576145ca6153c9565b5b600084013567ffffffffffffffff8111156145e9576145e86153c4565b5b6145f586828701614504565b93509350506020614608868287016144ef565b9150509250925092565b600060208284031215614628576146276153c9565b5b600082015167ffffffffffffffff811115614646576146456153c4565b5b6146528482850161455a565b91505092915050565b600080600080600080600060e0888a03121561467a576146796153c9565b5b60006146888a828b01614588565b97505060206146998a828b0161459d565b96505060406146aa8a828b0161459d565b95505060606146bb8a828b0161459d565b94505060806146cc8a828b0161459d565b93505060a06146dd8a828b01614588565b92505060c06146ee8a828b01614588565b91505092959891949750929550565b600060208284031215614713576147126153c9565b5b60006147218482850161459d565b91505092915050565b60008060008060808587031215614744576147436153c9565b5b60006147528782880161459d565b94505060206147638782880161459d565b93505060406147748782880161459d565b92505060606147858782880161459d565b91505092959194509250565b61479a81615190565b82525050565b60006147ab82614fd9565b6147b58185614fef565b93506147c58185602086016151e7565b80840191505092915050565b60006147dc82614fe4565b6147e68185614ffa565b93506147f68185602086016151e7565b6147ff816153ce565b840191505092915050565b600061481582614fe4565b61481f818561500b565b935061482f8185602086016151e7565b80840191505092915050565b600061484860408361500b565b9150614853826153df565b604082019050919050565b600061486b60218361500b565b91506148768261542e565b602182019050919050565b600061488e60218361500b565b91506148998261547d565b602182019050919050565b60006148b160028361500b565b91506148bc826154cc565b600282019050919050565b60006148d56101af8361500b565b91506148e0826154f5565b6101af82019050919050565b60006148f960018361500b565b915061490482615712565b600182019050919050565b600061491c603c8361500b565b91506149278261573b565b603c82019050919050565b600061493f603f8361500b565b915061494a8261578a565b603f82019050919050565b6000614962601e8361500b565b915061496d826157d9565b601e82019050919050565b600061498560028361500b565b915061499082615802565b600282019050919050565b60006149a8601e8361500b565b91506149b38261582b565b601e82019050919050565b60006149cb60028361500b565b91506149d682615854565b600282019050919050565b60006149ee60028361500b565b91506149f98261587d565b600282019050919050565b6000614a11601283614ffa565b9150614a1c826158a6565b602082019050919050565b6000614a3460018361500b565b9150614a3f826158cf565b600182019050919050565b6000614a57600e8361500b565b9150614a62826158f8565b600e82019050919050565b6000614a7a600f8361500b565b9150614a8582615921565b600f82019050919050565b6000614a9d60038361500b565b9150614aa88261594a565b600382019050919050565b6000614ac0601d8361500b565b9150614acb82615973565b601d82019050919050565b6000614ae3600083614ffa565b9150614aee8261599c565b600082019050919050565b6000614b0660228361500b565b9150614b118261599f565b602282019050919050565b6000614b2960458361500b565b9150614b34826159ee565b604582019050919050565b6000614b4c60878361500b565b9150614b5782615a63565b608782019050919050565b6000614b6f600b83614ffa565b9150614b7a82615b24565b602082019050919050565b6000614b92601a8361500b565b9150614b9d82615b4d565b601a82019050919050565b6000614bb482846147a0565b915081905092915050565b6000614bcb828461480a565b915081905092915050565b6000614be2828661480a565b9150614bee828561480a565b9150614bfa828461480a565b9150819050949350505050565b6000614c13828961480a565b9150614c1f828861480a565b9150614c2b828761480a565b9150614c37828661480a565b9150614c43828561480a565b9150614c4f828461480a565b9150819050979650505050505050565b6000614c6b828561480a565b9150614c77828461480a565b9150614c82826149e1565b91508190509392505050565b6000614c998261485e565b9150614ca5828561480a565b9150614cb082614932565b9150614cbc828461480a565b9150614cc782614a27565b91508190509392505050565b6000614cde82614955565b9150614cea828561480a565b9150614cf58261490f565b9150614d01828461480a565b9150614d0c82614a27565b91508190509392505050565b6000614d238261499b565b9150614d2f828461480a565b9150614d3a826149be565b915081905092915050565b6000614d5082614a4a565b9150614d5c828661480a565b9150614d67826148c7565b9150614d7282614b85565b9150614d7e828561480a565b9150614d89826148a4565b9150614d95828461480a565b9150614da082614a27565b9150819050949350505050565b6000614db882614a6d565b9150614dc4828961480a565b9150614dcf826148ec565b9150614ddb828861480a565b9150614de6826148ec565b9150614df2828761480a565b9150614dfd826148ec565b9150614e09828661480a565b9150614e1482614881565b9150614e20828561480a565b9150614e2b82614b1c565b9150614e37828461480a565b9150614e4282614978565b9150819050979650505050505050565b6000614e5d82614ab3565b9150614e69828461480a565b915081905092915050565b6000614e7f82614af9565b9150614e8b828561480a565b9150614e968261483b565b9150614ea2828461480a565b9150614ead82614a27565b91508190509392505050565b6000614ec482614b3f565b9150614ed0828461480a565b9150614edb82614a90565b915081905092915050565b6000602082019050614efb6000830184614791565b92915050565b60006020820190508181036000830152614f1b81846147d1565b905092915050565b60006020820190508181036000830152614f3c81614a04565b9050919050565b60006020820190508181036000830152614f5c81614ad6565b9050919050565b60006020820190508181036000830152614f7c81614b62565b9050919050565b6000614f8d614f9e565b9050614f99828261521a565b919050565b6000604051905090565b600067ffffffffffffffff821115614fc357614fc2615381565b5b614fcc826153ce565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615021826151d0565b915061502c836151d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615061576150606152c5565b5b828201905092915050565b6000615077826151a2565b9150615082836151a2565b925082615092576150916152f4565b5b828204905092915050565b60006150a8826151d0565b91506150b3836151d0565b9250826150c3576150c26152f4565b5b828204905092915050565b60006150d9826151d0565b91506150e4836151d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561511d5761511c6152c5565b5b828202905092915050565b6000615133826151a2565b915061513e836151a2565b925082821015615151576151506152c5565b5b828203905092915050565b6000615167826151d0565b9150615172836151d0565b925082821015615185576151846152c5565b5b828203905092915050565b600061519b826151b0565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156152055780820151818401526020810190506151ea565b83811115615214576000848401525b50505050565b615223826153ce565b810181811067ffffffffffffffff8211171561524257615241615381565b5b80604052505050565b6000615256826151d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615289576152886152c5565b5b600182019050919050565b600061529f826151d0565b91506152aa836151d0565b9250826152ba576152b96152f4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a224d61696e68616e6454696572222c2276616c7565223a602082015250565b7f7b2274726169745f74797065223a224f666668616e64222c2276616c7565223a60008201527f2200000000000000000000000000000000000000000000000000000000000000602082015250565b7f2c7b2274726169745f74797065223a20226c6576656c222c202276616c75652260008201527f3a00000000000000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f222c20226465736372697074696f6e223a2245746865724f726373206973206160008201527f20636f6c6c656374696f6e206f662035303530204f726373207265616479207460208201527f6f2070696c6c6167652074686520626c6f636b636861696e2e2057697468206e60408201527f6f2049504653206f72204150492c207468657365204f7263732061726520746860608201527f65207665727920666972737420726f6c652d706c6179696e672067616d65207460808201527f6861742074616b657320706c6163652031303025206f6e2d636861696e2e205360a08201527f7061776e206e6577204f7263732c20626174746c6520796f7572204f7263207460c08201527f6f206c6576656c2075702c20616e642070696c6c61676520646966666572656e60e08201527f74206c6f6f7420706f6f6c7320746f20676574206e657720776561706f6e73206101008201527f616e64206765617220776869636820757067726164657320796f7572204f72636101208201527f206d657461646174612e205468697320486f726465206f66204f7263732077696101408201527f6c6c207374616e64207468652074657374206f662074696d6520616e64206c696101608201527f7665206f6e2074686520626c6f636b636861696e20666f7220657465726e69746101808201527f792e222c2022696d616765223a202200000000000000000000000000000000006101a082015250565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a2248656c6d54696572222c2276616c7565223a00000000602082015250565b7f227d2c7b22646973706c61795f74797065223a226e756d626572222c2274726160008201527f69745f74797065223a224f666668616e6454696572222c2276616c7565223a00602082015250565b7f7b2274726169745f74797065223a2248656c6d222c2276616c7565223a220000600082015250565b7f7d5d000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b2274726169745f74797065223a22426f6479222c2276616c7565223a220000600082015250565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b7f2829000000000000000000000000000000000000000000000000000000000000600082015250565b7f6661696c656420746f2067657420646174610000000000000000000000000000600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b226e616d65223a224f72632023000000000000000000000000000000000000600082015250565b7f2261747472696275746573223a205b0000000000000000000000000000000000600082015250565b7f222f3e0000000000000000000000000000000000000000000000000000000000600082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b50565b7f7b2274726169745f74797065223a224d61696e68616e64222c2276616c75652260008201527f3a22000000000000000000000000000000000000000000000000000000000000602082015250565b7f7d2c7b22646973706c61795f74797065223a2022626f6f73745f6e756d62657260008201527f222c2274726169745f74797065223a20227a756720626f6e7573222c2022766160208201527f6c7565223a000000000000000000000000000000000000000000000000000000604082015250565b7f3c696d61676520783d22312220793d2231222077696474683d2236302220686560008201527f696768743d2236302220696d6167652d72656e646572696e673d22706978656c60208201527f6174656422207072657365727665417370656374526174696f3d22784d69645960408201527f4d69642220786c696e6b3a687265663d22646174613a696d6167652f706e673b60608201527f6261736536342c00000000000000000000000000000000000000000000000000608082015250565b7f6e6f74206d616e61676572000000000000000000000000000000000000000000600082015250565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000600082015250565b615b7f81615190565b8114615b8a57600080fd5b50565b615b96816151a2565b8114615ba157600080fd5b50565b615bad816151da565b8114615bb857600080fd5b5056fe3c7374796c653e236f72637b73686170652d72656e646572696e673a20637269737065646765733b20696d6167652d72656e646572696e673a202d7765626b69742d63726973702d65646765733b20696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b20696d6167652d72656e646572696e673a2063726973702d65646765733b20696d6167652d72656e646572696e673a20706978656c617465643b202d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b7d3c2f7374796c653e3c2f7376673e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c7376672069643d226f7263222077696474683d223130302522206865696768743d2231303025222076657273696f6e3d22312e31222076696577426f783d223020302036302036302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b223ea2646970667358221220fdfa10dbe4711b24ec3be76bda2cef7d8fe94fbe9f4b70422a919278ea2badb764736f6c63430008070033

Deployed Bytecode Sourcemap

62:16755:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:2033;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10086:2021;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3326:242;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;432:187;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14152:2047;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;625:262;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;289:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4084:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;114:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;384:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;894:554;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;337:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8608:1472;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1500:1383;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3574:250;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3830:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;200:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3075:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;245:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12113:2033;12169:13;12203:2;12198;:7;;;12194:37;;;12214:17;12228:2;12214:13;:17::i;:::-;12207:24;;;;12194:37;12250:2;12245;:7;;;12241:912;;;12278:2;12273;:7;;;12268:421;;;12309:1;12304:2;:6;;;12300:201;;;12343:1;12338:2;:6;;;12334:97;;;12385:1;12379:2;:7;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12372:36;;;;12334:97;12461:1;12455:2;:7;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12448:38;;;;12300:201;12527:1;12522:2;:6;;;12518:59;;;12543:1;12537:2;:7;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12530:47;;;;12518:59;12609:1;12603:2;:7;;;:71;;12637:1;12631:2;:7;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12603:71;;;;;;;;;;;;;;;;;;;;;12596:78;;;;12268:421;12712:2;12706;:8;;;12702:287;;12743:2;12738;:7;;;12734:134;;;12782:2;12776;:8;;;:73;;12812:2;12806;:8;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12776:73;;;;;;;;;;;;;;;;;;;;;12769:80;;;;12734:134;12898:2;12892;:8;;;:82;;12932:2;12926;:8;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12892:82;;;;;;;;;;;;;;;;;;;;;12885:89;;;;12702:287;13011:2;13006;:7;;;13002:72;;;13028:2;13022;:8;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13015:59;;;;13002:72;13101:2;13095;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13088:54;;;;12241:912;13173:2;13168;:7;;;13163:508;;;13200:2;13195;:7;;;13191:270;;;13231:2;13226;:7;;;13222:144;;;13270:2;13264;:8;;;:83;;13300:2;13294;:8;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13264:83;;;;;;;;;;;;;;;;;;;;;13257:90;;;;13222:144;13396:2;13390;:8;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13383:63;;;;13191:270;13484:2;13479;:7;;;13475:76;;;13501:2;13495;:8;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13488:63;;;;13475:76;13579:2;13573;:8;;;:87;;13618:2;13612;:8;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13573:87;;;;;;;;;;;;;;;;;;;;;13566:94;;;;13163:508;13690:2;13684;:8;;;13680:272;;13717:2;13712;:7;;;13708:134;;;13752:2;13746;:8;;;:81;;13786:2;13780;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13746:81;;;;;;;;;;;;;;;;;;;;;13739:88;;;;13708:134;13868:2;13862;:8;;;:79;;13900:2;13894;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13862:79;;;;;;;;;;;;;;;;;;;;;13855:86;;;;13680:272;13970:2;13965;:7;;;13961:73;;;13987:2;13981;:8;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13974:60;;;;13961:73;14057:2;14051;:8;;;:88;;14089:2;14083;:8;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14051:88;;;;;;;;;;;;;;;;;;;;;14044:95;;12113:2033;;;;:::o;10086:2021::-;10138:13;10172:2;10167;:7;;;10163:37;;;10183:17;10197:2;10183:13;:17::i;:::-;10176:24;;;;10163:37;10219:2;10214;:7;;;10210:926;;;10247:2;10242;:7;;;10237:424;;;10278:1;10273:2;:6;;;10269:199;;;10312:1;10307:2;:6;;;10303:93;;;10354:1;10348:2;:7;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10341:32;;;;10303:93;10430:1;10424:2;:7;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10417:32;;;;10269:199;10494:1;10489:2;:6;;;10485:65;;;10510:1;10504:2;:7;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10497:53;;;;10485:65;10582:1;10576:2;:7;;;:70;;10611:1;10605:2;:7;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10576:70;;;;;;;;;;;;;;;;;;;;;10569:77;;;;10237:424;10684:2;10678;:8;;;10674:294;;10715:2;10710;:7;;;10706:142;;;10754:2;10748;:8;;;:81;;10786:2;10780;:8;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10748:81;;;;;;;;;;;;;;;;;;;;;10741:88;;;;10706:142;10878:2;10872;:8;;;:81;;10912:2;10906;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10872:81;;;;;;;;;;;;;;;;;;;;;10865:88;;;;10674:294;10990:2;10985;:7;;;10981:73;;;11007:2;11001;:8;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10994:60;;;;10981:73;11081:2;11075;:8;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11068:57;;;;10210:926;11156:2;11151;:7;;;11146:481;;;11183:2;11178;:7;;;11174:257;;;11214:2;11209;:7;;;11205:138;;;11253:2;11247;:8;;;:77;;11283:2;11277;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11247:77;;;;;;;;;;;;;;;;;;;;;11240:84;;;;11205:138;11373:2;11367;:8;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:56;;;;11174:257;11454:2;11449;:7;;;11445:68;;;11471:2;11465;:8;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11458:55;;;;11445:68;11541:2;11535;:8;;;:81;;11571:2;11565;:8;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11535:81;;;;;;;;;;;;;;;;;;;;;11528:88;;;;11146:481;11646:2;11640;:8;;;11636:290;;11673:2;11668;:7;;;11664:145;;;11708:2;11702;:8;;;:92;;11742:2;11736;:8;;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11702:92;;;;;;;;;;;;;;;;;;;;;11695:99;;;;11664:145;11835:2;11829;:8;;;:86;;11867:2;11861;:8;;;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11829:86;;;;;;;;;;;;;;;;;;;;;11822:93;;;;11636:290;11944:2;11939;:7;;;11935:69;;;11961:2;11955;:8;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11948:56;;;;11935:69;12027:2;12021;:8;;;:79;;12060:2;12054;:8;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12021:79;;;;;;;;;;;;;;;;;;;;;12014:86;;10086:2021;;;;:::o;3326:242::-;3423:7;;;;;;;;;;;3409:21;;:10;:21;;;3401:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3462:13;3457:105;3489:3;;:10;;3481:5;:18;3457:105;;;3544:6;3524:5;:17;3530:3;;3534:5;3530:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3524:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3501:7;;;;;:::i;:::-;;;;3457:105;;;;3326:242;;;:::o;432:187::-;;;;;;;;;;;;;;;;;;;:::o;14152:2047::-;14207:13;14241:2;14236;:7;;;14232:37;;;14252:17;14266:2;14252:13;:17::i;:::-;14245:24;;;;14232:37;14288:2;14283;:7;;;14279:922;;;14316:2;14311;:7;;;14306:431;;;14347:1;14342:2;:6;;;14338:199;;;14381:1;14376:2;:6;;;14372:93;;;14423:1;14417:2;:7;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14410:32;;;;14372:93;14499:1;14493:2;:7;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14486:32;;;;14338:199;14563:1;14558:2;:6;;;14554:73;;;14579:1;14573:2;:7;;;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14566:61;;;;14554:73;14659:1;14653:2;:7;;;:69;;14683:1;14677:2;:7;;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14653:69;;;;;;;;;;;;;;;;;;;;;14646:76;;;;14306:431;14760:2;14754;:8;;;14750:289;;14791:2;14786;:7;;;14782:135;;;14830:2;14824;:8;;;:74;;14864:2;14858;:8;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14824:74;;;;;;;;;;;;;;;;;;;;;14817:81;;;;14782:135;14947:2;14941;:8;;;:83;;14979:2;14973;:8;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14941:83;;;;;;;;;;;;;;;;;;;;;14934:90;;;;14750:289;15061:2;15056;:7;;;15052:72;;;15078:2;15072;:8;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15065:59;;;;15052:72;15151:2;15145;:8;;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:52;;;;14279:922;15221:2;15216;:7;;;15211:490;;;15248:2;15243;:7;;;15239:261;;;15279:2;15274;:7;;;15270:137;;;15318:2;15312;:8;;;:76;;15350:2;15344;:8;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15312:76;;;;;;;;;;;;;;;;;;;;;15305:83;;;;15270:137;15437:2;15431;:8;;;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15424:61;;;;15239:261;15523:2;15518;:7;;;15514:72;;;15540:2;15534;:8;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15527:59;;;;15514:72;15614:2;15608;:8;;;:82;;15645:2;15639;:8;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15608:82;;;;;;;;;;;;;;;;;;;;;15601:89;;;;15211:490;15720:2;15714;:8;;;15710:297;;15747:2;15742;:7;;;15738:139;;;15782:2;15776;:8;;;:86;;15813:2;15807;:8;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15776:86;;;;;;;;;;;;;;;;;;;;;15769:93;;;;15738:139;15903:2;15897;:8;;;:99;;15938:2;15932;:8;;;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15897:99;;;;;;;;;;;;;;;;;;;;;15890:106;;;;15710:297;16025:2;16020;:7;;;16016:66;;;16042:2;16036;:8;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16029:53;;;;16016:66;16105:2;16099;:8;;;:93;;16139:2;16133;:8;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16099:93;;;;;;;;;;;;;;;;;;;;;16092:100;;14152:2047;;;;:::o;625:262::-;;;;;;;;;;;;;;;;;;;:::o;289:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;4084:246::-;4183:7;;;;;;;;;;;4169:21;;:10;:21;;;4161:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;4222:13;4217:107;4249:3;;:10;;4241:5;:18;4217:107;;;4306:6;4284:7;:19;4292:3;;4296:5;4292:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4284:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4261:7;;;;;:::i;:::-;;;;4217:107;;;;4084:246;;;:::o;114:22::-;;;;;;;;;;;;;:::o;384:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;894:554::-;989:13;1053:2;1045:5;:10;;;1041:88;;;1088:6;;;;;;;;;;;;;;;;;1096:23;1100:11;1113:5;1096:3;:23::i;:::-;1121:6;;;;;;;;;;;;;;;;;1071:57;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1057:72;;;;1041:88;1184:6;;;;;;;;;;;;;;;;;1204:21;1208:9;1219:5;1204:3;:21::i;:::-;1252:1;1240:5;:13;;;:50;;;;;;;;;;;;;;;;;1256:21;1260:9;1271:5;1256:3;:21::i;:::-;1240:50;1316:1;1304:9;:13;;;:50;;;;;;;;;;;;;;;;;1320:29;1324:13;1339:9;1320:3;:29::i;:::-;1304:50;1380:1;1368:8;:13;;;:50;;;;;;;;;;;;;;;;;1384:27;1388:12;1402:8;1384:3;:27::i;:::-;1368:50;1432:6;;;;;;;;;;;;;;;;;1154:286;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1140:301;;894:554;;;;;;;:::o;337:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;8608:1472::-;8660:13;8694:2;8689;:7;;;8685:37;;;8705:17;8719:2;8705:13;:17::i;:::-;8698:24;;;;8685:37;8741:2;8736;:7;;;8732:921;;;8769:2;8764;:7;;;8759:449;;;8800:1;8795:2;:6;;;8791:232;;;8834:1;8829:2;:6;;;8825:107;;;8876:1;8870:2;:7;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8863:46;;;;8825:107;8966:1;8960:2;:7;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8953:51;;;;8791:232;9049:1;9044:2;:6;;;9040:68;;;9065:1;9059:2;:7;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9052:56;;;;9040:68;9140:1;9134:2;:7;;;:59;;9164:1;9158:2;:7;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9134:59;;;;;;;;;;;;;;;;;;;;;9127:66;;;;8759:449;9231:2;9225;:8;;;9221:275;;9262:2;9257;:7;;;9253:140;;;9301:2;9295;:8;;;:79;;9332:2;9326;:8;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9295:79;;;;;;;;;;;;;;;;;;;;;9288:86;;;;9253:140;9423:2;9417;:8;;;:64;;9449:2;9443;:8;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:64;;;;;;;;;;;;;;;;;;;;;9410:71;;;;9221:275;9518:2;9513;:7;;;9509:68;;;9535:2;9529;:8;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9522:55;;;;9509:68;9604:2;9598;:8;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9591:51;;;;8732:921;9673:2;9668;:7;;;9663:411;;;9700:2;9695;:7;;;9691:260;;;9731:2;9726;:7;;;9722:134;;;9770:2;9764;:8;;;:73;;9796:2;9790;:8;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9764:73;;;;;;;;;;;;;;;;;;;;;9757:80;;;;9722:134;9886:2;9880;:8;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9873:63;;;;9691:260;9974:2;9969;:7;;;9965:62;;;9991:2;9985;:8;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9978:49;;;;9965:62;10042:21;;;;;;;;;;;;;;;;;;;;;9663:411;8608:1472;;;;:::o;1500:1383::-;1649:13;1675:17;1695:60;1715:38;1722:5;1728;1734:9;1744:8;1715:6;:38::i;:::-;1695:13;:60::i;:::-;1675:80;;1900:944;2041:13;2050:3;2041:13;;:8;:13::i;:::-;2584:3;2659:70;2673:5;2680;2687:9;2698:8;2708:6;2716:12;2659:13;:70::i;:::-;1974:822;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1900:13;:944::i;:::-;1809:1053;;;;;;;;:::i;:::-;;;;;;;;;;;;;1766:1110;;;1500:1383;;;;;;;;;:::o;3574:250::-;3675:7;;;;;;;;;;;3661:21;;:10;:21;;;3653:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3714:13;3709:109;3741:3;;:10;;3733:5;:18;3709:109;;;3800:6;3776:9;:21;3786:3;;3790:5;3786:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3776:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;3753:7;;;;;:::i;:::-;;;;3709:109;;;;3574:250;;;:::o;3830:248::-;3930:7;;;;;;;;;;;3916:21;;:10;:21;;;3908:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3969:13;3964:108;3996:3;;:10;;3988:5;:18;3964:108;;;4054:6;4031:8;:20;4040:3;;4044:5;4040:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4031:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4008:7;;;;;:::i;:::-;;;;3964:108;;;;3830:248;;;:::o;200:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;3075:244::-;3173:7;;;;;;;;;;;3159:21;;:10;:21;;;3151:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3212:13;3207:106;3239:3;;:10;;3231:5;:18;3207:106;;;3295:6;3274;:18;3281:3;;3285:5;3281:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3274:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3251:7;;;;;:::i;:::-;;;;3207:106;;;;3075:244;;;:::o;245:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;16205:610::-;16261:13;16294:2;16289;:7;;;16286:288;;;16320:2;16315;:7;;;16312:135;;;16355:2;16349;:8;;;:83;;16378:2;16372;:8;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16349:83;;;;;;;;;;;;;;;;;;;;;16342:90;;;;16312:135;16474:2;16468;:8;;;:95;;16505:2;16499;:8;;;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16468:95;;;;;;;;;;;;;;;;;;;;;16461:102;;;;16286:288;16592:2;16587;:7;;;16583:125;;;16623:2;16617;:8;;;:80;;16647:2;16641;:8;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16617:80;;;;;;;;;;;;;;;;;;;;;16610:87;;;;16583:125;16730:2;16724;:8;;;:84;;16764:2;16758;:8;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16724:84;;;;;;;;;;;;;;;;;;;;;16717:91;;16205:610;;;;:::o;4769:391::-;4826:19;4857:14;4895:9;4887:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;:207;;4947:9;4939:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;:155;;4999:13;4991:21;;;;;;;;:::i;:::-;;:4;:21;;;;;;;;:::i;:::-;;;:103;;5051:12;5043:20;;;;;;;;:::i;:::-;;:4;:20;;;;;;;;:::i;:::-;;;:51;;5083:7;:11;5091:2;5083:11;;;;;;;;;;;;;;;;;;;;;;;;;5043:51;;;5067:8;:12;5076:2;5067:12;;;;;;;;;;;;;;;;;;;;;;;;;5043:51;4991:103;;;5015:9;:13;5025:2;5015:13;;;;;;;;;;;;;;;;;;;;;;;;;4991:103;4939:155;;;4963:5;:9;4969:2;4963:9;;;;;;;;;;;;;;;;;;;;;;;;;4939:155;4887:207;;;4911:6;:10;4918:2;4911:10;;;;;;;;;;;;;;;;;;;;;;;;;4887:207;4857:237;;5113:40;5121:31;5126:6;5134:17;5142:4;5148:2;5134:7;:17::i;:::-;5121:4;:31::i;:::-;5113:7;:40::i;:::-;5105:48;;4847:313;4769:391;;;;:::o;17141:1985::-;17199:13;17243:1;17228:4;:11;:16;17224:31;;;17246:9;;;;;;;;;;;;;;;;17224:31;17312:19;17334:5;;;;;;;;;;;;;;;;;17312:27;;17388:18;17434:1;17429;17415:4;:11;:15;;;;:::i;:::-;17414:21;;;;:::i;:::-;17409:1;:27;;;;:::i;:::-;17388:48;;17516:20;17563:2;17550:10;:15;;;;:::i;:::-;17539:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17516:50;;17659:10;17651:6;17644:26;17763:1;17756:5;17752:13;17831:4;17881;17875:11;17866:7;17862:25;17986:2;17978:6;17974:15;18068:794;18087:6;18078:7;18075:19;18068:794;;;18151:1;18142:7;18138:15;18127:26;;18235:7;18229:14;18379:4;18371:5;18367:2;18363:14;18359:25;18349:8;18345:40;18339:47;18334:3;18330:57;18319:9;18312:76;18432:1;18421:9;18417:17;18404:30;;18517:4;18509:5;18505:2;18501:14;18497:25;18487:8;18483:40;18477:47;18472:3;18468:57;18457:9;18450:76;18570:1;18559:9;18555:17;18542:30;;18655:4;18647:5;18644:1;18639:14;18635:25;18625:8;18621:40;18615:47;18610:3;18606:57;18595:9;18588:76;18708:1;18697:9;18693:17;18680:30;;18793:4;18785:5;18773:25;18763:8;18759:40;18753:47;18748:3;18744:57;18733:9;18726:76;18846:1;18835:9;18831:17;18818:30;;18110:752;18068:794;;;18944:1;18937:4;18931:11;18927:19;18964:1;18959:54;;;;19031:1;19026:52;;;;18920:158;;18959:54;19003:6;18998:3;18994:16;18990:1;18979:9;18975:17;18968:43;18959:54;;19026:52;19070:4;19065:3;19061:14;19057:1;19046:9;19042:17;19035:41;18920:158;;17586:1502;;;;19113:6;19106:13;;;;;17141:1985;;;;:::o;5910:703::-;5966:13;6192:1;6183:5;:10;6179:51;;;6209:10;;;;;;;;;;;;;;;;;;;;;6179:51;6239:12;6254:5;6239:20;;6269:14;6293:75;6308:1;6300:4;:9;6293:75;;6325:8;;;;;:::i;:::-;;;;6355:2;6347:10;;;;;:::i;:::-;;;6293:75;;;6377:19;6409:6;6399:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6377:39;;6426:150;6442:1;6433:5;:10;6426:150;;6469:1;6459:11;;;;;:::i;:::-;;;6535:2;6527:5;:10;;;;:::i;:::-;6514:2;:24;;;;:::i;:::-;6501:39;;6484:6;6491;6484:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;6563:2;6554:11;;;;;:::i;:::-;;;6426:150;;;6599:6;6585:21;;;;;5910:703;;;;:::o;6619:626::-;6760:13;6858:24;6876:5;6858:17;:24::i;:::-;6909;6927:5;6909:17;:24::i;:::-;6960:32;6982:9;6960:21;:32::i;:::-;7011:30;7032:8;7011:20;:30::i;:::-;7093:16;7102:6;7093:16;;:8;:16::i;:::-;7209:22;7218:12;7209:22;;:8;:22::i;:::-;6798:439;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6784:454;;6619:626;;;;;;;;:::o;5449:455::-;5510:17;5539:15;5602:9;5594:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;:192;;5651:9;5643:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;:143;;5700:13;5692:21;;;;;;;;:::i;:::-;;:4;:21;;;;;;;;:::i;:::-;;;:94;;5749:12;5741:20;;;;;;;;:::i;:::-;;:4;:20;;;;;;;;:::i;:::-;;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5692:94;;;;;;;;;;;;;;;;;;;;;5643:143;;;;;;;;;;;;;;;;;;;;;5594:192;;;;;;;;;;;;;;;;;;;;;5800:12;5809:2;5800:12;;:8;:12::i;:::-;5564:276;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5539:302;;5891:1;5867:30;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5860:37;;;5449:455;;;;:::o;4515:248::-;4586:17;4616:9;4627:16;4648:6;:17;;4666:3;4648:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4615:55;;;;4688:4;4680:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4742:3;4731:25;;;;;;;;;;;;:::i;:::-;4725:31;;4605:158;;4515:248;;;;:::o;5170:273::-;5229:13;5424:3;5268:167;;;;;;;;:::i;:::-;;;;;;;;;;;;;5254:182;;5170:273;;;:::o;7251:183::-;7313:13;7402:18;7414:5;7402:11;:18::i;:::-;7352:74;;;;;;;;:::i;:::-;;;;;;;;;;;;;7338:89;;7251:183;;;:::o;7440:270::-;7502:13;7591:18;7603:5;7591:11;:18::i;:::-;7673:24;7682:14;7690:5;7682:14;;:7;:14::i;:::-;7673:24;;:8;:24::i;:::-;7541:161;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7527:176;;7440:270;;;:::o;7716:298::-;7786:13;7879:26;7895:9;7879:15;:26::i;:::-;7973:28;7982:18;7990:9;7982:18;;:7;:18::i;:::-;7973:28;;:8;:28::i;:::-;7825:181;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7811:196;;7716:298;;;:::o;8020:291::-;8088:13;8180:24;8195:8;8180:14;:24::i;:::-;8271:27;8280:17;8288:8;8280:17;;:7;:17::i;:::-;8271:27;;:8;:27::i;:::-;8127:176;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8113:191;;8020:291;;;:::o;8317:162::-;8368:6;8395:2;8390;:7;;;8386:23;;;8406:3;8399:10;;;;8386:23;8429:1;8423:2;:7;;;8419:21;;;8439:1;8432:8;;;;8419:21;8469:1;8464;8459:2;:6;;;;:::i;:::-;8458:12;;;;:::i;:::-;8450:22;;8317:162;;;;:::o;7:421:2:-;96:5;121:66;137:49;179:6;137:49;:::i;:::-;121:66;:::i;:::-;112:75;;210:6;203:5;196:21;248:4;241:5;237:16;286:3;277:6;272:3;268:16;265:25;262:112;;;293:79;;:::i;:::-;262:112;383:39;415:6;410:3;405;383:39;:::i;:::-;102:326;7:421;;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;434:139;;;;:::o;594:566::-;665:8;675:6;725:3;718:4;710:6;706:17;702:27;692:122;;733:79;;:::i;:::-;692:122;846:6;833:20;823:30;;876:18;868:6;865:30;862:117;;;898:79;;:::i;:::-;862:117;1012:4;1004:6;1000:17;988:29;;1066:3;1058:4;1050:6;1046:17;1036:8;1032:32;1029:41;1026:128;;;1073:79;;:::i;:::-;1026:128;594:566;;;;;:::o;1180:355::-;1247:5;1296:3;1289:4;1281:6;1277:17;1273:27;1263:122;;1304:79;;:::i;:::-;1263:122;1414:6;1408:13;1439:90;1525:3;1517:6;1510:4;1502:6;1498:17;1439:90;:::i;:::-;1430:99;;1253:282;1180:355;;;;:::o;1541:137::-;1586:5;1624:6;1611:20;1602:29;;1640:32;1666:5;1640:32;:::i;:::-;1541:137;;;;:::o;1684:135::-;1728:5;1766:6;1753:20;1744:29;;1782:31;1807:5;1782:31;:::i;:::-;1684:135;;;;:::o;1825:700::-;1918:6;1926;1934;1983:2;1971:9;1962:7;1958:23;1954:32;1951:119;;;1989:79;;:::i;:::-;1951:119;2137:1;2126:9;2122:17;2109:31;2167:18;2159:6;2156:30;2153:117;;;2189:79;;:::i;:::-;2153:117;2302:78;2372:7;2363:6;2352:9;2348:22;2302:78;:::i;:::-;2284:96;;;;2080:310;2429:2;2455:53;2500:7;2491:6;2480:9;2476:22;2455:53;:::i;:::-;2445:63;;2400:118;1825:700;;;;;:::o;2531:524::-;2611:6;2660:2;2648:9;2639:7;2635:23;2631:32;2628:119;;;2666:79;;:::i;:::-;2628:119;2807:1;2796:9;2792:17;2786:24;2837:18;2829:6;2826:30;2823:117;;;2859:79;;:::i;:::-;2823:117;2964:74;3030:7;3021:6;3010:9;3006:22;2964:74;:::i;:::-;2954:84;;2757:291;2531:524;;;;:::o;3061:1181::-;3163:6;3171;3179;3187;3195;3203;3211;3260:3;3248:9;3239:7;3235:23;3231:33;3228:120;;;3267:79;;:::i;:::-;3228:120;3387:1;3412:52;3456:7;3447:6;3436:9;3432:22;3412:52;:::i;:::-;3402:62;;3358:116;3513:2;3539:51;3582:7;3573:6;3562:9;3558:22;3539:51;:::i;:::-;3529:61;;3484:116;3639:2;3665:51;3708:7;3699:6;3688:9;3684:22;3665:51;:::i;:::-;3655:61;;3610:116;3765:2;3791:51;3834:7;3825:6;3814:9;3810:22;3791:51;:::i;:::-;3781:61;;3736:116;3891:3;3918:51;3961:7;3952:6;3941:9;3937:22;3918:51;:::i;:::-;3908:61;;3862:117;4018:3;4045:52;4089:7;4080:6;4069:9;4065:22;4045:52;:::i;:::-;4035:62;;3989:118;4146:3;4173:52;4217:7;4208:6;4197:9;4193:22;4173:52;:::i;:::-;4163:62;;4117:118;3061:1181;;;;;;;;;;:::o;4248:325::-;4305:6;4354:2;4342:9;4333:7;4329:23;4325:32;4322:119;;;4360:79;;:::i;:::-;4322:119;4480:1;4505:51;4548:7;4539:6;4528:9;4524:22;4505:51;:::i;:::-;4495:61;;4451:115;4248:325;;;;:::o;4579:749::-;4657:6;4665;4673;4681;4730:3;4718:9;4709:7;4705:23;4701:33;4698:120;;;4737:79;;:::i;:::-;4698:120;4857:1;4882:51;4925:7;4916:6;4905:9;4901:22;4882:51;:::i;:::-;4872:61;;4828:115;4982:2;5008:51;5051:7;5042:6;5031:9;5027:22;5008:51;:::i;:::-;4998:61;;4953:116;5108:2;5134:51;5177:7;5168:6;5157:9;5153:22;5134:51;:::i;:::-;5124:61;;5079:116;5234:2;5260:51;5303:7;5294:6;5283:9;5279:22;5260:51;:::i;:::-;5250:61;;5205:116;4579:749;;;;;;;:::o;5334:118::-;5421:24;5439:5;5421:24;:::i;:::-;5416:3;5409:37;5334:118;;:::o;5458:373::-;5562:3;5590:38;5622:5;5590:38;:::i;:::-;5644:88;5725:6;5720:3;5644:88;:::i;:::-;5637:95;;5741:52;5786:6;5781:3;5774:4;5767:5;5763:16;5741:52;:::i;:::-;5818:6;5813:3;5809:16;5802:23;;5566:265;5458:373;;;;:::o;5837:364::-;5925:3;5953:39;5986:5;5953:39;:::i;:::-;6008:71;6072:6;6067:3;6008:71;:::i;:::-;6001:78;;6088:52;6133:6;6128:3;6121:4;6114:5;6110:16;6088:52;:::i;:::-;6165:29;6187:6;6165:29;:::i;:::-;6160:3;6156:39;6149:46;;5929:272;5837:364;;;;:::o;6207:377::-;6313:3;6341:39;6374:5;6341:39;:::i;:::-;6396:89;6478:6;6473:3;6396:89;:::i;:::-;6389:96;;6494:52;6539:6;6534:3;6527:4;6520:5;6516:16;6494:52;:::i;:::-;6571:6;6566:3;6562:16;6555:23;;6317:267;6207:377;;;;:::o;6590:402::-;6750:3;6771:85;6853:2;6848:3;6771:85;:::i;:::-;6764:92;;6865:93;6954:3;6865:93;:::i;:::-;6983:2;6978:3;6974:12;6967:19;;6590:402;;;:::o;6998:::-;7158:3;7179:85;7261:2;7256:3;7179:85;:::i;:::-;7172:92;;7273:93;7362:3;7273:93;:::i;:::-;7391:2;7386:3;7382:12;7375:19;;6998:402;;;:::o;7406:::-;7566:3;7587:85;7669:2;7664:3;7587:85;:::i;:::-;7580:92;;7681:93;7770:3;7681:93;:::i;:::-;7799:2;7794:3;7790:12;7783:19;;7406:402;;;:::o;7814:400::-;7974:3;7995:84;8077:1;8072:3;7995:84;:::i;:::-;7988:91;;8088:93;8177:3;8088:93;:::i;:::-;8206:1;8201:3;8197:11;8190:18;;7814:400;;;:::o;8220:404::-;8380:3;8401:86;8483:3;8478;8401:86;:::i;:::-;8394:93;;8496;8585:3;8496:93;:::i;:::-;8614:3;8609;8605:13;8598:20;;8220:404;;;:::o;8630:400::-;8790:3;8811:84;8893:1;8888:3;8811:84;:::i;:::-;8804:91;;8904:93;8993:3;8904:93;:::i;:::-;9022:1;9017:3;9013:11;9006:18;;8630:400;;;:::o;9036:402::-;9196:3;9217:85;9299:2;9294:3;9217:85;:::i;:::-;9210:92;;9311:93;9400:3;9311:93;:::i;:::-;9429:2;9424:3;9420:12;9413:19;;9036:402;;;:::o;9444:::-;9604:3;9625:85;9707:2;9702:3;9625:85;:::i;:::-;9618:92;;9719:93;9808:3;9719:93;:::i;:::-;9837:2;9832:3;9828:12;9821:19;;9444:402;;;:::o;9852:::-;10012:3;10033:85;10115:2;10110:3;10033:85;:::i;:::-;10026:92;;10127:93;10216:3;10127:93;:::i;:::-;10245:2;10240:3;10236:12;10229:19;;9852:402;;;:::o;10260:400::-;10420:3;10441:84;10523:1;10518:3;10441:84;:::i;:::-;10434:91;;10534:93;10623:3;10534:93;:::i;:::-;10652:1;10647:3;10643:11;10636:18;;10260:400;;;:::o;10666:402::-;10826:3;10847:85;10929:2;10924:3;10847:85;:::i;:::-;10840:92;;10941:93;11030:3;10941:93;:::i;:::-;11059:2;11054:3;11050:12;11043:19;;10666:402;;;:::o;11074:400::-;11234:3;11255:84;11337:1;11332:3;11255:84;:::i;:::-;11248:91;;11348:93;11437:3;11348:93;:::i;:::-;11466:1;11461:3;11457:11;11450:18;;11074:400;;;:::o;11480:::-;11640:3;11661:84;11743:1;11738:3;11661:84;:::i;:::-;11654:91;;11754:93;11843:3;11754:93;:::i;:::-;11872:1;11867:3;11863:11;11856:18;;11480:400;;;:::o;11886:366::-;12028:3;12049:67;12113:2;12108:3;12049:67;:::i;:::-;12042:74;;12125:93;12214:3;12125:93;:::i;:::-;12243:2;12238:3;12234:12;12227:19;;11886:366;;;:::o;12258:400::-;12418:3;12439:84;12521:1;12516:3;12439:84;:::i;:::-;12432:91;;12532:93;12621:3;12532:93;:::i;:::-;12650:1;12645:3;12641:11;12634:18;;12258:400;;;:::o;12664:402::-;12824:3;12845:85;12927:2;12922:3;12845:85;:::i;:::-;12838:92;;12939:93;13028:3;12939:93;:::i;:::-;13057:2;13052:3;13048:12;13041:19;;12664:402;;;:::o;13072:::-;13232:3;13253:85;13335:2;13330:3;13253:85;:::i;:::-;13246:92;;13347:93;13436:3;13347:93;:::i;:::-;13465:2;13460:3;13456:12;13449:19;;13072:402;;;:::o;13480:400::-;13640:3;13661:84;13743:1;13738:3;13661:84;:::i;:::-;13654:91;;13754:93;13843:3;13754:93;:::i;:::-;13872:1;13867:3;13863:11;13856:18;;13480:400;;;:::o;13886:402::-;14046:3;14067:85;14149:2;14144:3;14067:85;:::i;:::-;14060:92;;14161:93;14250:3;14161:93;:::i;:::-;14279:2;14274:3;14270:12;14263:19;;13886:402;;;:::o;14294:364::-;14436:3;14457:66;14521:1;14516:3;14457:66;:::i;:::-;14450:73;;14532:93;14621:3;14532:93;:::i;:::-;14650:1;14645:3;14641:11;14634:18;;14294:364;;;:::o;14664:402::-;14824:3;14845:85;14927:2;14922:3;14845:85;:::i;:::-;14838:92;;14939:93;15028:3;14939:93;:::i;:::-;15057:2;15052:3;15048:12;15041:19;;14664:402;;;:::o;15072:::-;15232:3;15253:85;15335:2;15330:3;15253:85;:::i;:::-;15246:92;;15347:93;15436:3;15347:93;:::i;:::-;15465:2;15460:3;15456:12;15449:19;;15072:402;;;:::o;15480:404::-;15640:3;15661:86;15743:3;15738;15661:86;:::i;:::-;15654:93;;15756;15845:3;15756:93;:::i;:::-;15874:3;15869;15865:13;15858:20;;15480:404;;;:::o;15890:366::-;16032:3;16053:67;16117:2;16112:3;16053:67;:::i;:::-;16046:74;;16129:93;16218:3;16129:93;:::i;:::-;16247:2;16242:3;16238:12;16231:19;;15890:366;;;:::o;16262:402::-;16422:3;16443:85;16525:2;16520:3;16443:85;:::i;:::-;16436:92;;16537:93;16626:3;16537:93;:::i;:::-;16655:2;16650:3;16646:12;16639:19;;16262:402;;;:::o;16670:271::-;16800:3;16822:93;16911:3;16902:6;16822:93;:::i;:::-;16815:100;;16932:3;16925:10;;16670:271;;;;:::o;16947:275::-;17079:3;17101:95;17192:3;17183:6;17101:95;:::i;:::-;17094:102;;17213:3;17206:10;;16947:275;;;;:::o;17228:595::-;17456:3;17478:95;17569:3;17560:6;17478:95;:::i;:::-;17471:102;;17590:95;17681:3;17672:6;17590:95;:::i;:::-;17583:102;;17702:95;17793:3;17784:6;17702:95;:::i;:::-;17695:102;;17814:3;17807:10;;17228:595;;;;;;:::o;17829:1075::-;18201:3;18223:95;18314:3;18305:6;18223:95;:::i;:::-;18216:102;;18335:95;18426:3;18417:6;18335:95;:::i;:::-;18328:102;;18447:95;18538:3;18529:6;18447:95;:::i;:::-;18440:102;;18559:95;18650:3;18641:6;18559:95;:::i;:::-;18552:102;;18671:95;18762:3;18753:6;18671:95;:::i;:::-;18664:102;;18783:95;18874:3;18865:6;18783:95;:::i;:::-;18776:102;;18895:3;18888:10;;17829:1075;;;;;;;;;:::o;18910:701::-;19191:3;19213:95;19304:3;19295:6;19213:95;:::i;:::-;19206:102;;19325:95;19416:3;19407:6;19325:95;:::i;:::-;19318:102;;19437:148;19581:3;19437:148;:::i;:::-;19430:155;;19602:3;19595:10;;18910:701;;;;;:::o;19617:1233::-;20100:3;20122:148;20266:3;20122:148;:::i;:::-;20115:155;;20287:95;20378:3;20369:6;20287:95;:::i;:::-;20280:102;;20399:148;20543:3;20399:148;:::i;:::-;20392:155;;20564:95;20655:3;20646:6;20564:95;:::i;:::-;20557:102;;20676:148;20820:3;20676:148;:::i;:::-;20669:155;;20841:3;20834:10;;19617:1233;;;;;:::o;20856:::-;21339:3;21361:148;21505:3;21361:148;:::i;:::-;21354:155;;21526:95;21617:3;21608:6;21526:95;:::i;:::-;21519:102;;21638:148;21782:3;21638:148;:::i;:::-;21631:155;;21803:95;21894:3;21885:6;21803:95;:::i;:::-;21796:102;;21915:148;22059:3;21915:148;:::i;:::-;21908:155;;22080:3;22073:10;;20856:1233;;;;;:::o;22095:807::-;22429:3;22451:148;22595:3;22451:148;:::i;:::-;22444:155;;22616:95;22707:3;22698:6;22616:95;:::i;:::-;22609:102;;22728:148;22872:3;22728:148;:::i;:::-;22721:155;;22893:3;22886:10;;22095:807;;;;:::o;22908:1925::-;23641:3;23663:148;23807:3;23663:148;:::i;:::-;23656:155;;23828:95;23919:3;23910:6;23828:95;:::i;:::-;23821:102;;23940:148;24084:3;23940:148;:::i;:::-;23933:155;;24105:148;24249:3;24105:148;:::i;:::-;24098:155;;24270:95;24361:3;24352:6;24270:95;:::i;:::-;24263:102;;24382:148;24526:3;24382:148;:::i;:::-;24375:155;;24547:95;24638:3;24629:6;24547:95;:::i;:::-;24540:102;;24659:148;24803:3;24659:148;:::i;:::-;24652:155;;24824:3;24817:10;;22908:1925;;;;;;:::o;24839:2937::-;25918:3;25940:148;26084:3;25940:148;:::i;:::-;25933:155;;26105:95;26196:3;26187:6;26105:95;:::i;:::-;26098:102;;26217:148;26361:3;26217:148;:::i;:::-;26210:155;;26382:95;26473:3;26464:6;26382:95;:::i;:::-;26375:102;;26494:148;26638:3;26494:148;:::i;:::-;26487:155;;26659:95;26750:3;26741:6;26659:95;:::i;:::-;26652:102;;26771:148;26915:3;26771:148;:::i;:::-;26764:155;;26936:95;27027:3;27018:6;26936:95;:::i;:::-;26929:102;;27048:148;27192:3;27048:148;:::i;:::-;27041:155;;27213:95;27304:3;27295:6;27213:95;:::i;:::-;27206:102;;27325:148;27469:3;27325:148;:::i;:::-;27318:155;;27490:95;27581:3;27572:6;27490:95;:::i;:::-;27483:102;;27602:148;27746:3;27602:148;:::i;:::-;27595:155;;27767:3;27760:10;;24839:2937;;;;;;;;;:::o;27782:541::-;28015:3;28037:148;28181:3;28037:148;:::i;:::-;28030:155;;28202:95;28293:3;28284:6;28202:95;:::i;:::-;28195:102;;28314:3;28307:10;;27782:541;;;;:::o;28329:1233::-;28812:3;28834:148;28978:3;28834:148;:::i;:::-;28827:155;;28999:95;29090:3;29081:6;28999:95;:::i;:::-;28992:102;;29111:148;29255:3;29111:148;:::i;:::-;29104:155;;29276:95;29367:3;29358:6;29276:95;:::i;:::-;29269:102;;29388:148;29532:3;29388:148;:::i;:::-;29381:155;;29553:3;29546:10;;28329:1233;;;;;:::o;29568:807::-;29902:3;29924:148;30068:3;29924:148;:::i;:::-;29917:155;;30089:95;30180:3;30171:6;30089:95;:::i;:::-;30082:102;;30201:148;30345:3;30201:148;:::i;:::-;30194:155;;30366:3;30359:10;;29568:807;;;;:::o;30381:222::-;30474:4;30512:2;30501:9;30497:18;30489:26;;30525:71;30593:1;30582:9;30578:17;30569:6;30525:71;:::i;:::-;30381:222;;;;:::o;30609:313::-;30722:4;30760:2;30749:9;30745:18;30737:26;;30809:9;30803:4;30799:20;30795:1;30784:9;30780:17;30773:47;30837:78;30910:4;30901:6;30837:78;:::i;:::-;30829:86;;30609:313;;;;:::o;30928:419::-;31094:4;31132:2;31121:9;31117:18;31109:26;;31181:9;31175:4;31171:20;31167:1;31156:9;31152:17;31145:47;31209:131;31335:4;31209:131;:::i;:::-;31201:139;;30928:419;;;:::o;31353:::-;31519:4;31557:2;31546:9;31542:18;31534:26;;31606:9;31600:4;31596:20;31592:1;31581:9;31577:17;31570:47;31634:131;31760:4;31634:131;:::i;:::-;31626:139;;31353:419;;;:::o;31778:::-;31944:4;31982:2;31971:9;31967:18;31959:26;;32031:9;32025:4;32021:20;32017:1;32006:9;32002:17;31995:47;32059:131;32185:4;32059:131;:::i;:::-;32051:139;;31778:419;;;:::o;32203:129::-;32237:6;32264:20;;:::i;:::-;32254:30;;32293:33;32321:4;32313:6;32293:33;:::i;:::-;32203:129;;;:::o;32338:75::-;32371:6;32404:2;32398:9;32388:19;;32338:75;:::o;32419:308::-;32481:4;32571:18;32563:6;32560:30;32557:56;;;32593:18;;:::i;:::-;32557:56;32631:29;32653:6;32631:29;:::i;:::-;32623:37;;32715:4;32709;32705:15;32697:23;;32419:308;;;:::o;32733:98::-;32784:6;32818:5;32812:12;32802:22;;32733:98;;;:::o;32837:99::-;32889:6;32923:5;32917:12;32907:22;;32837:99;;;:::o;32942:147::-;33043:11;33080:3;33065:18;;32942:147;;;;:::o;33095:169::-;33179:11;33213:6;33208:3;33201:19;33253:4;33248:3;33244:14;33229:29;;33095:169;;;;:::o;33270:148::-;33372:11;33409:3;33394:18;;33270:148;;;;:::o;33424:305::-;33464:3;33483:20;33501:1;33483:20;:::i;:::-;33478:25;;33517:20;33535:1;33517:20;:::i;:::-;33512:25;;33671:1;33603:66;33599:74;33596:1;33593:81;33590:107;;;33677:18;;:::i;:::-;33590:107;33721:1;33718;33714:9;33707:16;;33424:305;;;;:::o;33735:182::-;33774:1;33791:19;33808:1;33791:19;:::i;:::-;33786:24;;33824:19;33841:1;33824:19;:::i;:::-;33819:24;;33862:1;33852:35;;33867:18;;:::i;:::-;33852:35;33909:1;33906;33902:9;33897:14;;33735:182;;;;:::o;33923:185::-;33963:1;33980:20;33998:1;33980:20;:::i;:::-;33975:25;;34014:20;34032:1;34014:20;:::i;:::-;34009:25;;34053:1;34043:35;;34058:18;;:::i;:::-;34043:35;34100:1;34097;34093:9;34088:14;;33923:185;;;;:::o;34114:348::-;34154:7;34177:20;34195:1;34177:20;:::i;:::-;34172:25;;34211:20;34229:1;34211:20;:::i;:::-;34206:25;;34399:1;34331:66;34327:74;34324:1;34321:81;34316:1;34309:9;34302:17;34298:105;34295:131;;;34406:18;;:::i;:::-;34295:131;34454:1;34451;34447:9;34436:20;;34114:348;;;;:::o;34468:188::-;34507:4;34527:19;34544:1;34527:19;:::i;:::-;34522:24;;34560:19;34577:1;34560:19;:::i;:::-;34555:24;;34598:1;34595;34592:8;34589:34;;;34603:18;;:::i;:::-;34589:34;34648:1;34645;34641:9;34633:17;;34468:188;;;;:::o;34662:191::-;34702:4;34722:20;34740:1;34722:20;:::i;:::-;34717:25;;34756:20;34774:1;34756:20;:::i;:::-;34751:25;;34795:1;34792;34789:8;34786:34;;;34800:18;;:::i;:::-;34786:34;34845:1;34842;34838:9;34830:17;;34662:191;;;;:::o;34859:96::-;34896:7;34925:24;34943:5;34925:24;:::i;:::-;34914:35;;34859:96;;;:::o;34961:89::-;34997:7;35037:6;35030:5;35026:18;35015:29;;34961:89;;;:::o;35056:126::-;35093:7;35133:42;35126:5;35122:54;35111:65;;35056:126;;;:::o;35188:77::-;35225:7;35254:5;35243:16;;35188:77;;;:::o;35271:86::-;35306:7;35346:4;35339:5;35335:16;35324:27;;35271:86;;;:::o;35363:307::-;35431:1;35441:113;35455:6;35452:1;35449:13;35441:113;;;35540:1;35535:3;35531:11;35525:18;35521:1;35516:3;35512:11;35505:39;35477:2;35474:1;35470:10;35465:15;;35441:113;;;35572:6;35569:1;35566:13;35563:101;;;35652:1;35643:6;35638:3;35634:16;35627:27;35563:101;35412:258;35363:307;;;:::o;35676:281::-;35759:27;35781:4;35759:27;:::i;:::-;35751:6;35747:40;35889:6;35877:10;35874:22;35853:18;35841:10;35838:34;35835:62;35832:88;;;35900:18;;:::i;:::-;35832:88;35940:10;35936:2;35929:22;35719:238;35676:281;;:::o;35963:233::-;36002:3;36025:24;36043:5;36025:24;:::i;:::-;36016:33;;36071:66;36064:5;36061:77;36058:103;;;36141:18;;:::i;:::-;36058:103;36188:1;36181:5;36177:13;36170:20;;35963:233;;;:::o;36202:176::-;36234:1;36251:20;36269:1;36251:20;:::i;:::-;36246:25;;36285:20;36303:1;36285:20;:::i;:::-;36280:25;;36324:1;36314:35;;36329:18;;:::i;:::-;36314:35;36370:1;36367;36363:9;36358:14;;36202:176;;;;:::o;36384:180::-;36432:77;36429:1;36422:88;36529:4;36526:1;36519:15;36553:4;36550:1;36543:15;36570:180;36618:77;36615:1;36608:88;36715:4;36712:1;36705:15;36739:4;36736:1;36729:15;36756:180;36804:77;36801:1;36794:88;36901:4;36898:1;36891:15;36925:4;36922:1;36915:15;36942:180;36990:77;36987:1;36980:88;37087:4;37084:1;37077:15;37111:4;37108:1;37101:15;37128:180;37176:77;37173:1;37166:88;37273:4;37270:1;37263:15;37297:4;37294:1;37287:15;37314:117;37423:1;37420;37413:12;37437:117;37546:1;37543;37536:12;37560:117;37669:1;37666;37659:12;37683:117;37792:1;37789;37782:12;37806:117;37915:1;37912;37905:12;37929:117;38038:1;38035;38028:12;38052:102;38093:6;38144:2;38140:7;38135:2;38128:5;38124:14;38120:28;38110:38;;38052:102;;;:::o;38160:315::-;38300:66;38296:1;38288:6;38284:14;38277:90;38401:66;38396:2;38388:6;38384:15;38377:91;38160:315;:::o;38481:::-;38621:66;38617:1;38609:6;38605:14;38598:90;38722:66;38717:2;38709:6;38705:15;38698:91;38481:315;:::o;38802:252::-;38942:66;38938:1;38930:6;38926:14;38919:90;39043:3;39038:2;39030:6;39026:15;39019:28;38802:252;:::o;39060:214::-;39200:66;39196:1;39188:6;39184:14;39177:90;39060:214;:::o;39280:1153::-;39420:66;39416:1;39408:6;39404:14;39397:90;39521:34;39516:2;39508:6;39504:15;39497:59;39590:34;39585:2;39577:6;39573:15;39566:59;39659:34;39654:2;39646:6;39642:15;39635:59;39729:34;39723:3;39715:6;39711:16;39704:60;39799:34;39793:3;39785:6;39781:16;39774:60;39869:34;39863:3;39855:6;39851:16;39844:60;39939:34;39933:3;39925:6;39921:16;39914:60;40009:34;40003:3;39995:6;39991:16;39984:60;40079:34;40073:3;40065:6;40061:16;40054:60;40149:34;40143:3;40135:6;40131:16;40124:60;40219:34;40213:3;40205:6;40201:16;40194:60;40289:34;40283:3;40275:6;40271:16;40264:60;40359:66;40353:3;40345:6;40341:16;40334:92;39280:1153;:::o;40439:151::-;40579:3;40575:1;40567:6;40563:14;40556:27;40439:151;:::o;40596:315::-;40736:66;40732:1;40724:6;40720:14;40713:90;40837:66;40832:2;40824:6;40820:15;40813:91;40596:315;:::o;40917:::-;41057:66;41053:1;41045:6;41041:14;41034:90;41158:66;41153:2;41145:6;41141:15;41134:91;40917:315;:::o;41238:214::-;41378:66;41374:1;41366:6;41362:14;41355:90;41238:214;:::o;41458:144::-;41594:4;41590:1;41582:6;41578:14;41571:28;41458:144;:::o;41604:206::-;41740:66;41736:1;41728:6;41724:14;41717:90;41604:206;:::o;41812:::-;41948:66;41944:1;41936:6;41932:14;41925:90;41812:206;:::o;42020:144::-;42156:4;42152:1;42144:6;42140:14;42133:28;42020:144;:::o;42166:160::-;42302:20;42298:1;42290:6;42286:14;42279:44;42166:160;:::o;42328:139::-;42460:3;42456:1;42448:6;42444:14;42437:27;42328:139;:::o;42469:202::-;42601:66;42597:1;42589:6;42585:14;42578:90;42469:202;:::o;42673:::-;42805:66;42801:1;42793:6;42789:14;42782:90;42673:202;:::o;42877:::-;43009:66;43005:1;42997:6;42993:14;42986:90;42877:202;:::o;43081:167::-;43213:31;43209:1;43201:6;43197:14;43190:55;43081:167;:::o;43250:110::-;;:::o;43362:295::-;43494:66;43490:1;43482:6;43478:14;43471:90;43587:66;43582:2;43574:6;43570:15;43563:91;43362:295;:::o;43659:388::-;43791:66;43787:1;43779:6;43775:14;43768:90;43884:66;43879:2;43871:6;43867:15;43860:91;43977:66;43972:2;43964:6;43960:15;43953:91;43659:388;:::o;44049:518::-;44181:66;44177:1;44169:6;44165:14;44158:90;44274:66;44269:2;44261:6;44257:15;44250:91;44367:66;44362:2;44354:6;44350:15;44343:91;44460:66;44455:2;44447:6;44443:15;44436:91;44554:9;44548:3;44540:6;44536:16;44529:35;44049:518;:::o;44569:149::-;44701:13;44697:1;44689:6;44685:14;44678:37;44569:149;:::o;44720:164::-;44852:28;44848:1;44840:6;44836:14;44829:52;44720:164;:::o;44886:110::-;44951:24;44969:5;44951:24;:::i;:::-;44944:5;44941:35;44931:63;;44990:1;44987;44980:12;44931:63;44886:110;:::o;44998:108::-;45062:23;45079:5;45062:23;:::i;:::-;45055:5;45052:34;45042:62;;45100:1;45097;45090:12;45042:62;44998:108;:::o;45108:106::-;45171:22;45187:5;45171:22;:::i;:::-;45164:5;45161:33;45151:61;;45208:1;45205;45198:12;45151:61;45108:106;:::o

Swarm Source

ipfs://fdfa10dbe4711b24ec3be76bda2cef7d8fe94fbe9f4b70422a919278ea2badb7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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