{
  "_format": "hh-sol-artifact-1",
  "contractName": "PolygonChildERC20BurnableMock",
  "sourceName": "contracts/token/ERC20/polygon/child/mocks/PolygonChildERC20BurnableMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "address",
          "name": "childChainManager",
          "type": "address"
        },
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "universalForwarder",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "MinterAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "MinterRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "addMinter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchBurnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "childChainManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deploymentChainId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "depositData",
          "type": "bytes"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isMinter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "ret",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC20Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceMinter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenURI_",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6101206040523480156200001257600080fd5b506040516200424438038062004244833981810160405260a08110156200003857600080fd5b81019080805160405193929190846401000000008211156200005957600080fd5b9083019060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b82525081516020918201928201910280838360005b83811015620000bc578181015183820152602001620000a2565b5050505090500160405260200180516040519392919084640100000000821115620000e657600080fd5b908301906020820185811115620000fc57600080fd5b82518660208202830111640100000000821117156200011a57600080fd5b82525081516020918201928201910280838360005b83811015620001495781810151838201526020016200012f565b50505050919091016040818152602084810151858301516060909601518385018452601085526f4368696c64204552433230204d6f636b60801b838601528351808501855260048152630434532360e41b93810193909352600080546001600160a01b0319163390811782559451929950969750959294509091601291889182918691869186918491849184918f918f918f9182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b16608052825162000233906002906020860190620005ed565b50815162000249906003906020850190620005ed565b507fff0000000000000000000000000000000000000000000000000000000000000060f882901b16610100524660c0819052620002878185620002dc565b60e0525050600880546001600160a01b0319166001600160a01b03979097169690961790955550620002c497508896506200036695505050505050565b50620002d18585620003b2565b505050505062000699565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b8151815181146200040a576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b8281146200057f5760008582815181106200042557fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141562000498576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6000858381518110620004a757fe5b6020026020010151905080600014620005335783810184811162000512576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350506001016200040e565b508015620005e757600754818101818111620005e2576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b600755505b50505050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000625576000855562000670565b82601f106200064057805160ff191683800117855562000670565b8280016001018555821562000670579182015b828111156200067057825182559160200191906001019062000653565b506200067e92915062000682565b5090565b5b808211156200067e576000815560010162000683565b60805160601c60a05160601c60c05160e0516101005160f81c613b3f620007056000398061111d525080611205525080611144528061215252508061182152806135a052806138ee52508061185c528061356552806135f852806138c4528061394f5250613b3f6000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c80637ecebe001161017b578063c3666c36116100d8578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610e32578063eb79554914610ea2578063f2fde38b14610f27576102c8565b8063d505accf14610db3578063dd62ed3e14610e04576102c8565b8063c8291d84116100bd578063c8291d8414610d23578063cd0d009614610d2b578063cf2c52cb14610d33576102c8565b8063c3666c3614610c07578063c4c2bfdc14610d1b576102c8565b8063986502751161012f578063a9059cbb11610114578063a9059cbb14610b25578063aa271e1a14610b51578063b88d4fde14610b77576102c8565b80639865027514610af1578063a457c2d714610af9576102c8565b80638da5cb5b116101605780638da5cb5b14610a9f57806395d89b4114610ac3578063983b2d5614610acb576102c8565b80637ecebe00146109b757806388d695b2146109dd576102c8565b80633c130d9011610229578063572b6c05116101dd57806370a08231116101c257806370a082311461085157806373c8a9581461087757806379cc67901461098b576102c8565b8063572b6c0514610704578063685731071461072a576102c8565b806342966c681161020e57806342966c68146105685780634885b254146105855780634fc3585914610657576102c8565b80633c130d901461053457806340c10f191461053c576102c8565b806323b872dd11610280578063313ce56711610265578063313ce567146104e25780633644e515146105005780633950935114610508576102c8565b806323b872dd1461048d5780632e1a7d4d146104c3576102c8565b8063095ea7b3116102b1578063095ea7b31461038557806318160ddd146103b15780631b9a7529146103cb576102c8565b806301ffc9a7146102cd57806306fdde0314610308575b600080fd5b6102f4600480360360208110156102e357600080fd5b50356001600160e01b031916610f4d565b604080519115158252519081900360200190f35b610310610f6d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034a578181015183820152602001610332565b50505050905090810190601f1680156103775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f46004803603604081101561039b57600080fd5b506001600160a01b038135169060200135611001565b6103b961101e565b60408051918252519081900360200190f35b6102f4600480360360408110156103e157600080fd5b8101906020810181356401000000008111156103fc57600080fd5b82018360208201111561040e57600080fd5b8035906020019184602083028401116401000000008311171561043057600080fd5b91939092909160208101903564010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b509092509050611024565b6102f4600480360360608110156104a357600080fd5b506001600160a01b0381358116916020810135909116906040013561109e565b6104e0600480360360208110156104d957600080fd5b50356110bd565b005b6104ea61111b565b6040805160ff9092168252519081900360200190f35b6103b961113f565b6102f46004803603604081101561051e57600080fd5b506001600160a01b03813516906020013561122b565b610310611399565b6104e06004803603604081101561055257600080fd5b506001600160a01b0381351690602001356113fa565b6102f46004803603602081101561057e57600080fd5b5035611418565b6102f46004803603606081101561059b57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460208302840111640100000000831117156105fa57600080fd5b91939092909160208101903564010000000081111561061857600080fd5b82018360208201111561062a57600080fd5b8035906020019184602083028401116401000000008311171561064c57600080fd5b509092509050611433565b6106e76004803603608081101561066d57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111640100000000831117156106dc57600080fd5b509092509050611767565b604080516001600160e01b03199092168252519081900360200190f35b6102f46004803603602081101561071a57600080fd5b50356001600160a01b031661181d565b6104e06004803603604081101561074057600080fd5b81019060208101813564010000000081111561075b57600080fd5b82018360208201111561076d57600080fd5b8035906020019184602083028401116401000000008311171561078f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156107df57600080fd5b8201836020820111156107f157600080fd5b8035906020019184602083028401116401000000008311171561081357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611896945050505050565b6103b96004803603602081101561086757600080fd5b50356001600160a01b03166118ab565b6104e06004803603606081101561088d57600080fd5b8101906020810181356401000000008111156108a857600080fd5b8201836020820111156108ba57600080fd5b803590602001918460208302840111640100000000831117156108dc57600080fd5b9193909290916020810190356401000000008111156108fa57600080fd5b82018360208201111561090c57600080fd5b8035906020019184602083028401116401000000008311171561092e57600080fd5b91939092909160208101903564010000000081111561094c57600080fd5b82018360208201111561095e57600080fd5b8035906020019184602083028401116401000000008311171561098057600080fd5b5090925090506118c6565b6102f4600480360360408110156109a157600080fd5b506001600160a01b0381351690602001356119b8565b6103b9600480360360208110156109cd57600080fd5b50356001600160a01b03166119c4565b6102f4600480360360408110156109f357600080fd5b810190602081018135640100000000811115610a0e57600080fd5b820183602082011115610a2057600080fd5b80359060200191846020830284011164010000000083111715610a4257600080fd5b919390929091602081019035640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b5090925090506119d6565b610aa7611ce5565b604080516001600160a01b039092168252519081900360200190f35b610310611cf4565b6104e060048036036020811015610ae157600080fd5b50356001600160a01b0316611d55565b6104e0611d6c565b6102f460048036036040811015610b0f57600080fd5b506001600160a01b038135169060200135611dca565b6102f460048036036040811015610b3b57600080fd5b506001600160a01b038135169060200135611e39565b6102f460048036036020811015610b6757600080fd5b50356001600160a01b0316611e4d565b6102f460048036036080811015610b8d57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135640100000000811115610bc857600080fd5b820183602082011115610bda57600080fd5b80359060200191846001830284011164010000000083111715610bfc57600080fd5b509092509050611e62565b6104e060048036036060811015610c1d57600080fd5b810190602081018135640100000000811115610c3857600080fd5b820183602082011115610c4a57600080fd5b80359060200191846020830284011164010000000083111715610c6c57600080fd5b919390929091602081019035640100000000811115610c8a57600080fd5b820183602082011115610c9c57600080fd5b80359060200191846020830284011164010000000083111715610cbe57600080fd5b919390929091602081019035640100000000811115610cdc57600080fd5b820183602082011115610cee57600080fd5b80359060200191846020830284011164010000000083111715610d1057600080fd5b509092509050611fea565b610310612132565b610aa7612141565b6103b9612150565b6104e060048036036040811015610d4957600080fd5b6001600160a01b038235169190810190604081016020820135640100000000811115610d7457600080fd5b820183602082011115610d8657600080fd5b80359060200191846001830284011164010000000083111715610da857600080fd5b509092509050612174565b6104e0600480360360e0811015610dc957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356121aa565b6103b960048036036040811015610e1a57600080fd5b506001600160a01b0381358116916020013516612429565b6104e060048036036020811015610e4857600080fd5b810190602081018135640100000000811115610e6357600080fd5b820183602082011115610e7557600080fd5b80359060200191846001830284011164010000000083111715610e9757600080fd5b509092509050612454565b6102f460048036036060811015610eb857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846001830284011164010000000083111715610f1c57600080fd5b509092509050612470565b6104e060048036036020811015610f3d57600080fd5b50356001600160a01b03166125f6565b6000610f5882612667565b80610f675750610f67826126a5565b92915050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b820191906000526020600020905b815481529060010190602001808311610fd957829003601f168201915b505050505090505b90565b600061101561100e6126f1565b84846126fb565b50600192915050565b60075490565b6000611093858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506127b892505050565b506001949350505050565b60006110b36110ab6126f1565b858585612974565b5060019392505050565b60006110c76126f1565b90506110d381836129a3565b604080516001600160a01b03831681526020810184905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a15050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000467f00000000000000000000000000000000000000000000000000000000000000008114611203576002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181526111fe938593919290918301828280156111f45780601f106111c9576101008083540402835291602001916111f4565b820191906000526020600020905b8154815290600101906020018083116111d757829003601f168201915b50505050506129dd565b611225565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60006001600160a01b038316611288576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b60006112926126f1565b6001600160a01b03808216600090815260066020908152604080832093891683529290522054909150831561134357808401818111611318576040805162461bcd60e51b815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f7700000000000000604482015290519081900360640190fd5b6001600160a01b038084166000908152600660209081526040808320938a1683529290522081905590505b846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3506001949350505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b61140a6114056126f1565b612a67565b6114148282612ad4565b5050565b600061142b6114256126f1565b83612bf7565b506001919050565b60008382811461148a576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6001600160a01b0387166000908152600560205260408120549080805b84811461169c5760008a8a838181106114bc57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611536576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600089898481811061154457fe5b90506020020135905080600014611647578481018581116115ac576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b03168e6001600160a01b0316146115eb576001600160a01b0383166000908152600560205260409020805483019055611645565b86821115611640576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350506001016114a7565b5081158015906116ac5750808214155b1561172657818303838110611708576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038b16600090815260056020526040902090820190555b60006117306126f1565b9050806001600160a01b03168b6001600160a01b031614611756576117568b8285612cd6565b5060019a9950505050505050505050565b60003330146117bd576040805162461bcd60e51b815260206004820152601860248201527f4368696c6445524332303a2077726f6e672073656e6465720000000000000000604482015290519081900360640190fd5b6117c73085612bf7565b604080516001600160a01b03871681526020810186905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a150634fc3585960e01b95945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610f6757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6118a16114056126f1565b6114148282612de5565b6001600160a01b031660009081526005602052604090205490565b6118d66118d16126f1565b613015565b8483811480156118e557508082145b611936576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146119ae576119a688888381811061194f57fe5b905060200201356001600160a01b031685858481811061196b57fe5b9050602002013588888581811061197e57fe5b905060200201356001600160a01b03166001600160a01b03166130d99092919063ffffffff16565b600101611939565b5050505050505050565b600061101583836129a3565b60016020526000908152604090205481565b600083828114611a2d576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000611a376126f1565b6001600160a01b03811660009081526005602052604081205491925080805b858114611c4b5760008b8b83818110611a6b57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611ae5576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008a8a84818110611af357fe5b90506020020135905080600014611bf657848101858111611b5b576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b0316886001600160a01b031614611b9a576001600160a01b0383166000908152600560205260409020805483019055611bf4565b86821115611bef576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050600101611a56565b508115801590611c5b5750808214155b15611cd557818303838110611cb7576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038516600090815260056020526040902090820190555b5060019998505050505050505050565b6000546001600160a01b031690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b611d606118d16126f1565b611d6981613159565b50565b6000611d766126f1565b9050611d8181612a67565b6001600160a01b038116600081815260096020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b60006001600160a01b038316611e27576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b611015611e326126f1565b8484612cd6565b6000611015611e466126f1565b84846131a5565b60096020526000908152604090205460ff1681565b600080611e6d6126f1565b9050611e7b81888888612974565b611e8d866001600160a01b031661330c565b15611fdd57634fc3585960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc35859838a8989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b505050506040513d6020811015611f7f57600080fd5b50516001600160e01b03191614611fdd576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b5060019695505050505050565b611ff56118d16126f1565b84838114801561200457508082145b612055576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146119ae5785858281811061206b57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a8581811061209657fe5b905060200201356001600160a01b03168787868181106120b257fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561210f57600080fd5b505af1158015612123573d6000803e3d6000fd5b50505050806001019050612058565b606061213c613312565b905090565b6008546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61218461217f6126f1565b613356565b60008282602081101561219657600080fd5b503590506121a48482612ad4565b50505050565b6001600160a01b038716612205576040805162461bcd60e51b815260206004820152601960248201527f45524332303a207a65726f2061646472657373206f776e657200000000000000604482015290519081900360640190fd5b8342111561225a576040805162461bcd60e51b815260206004820152601560248201527f45524332303a2065787069726564207065726d69740000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380881660008181526001602081815260408084208054938401905580517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280820195909552948b166060850152608084018a905260a084019190915260c08084018990528451808503909101815260e090930190935281519190920120906122ec61113f565b8260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156123a0573d6000803e3d6000fd5b505050602060405103519050896001600160a01b0316816001600160a01b031614612412576040805162461bcd60e51b815260206004820152601560248201527f45524332303a20696e76616c6964207065726d69740000000000000000000000604482015290519081900360640190fd5b61241d8a8a8a6126fb565b50505050505050505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b61245f6118d16126f1565b61246b60048383613a40565b505050565b60008061247b6126f1565b90506124888187876131a5565b61249a866001600160a01b031661330c565b156125ea57634fc3585960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc3585983848989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561256257600080fd5b505af1158015612576573d6000803e3d6000fd5b505050506040513d602081101561258c57600080fd5b50516001600160e01b031916146125ea576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b50600195945050505050565b6126016118d16126f1565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60006001600160e01b031982167f20c07ed1000000000000000000000000000000000000000000000000000000001480610f675750610f67826133b8565b60006001600160e01b031982167f01ffc9a7000000000000000000000000000000000000000000000000000000001480610f675750506001600160e01b031916634fc3585960e01b1490565b600061213c613555565b6001600160a01b038216612756576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b81518151811461280f576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60006128196126f1565b90506000805b83811461295c57600086828151811061283457fe5b60200260200101519050600086838151811061284c57fe5b60200260200101519050806000146128ed576001600160a01b0382166000908152600560205260409020548181038181106128ce576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526005602052604090205550928301925b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3846001600160a01b0316826001600160a01b03161461295257612952828683612cd6565b505060010161281f565b50801561296d576007805482900390555b5050505050565b61297f8383836131a5565b836001600160a01b0316836001600160a01b0316146121a4576121a4838583612cd6565b6129ad8282612bf7565b60006129b76126f1565b9050806001600160a01b0316836001600160a01b03161461246b5761246b838284612cd6565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b03811660009081526009602052604090205460ff16611d69576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038216612b2f576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6007548115612bb157808201818111612b8f576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007556001600160a01b03831660009081526005602052604090208054830190555b6040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b8015612c91576001600160a01b038216600090815260056020526040902054818103818110612c6d576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260056020526040902055506007805482900390555b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038084166000908152600660209081526040808320938616835292905220546000198114801590612d0d57508115155b15612d9457818103818110612d69576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6001600160a01b03808616600090815260066020908152604080832093881683529290522081905590505b826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050565b815181518114612e3c576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b828114612faa576000858281518110612e5557fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612ec7576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6000858381518110612ed557fe5b6020026020010151905080600014612f5f57838101848111612f3e576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101612e40565b5080156121a45760075481810181811161300b576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007555050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561304e57600080fd5b505afa158015613062573d6000803e3d6000fd5b505050506040513d602081101561307857600080fd5b50516001600160a01b03828116911614611d69576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261246b9084906136b5565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b6001600160a01b038216613200576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b80156132bc576001600160a01b038316600090815260056020526040902054818103818110613276576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b0316146132b9576001600160a01b038086166000908152600560205260408082208490559186168152208054840190555b50505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3b151590565b606061331c6138b6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b6008546001600160a01b03828116911614611d69576040805162461bcd60e51b815260206004820152601a60248201527f4368696c6445524332303a206f6e6c79206465706f7369746f72000000000000604482015290519081900360640190fd5b60006001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000148061341b57506001600160e01b031982167f36372b0700000000000000000000000000000000000000000000000000000000145b8061344f57506001600160e01b031982167fa219a02500000000000000000000000000000000000000000000000000000000145b8061348357506001600160e01b031982167f3c130d9000000000000000000000000000000000000000000000000000000000145b806134b757506001600160e01b031982167f9d07518600000000000000000000000000000000000000000000000000000000145b806134eb57506001600160e01b031982167fc05327e600000000000000000000000000000000000000000000000000000000145b8061351f57506001600160e01b031982167f53f41a9700000000000000000000000000000000000000000000000000000000145b80610f675750506001600160e01b0319167f9d8ff7da000000000000000000000000000000000000000000000000000000001490565b60003381613561613a19565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806135d457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156135e2579150610ffe9050565b6001600160a01b03821632148015906136a157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561367457600080fd5b505afa158015613688573d6000803e3d6000fd5b505050506040513d602081101561369e57600080fd5b50515b156136af579150610ffe9050565b50905090565b816136c86001600160a01b03821661330c565b613719576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061377457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613737565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146137d6576040519150601f19603f3d011682016040523d82523d6000602084013e6137db565b606091505b5091509150811561385a578051156138555780806020019051602081101561380257600080fd5b5051613855576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b61296d565b80516138ad576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b366000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681148061392257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156139395761392f613a25565b9250925050613a15565b6001600160a01b03811632148015906139ff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d6613984613a19565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156139d257600080fd5b505afa1580156139e6573d6000803e3d6000fd5b505050506040513d60208110156139fc57600080fd5b50515b15613a0c5761392f613a25565b60003692509250505b9091565b60131936013560601c90565b366000613a386013198301828481613ae1565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613a765760008555613abc565b82601f10613a8f5782800160ff19823516178555613abc565b82800160010185558215613abc579182015b82811115613abc578235825591602001919060010190613aa1565b50613ac8929150613acc565b5090565b5b80821115613ac85760008155600101613acd565b60008085851115613af0578182fd5b83861115613afc578182fd5b505082019391909203915056fea26469706673582212206e0953319be4a511c845fa886deb881ae4daf2f18d28506917112ac91720659464736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102c85760003560e01c80637ecebe001161017b578063c3666c36116100d8578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610e32578063eb79554914610ea2578063f2fde38b14610f27576102c8565b8063d505accf14610db3578063dd62ed3e14610e04576102c8565b8063c8291d84116100bd578063c8291d8414610d23578063cd0d009614610d2b578063cf2c52cb14610d33576102c8565b8063c3666c3614610c07578063c4c2bfdc14610d1b576102c8565b8063986502751161012f578063a9059cbb11610114578063a9059cbb14610b25578063aa271e1a14610b51578063b88d4fde14610b77576102c8565b80639865027514610af1578063a457c2d714610af9576102c8565b80638da5cb5b116101605780638da5cb5b14610a9f57806395d89b4114610ac3578063983b2d5614610acb576102c8565b80637ecebe00146109b757806388d695b2146109dd576102c8565b80633c130d9011610229578063572b6c05116101dd57806370a08231116101c257806370a082311461085157806373c8a9581461087757806379cc67901461098b576102c8565b8063572b6c0514610704578063685731071461072a576102c8565b806342966c681161020e57806342966c68146105685780634885b254146105855780634fc3585914610657576102c8565b80633c130d901461053457806340c10f191461053c576102c8565b806323b872dd11610280578063313ce56711610265578063313ce567146104e25780633644e515146105005780633950935114610508576102c8565b806323b872dd1461048d5780632e1a7d4d146104c3576102c8565b8063095ea7b3116102b1578063095ea7b31461038557806318160ddd146103b15780631b9a7529146103cb576102c8565b806301ffc9a7146102cd57806306fdde0314610308575b600080fd5b6102f4600480360360208110156102e357600080fd5b50356001600160e01b031916610f4d565b604080519115158252519081900360200190f35b610310610f6d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034a578181015183820152602001610332565b50505050905090810190601f1680156103775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f46004803603604081101561039b57600080fd5b506001600160a01b038135169060200135611001565b6103b961101e565b60408051918252519081900360200190f35b6102f4600480360360408110156103e157600080fd5b8101906020810181356401000000008111156103fc57600080fd5b82018360208201111561040e57600080fd5b8035906020019184602083028401116401000000008311171561043057600080fd5b91939092909160208101903564010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b509092509050611024565b6102f4600480360360608110156104a357600080fd5b506001600160a01b0381358116916020810135909116906040013561109e565b6104e0600480360360208110156104d957600080fd5b50356110bd565b005b6104ea61111b565b6040805160ff9092168252519081900360200190f35b6103b961113f565b6102f46004803603604081101561051e57600080fd5b506001600160a01b03813516906020013561122b565b610310611399565b6104e06004803603604081101561055257600080fd5b506001600160a01b0381351690602001356113fa565b6102f46004803603602081101561057e57600080fd5b5035611418565b6102f46004803603606081101561059b57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460208302840111640100000000831117156105fa57600080fd5b91939092909160208101903564010000000081111561061857600080fd5b82018360208201111561062a57600080fd5b8035906020019184602083028401116401000000008311171561064c57600080fd5b509092509050611433565b6106e76004803603608081101561066d57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460018302840111640100000000831117156106dc57600080fd5b509092509050611767565b604080516001600160e01b03199092168252519081900360200190f35b6102f46004803603602081101561071a57600080fd5b50356001600160a01b031661181d565b6104e06004803603604081101561074057600080fd5b81019060208101813564010000000081111561075b57600080fd5b82018360208201111561076d57600080fd5b8035906020019184602083028401116401000000008311171561078f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156107df57600080fd5b8201836020820111156107f157600080fd5b8035906020019184602083028401116401000000008311171561081357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611896945050505050565b6103b96004803603602081101561086757600080fd5b50356001600160a01b03166118ab565b6104e06004803603606081101561088d57600080fd5b8101906020810181356401000000008111156108a857600080fd5b8201836020820111156108ba57600080fd5b803590602001918460208302840111640100000000831117156108dc57600080fd5b9193909290916020810190356401000000008111156108fa57600080fd5b82018360208201111561090c57600080fd5b8035906020019184602083028401116401000000008311171561092e57600080fd5b91939092909160208101903564010000000081111561094c57600080fd5b82018360208201111561095e57600080fd5b8035906020019184602083028401116401000000008311171561098057600080fd5b5090925090506118c6565b6102f4600480360360408110156109a157600080fd5b506001600160a01b0381351690602001356119b8565b6103b9600480360360208110156109cd57600080fd5b50356001600160a01b03166119c4565b6102f4600480360360408110156109f357600080fd5b810190602081018135640100000000811115610a0e57600080fd5b820183602082011115610a2057600080fd5b80359060200191846020830284011164010000000083111715610a4257600080fd5b919390929091602081019035640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b5090925090506119d6565b610aa7611ce5565b604080516001600160a01b039092168252519081900360200190f35b610310611cf4565b6104e060048036036020811015610ae157600080fd5b50356001600160a01b0316611d55565b6104e0611d6c565b6102f460048036036040811015610b0f57600080fd5b506001600160a01b038135169060200135611dca565b6102f460048036036040811015610b3b57600080fd5b506001600160a01b038135169060200135611e39565b6102f460048036036020811015610b6757600080fd5b50356001600160a01b0316611e4d565b6102f460048036036080811015610b8d57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135640100000000811115610bc857600080fd5b820183602082011115610bda57600080fd5b80359060200191846001830284011164010000000083111715610bfc57600080fd5b509092509050611e62565b6104e060048036036060811015610c1d57600080fd5b810190602081018135640100000000811115610c3857600080fd5b820183602082011115610c4a57600080fd5b80359060200191846020830284011164010000000083111715610c6c57600080fd5b919390929091602081019035640100000000811115610c8a57600080fd5b820183602082011115610c9c57600080fd5b80359060200191846020830284011164010000000083111715610cbe57600080fd5b919390929091602081019035640100000000811115610cdc57600080fd5b820183602082011115610cee57600080fd5b80359060200191846020830284011164010000000083111715610d1057600080fd5b509092509050611fea565b610310612132565b610aa7612141565b6103b9612150565b6104e060048036036040811015610d4957600080fd5b6001600160a01b038235169190810190604081016020820135640100000000811115610d7457600080fd5b820183602082011115610d8657600080fd5b80359060200191846001830284011164010000000083111715610da857600080fd5b509092509050612174565b6104e0600480360360e0811015610dc957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356121aa565b6103b960048036036040811015610e1a57600080fd5b506001600160a01b0381358116916020013516612429565b6104e060048036036020811015610e4857600080fd5b810190602081018135640100000000811115610e6357600080fd5b820183602082011115610e7557600080fd5b80359060200191846001830284011164010000000083111715610e9757600080fd5b509092509050612454565b6102f460048036036060811015610eb857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846001830284011164010000000083111715610f1c57600080fd5b509092509050612470565b6104e060048036036020811015610f3d57600080fd5b50356001600160a01b03166125f6565b6000610f5882612667565b80610f675750610f67826126a5565b92915050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b820191906000526020600020905b815481529060010190602001808311610fd957829003601f168201915b505050505090505b90565b600061101561100e6126f1565b84846126fb565b50600192915050565b60075490565b6000611093858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506127b892505050565b506001949350505050565b60006110b36110ab6126f1565b858585612974565b5060019392505050565b60006110c76126f1565b90506110d381836129a3565b604080516001600160a01b03831681526020810184905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a15050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000467f00000000000000000000000000000000000000000000000000000000000000008114611203576002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181526111fe938593919290918301828280156111f45780601f106111c9576101008083540402835291602001916111f4565b820191906000526020600020905b8154815290600101906020018083116111d757829003601f168201915b50505050506129dd565b611225565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60006001600160a01b038316611288576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b60006112926126f1565b6001600160a01b03808216600090815260066020908152604080832093891683529290522054909150831561134357808401818111611318576040805162461bcd60e51b815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f7700000000000000604482015290519081900360640190fd5b6001600160a01b038084166000908152600660209081526040808320938a1683529290522081905590505b846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3506001949350505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b61140a6114056126f1565b612a67565b6114148282612ad4565b5050565b600061142b6114256126f1565b83612bf7565b506001919050565b60008382811461148a576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6001600160a01b0387166000908152600560205260408120549080805b84811461169c5760008a8a838181106114bc57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611536576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600089898481811061154457fe5b90506020020135905080600014611647578481018581116115ac576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b03168e6001600160a01b0316146115eb576001600160a01b0383166000908152600560205260409020805483019055611645565b86821115611640576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350506001016114a7565b5081158015906116ac5750808214155b1561172657818303838110611708576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038b16600090815260056020526040902090820190555b60006117306126f1565b9050806001600160a01b03168b6001600160a01b031614611756576117568b8285612cd6565b5060019a9950505050505050505050565b60003330146117bd576040805162461bcd60e51b815260206004820152601860248201527f4368696c6445524332303a2077726f6e672073656e6465720000000000000000604482015290519081900360640190fd5b6117c73085612bf7565b604080516001600160a01b03871681526020810186905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a150634fc3585960e01b95945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610f6757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6118a16114056126f1565b6114148282612de5565b6001600160a01b031660009081526005602052604090205490565b6118d66118d16126f1565b613015565b8483811480156118e557508082145b611936576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146119ae576119a688888381811061194f57fe5b905060200201356001600160a01b031685858481811061196b57fe5b9050602002013588888581811061197e57fe5b905060200201356001600160a01b03166001600160a01b03166130d99092919063ffffffff16565b600101611939565b5050505050505050565b600061101583836129a3565b60016020526000908152604090205481565b600083828114611a2d576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000611a376126f1565b6001600160a01b03811660009081526005602052604081205491925080805b858114611c4b5760008b8b83818110611a6b57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611ae5576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008a8a84818110611af357fe5b90506020020135905080600014611bf657848101858111611b5b576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b0316886001600160a01b031614611b9a576001600160a01b0383166000908152600560205260409020805483019055611bf4565b86821115611bef576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050600101611a56565b508115801590611c5b5750808214155b15611cd557818303838110611cb7576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038516600090815260056020526040902090820190555b5060019998505050505050505050565b6000546001600160a01b031690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b611d606118d16126f1565b611d6981613159565b50565b6000611d766126f1565b9050611d8181612a67565b6001600160a01b038116600081815260096020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b60006001600160a01b038316611e27576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b611015611e326126f1565b8484612cd6565b6000611015611e466126f1565b84846131a5565b60096020526000908152604090205460ff1681565b600080611e6d6126f1565b9050611e7b81888888612974565b611e8d866001600160a01b031661330c565b15611fdd57634fc3585960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc35859838a8989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b505050506040513d6020811015611f7f57600080fd5b50516001600160e01b03191614611fdd576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b5060019695505050505050565b611ff56118d16126f1565b84838114801561200457508082145b612055576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146119ae5785858281811061206b57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a8581811061209657fe5b905060200201356001600160a01b03168787868181106120b257fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561210f57600080fd5b505af1158015612123573d6000803e3d6000fd5b50505050806001019050612058565b606061213c613312565b905090565b6008546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61218461217f6126f1565b613356565b60008282602081101561219657600080fd5b503590506121a48482612ad4565b50505050565b6001600160a01b038716612205576040805162461bcd60e51b815260206004820152601960248201527f45524332303a207a65726f2061646472657373206f776e657200000000000000604482015290519081900360640190fd5b8342111561225a576040805162461bcd60e51b815260206004820152601560248201527f45524332303a2065787069726564207065726d69740000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380881660008181526001602081815260408084208054938401905580517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280820195909552948b166060850152608084018a905260a084019190915260c08084018990528451808503909101815260e090930190935281519190920120906122ec61113f565b8260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156123a0573d6000803e3d6000fd5b505050602060405103519050896001600160a01b0316816001600160a01b031614612412576040805162461bcd60e51b815260206004820152601560248201527f45524332303a20696e76616c6964207065726d69740000000000000000000000604482015290519081900360640190fd5b61241d8a8a8a6126fb565b50505050505050505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b61245f6118d16126f1565b61246b60048383613a40565b505050565b60008061247b6126f1565b90506124888187876131a5565b61249a866001600160a01b031661330c565b156125ea57634fc3585960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc3585983848989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561256257600080fd5b505af1158015612576573d6000803e3d6000fd5b505050506040513d602081101561258c57600080fd5b50516001600160e01b031916146125ea576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b50600195945050505050565b6126016118d16126f1565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60006001600160e01b031982167f20c07ed1000000000000000000000000000000000000000000000000000000001480610f675750610f67826133b8565b60006001600160e01b031982167f01ffc9a7000000000000000000000000000000000000000000000000000000001480610f675750506001600160e01b031916634fc3585960e01b1490565b600061213c613555565b6001600160a01b038216612756576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b81518151811461280f576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60006128196126f1565b90506000805b83811461295c57600086828151811061283457fe5b60200260200101519050600086838151811061284c57fe5b60200260200101519050806000146128ed576001600160a01b0382166000908152600560205260409020548181038181106128ce576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526005602052604090205550928301925b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3846001600160a01b0316826001600160a01b03161461295257612952828683612cd6565b505060010161281f565b50801561296d576007805482900390555b5050505050565b61297f8383836131a5565b836001600160a01b0316836001600160a01b0316146121a4576121a4838583612cd6565b6129ad8282612bf7565b60006129b76126f1565b9050806001600160a01b0316836001600160a01b03161461246b5761246b838284612cd6565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b03811660009081526009602052604090205460ff16611d69576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038216612b2f576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6007548115612bb157808201818111612b8f576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007556001600160a01b03831660009081526005602052604090208054830190555b6040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b8015612c91576001600160a01b038216600090815260056020526040902054818103818110612c6d576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260056020526040902055506007805482900390555b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038084166000908152600660209081526040808320938616835292905220546000198114801590612d0d57508115155b15612d9457818103818110612d69576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6001600160a01b03808616600090815260066020908152604080832093881683529290522081905590505b826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050565b815181518114612e3c576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b828114612faa576000858281518110612e5557fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612ec7576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6000858381518110612ed557fe5b6020026020010151905080600014612f5f57838101848111612f3e576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101612e40565b5080156121a45760075481810181811161300b576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007555050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561304e57600080fd5b505afa158015613062573d6000803e3d6000fd5b505050506040513d602081101561307857600080fd5b50516001600160a01b03828116911614611d69576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261246b9084906136b5565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b6001600160a01b038216613200576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b80156132bc576001600160a01b038316600090815260056020526040902054818103818110613276576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b0316146132b9576001600160a01b038086166000908152600560205260408082208490559186168152208054840190555b50505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3b151590565b606061331c6138b6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b6008546001600160a01b03828116911614611d69576040805162461bcd60e51b815260206004820152601a60248201527f4368696c6445524332303a206f6e6c79206465706f7369746f72000000000000604482015290519081900360640190fd5b60006001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000148061341b57506001600160e01b031982167f36372b0700000000000000000000000000000000000000000000000000000000145b8061344f57506001600160e01b031982167fa219a02500000000000000000000000000000000000000000000000000000000145b8061348357506001600160e01b031982167f3c130d9000000000000000000000000000000000000000000000000000000000145b806134b757506001600160e01b031982167f9d07518600000000000000000000000000000000000000000000000000000000145b806134eb57506001600160e01b031982167fc05327e600000000000000000000000000000000000000000000000000000000145b8061351f57506001600160e01b031982167f53f41a9700000000000000000000000000000000000000000000000000000000145b80610f675750506001600160e01b0319167f9d8ff7da000000000000000000000000000000000000000000000000000000001490565b60003381613561613a19565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806135d457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156135e2579150610ffe9050565b6001600160a01b03821632148015906136a157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561367457600080fd5b505afa158015613688573d6000803e3d6000fd5b505050506040513d602081101561369e57600080fd5b50515b156136af579150610ffe9050565b50905090565b816136c86001600160a01b03821661330c565b613719576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061377457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613737565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146137d6576040519150601f19603f3d011682016040523d82523d6000602084013e6137db565b606091505b5091509150811561385a578051156138555780806020019051602081101561380257600080fd5b5051613855576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b61296d565b80516138ad576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b366000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681148061392257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156139395761392f613a25565b9250925050613a15565b6001600160a01b03811632148015906139ff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d6613984613a19565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156139d257600080fd5b505afa1580156139e6573d6000803e3d6000fd5b505050506040513d60208110156139fc57600080fd5b50515b15613a0c5761392f613a25565b60003692509250505b9091565b60131936013560601c90565b366000613a386013198301828481613ae1565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613a765760008555613abc565b82601f10613a8f5782800160ff19823516178555613abc565b82800160010185558215613abc579182015b82811115613abc578235825591602001919060010190613aa1565b50613ac8929150613acc565b5090565b5b80821115613ac85760008155600101613acd565b60008085851115613af0578182fd5b83861115613afc578182fd5b505082019391909203915056fea26469706673582212206e0953319be4a511c845fa886deb881ae4daf2f18d28506917112ac91720659464736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
