Overview ERC721
Total Supply:
108,237 BLB

Holders:
107,261
Profile Summary
Blockchain:
Blast Sepolia (168587773)

Contract Source Code Verified (Partial Match)
Contract Name:
BLB

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No

Created At:
Sat, 27 Jan 2024 19:47:06 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "MAX_TOKENS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseExtension",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseUri",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipientOfGas",
        "type": "address"
      }
    ],
    "name": "claimAllGas",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "flipSaleState",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isSaleActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "readGasParams",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "etherSeconds",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "etherBalance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "lastUpdated",
        "type": "uint256"
      },
      {
        "internalType": "enum GasMode",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_baseUri",
        "type": "string"
      }
    ],
    "name": "setBaseUri",
    "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": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "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": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600a90816200004a919062000599565b503480156200005857600080fd5b506040518060400160405280601881526020017f426c61737453636f7265204c616e64696e6720426164676500000000000000008152506040518060400160405280600381526020017f424c4200000000000000000000000000000000000000000000000000000000008152508160009081620000d6919062000599565b508060019081620000e8919062000599565b5050506200010b620000ff6200025160201b60201c565b6200025960201b60201c565b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff16634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200016857600080fd5b505af11580156200017d573d6000803e3d6000fd5b5050505073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663eb864698336040518263ffffffff1660e01b8152600401620001d09190620006c5565b600060405180830381600087803b158015620001eb57600080fd5b505af115801562000200573d6000803e3d6000fd5b505050506040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250600990816200024a919062000599565b50620006e2565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003a157607f821691505b602082108103620003b757620003b662000359565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003e2565b6200042d8683620003e2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200047a620004746200046e8462000445565b6200044f565b62000445565b9050919050565b6000819050919050565b620004968362000459565b620004ae620004a58262000481565b848454620003ef565b825550505050565b600090565b620004c5620004b6565b620004d28184846200048b565b505050565b5b81811015620004fa57620004ee600082620004bb565b600181019050620004d8565b5050565b601f82111562000549576200051381620003bd565b6200051e84620003d2565b810160208510156200052e578190505b620005466200053d85620003d2565b830182620004d7565b50505b505050565b600082821c905092915050565b60006200056e600019846008026200054e565b1980831691505092915050565b60006200058983836200055b565b9150826002028217905092915050565b620005a4826200031f565b67ffffffffffffffff811115620005c057620005bf6200032a565b5b620005cc825462000388565b620005d9828285620004fe565b600060209050601f831160018114620006115760008415620005fc578287015190505b6200060885826200057b565b86555062000678565b601f1984166200062186620003bd565b60005b828110156200064b5784890151825560018201915060208501945060208101905062000624565b868310156200066b578489015162000667601f8916826200055b565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006ad8262000680565b9050919050565b620006bf81620006a0565b82525050565b6000602082019050620006dc6000830184620006b4565b92915050565b61371780620006f26000396000f3fe6080604052600436106101815760003560e01c8063715018a6116100d1578063b88d4fde1161008a578063dde798a411610064578063dde798a41461053b578063e985e9c51461057b578063f2fde38b146105b8578063f47c84c5146105e157610181565b8063b88d4fde146104aa578063c6682862146104d3578063c87b56dd146104fe57610181565b8063715018a6146103c05780638da5cb5b146103d757806395d89b41146104025780639abc83201461042d578063a0bcfc7f14610458578063a22cb4651461048157610181565b806323b872dd1161013e57806342842e0e1161011857806342842e0e146102f2578063564566a81461031b5780636352211e1461034657806370a082311461038357610181565b806323b872dd14610289578063272b1323146102b257806334918dfd146102db57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631249c58b1461025457806318160ddd1461025e575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906121c3565b61060c565b6040516101ba919061220b565b60405180910390f35b3480156101cf57600080fd5b506101d86106ee565b6040516101e591906122b6565b60405180910390f35b3480156101fa57600080fd5b506102156004803603810190610210919061230e565b610780565b604051610222919061237c565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906123c3565b6107c6565b005b61025c6108dd565b005b34801561026a57600080fd5b50610273610a80565b6040516102809190612412565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061242d565b610a86565b005b3480156102be57600080fd5b506102d960048036038101906102d49190612480565b610ae6565b005b3480156102e757600080fd5b506102f0610b84565b005b3480156102fe57600080fd5b506103196004803603810190610314919061242d565b610bb8565b005b34801561032757600080fd5b50610330610bd8565b60405161033d919061220b565b60405180910390f35b34801561035257600080fd5b5061036d6004803603810190610368919061230e565b610beb565b60405161037a919061237c565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612480565b610c71565b6040516103b79190612412565b60405180910390f35b3480156103cc57600080fd5b506103d5610d28565b005b3480156103e357600080fd5b506103ec610d3c565b6040516103f9919061237c565b60405180910390f35b34801561040e57600080fd5b50610417610d66565b60405161042491906122b6565b60405180910390f35b34801561043957600080fd5b50610442610df8565b60405161044f91906122b6565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a91906125e2565b610e86565b005b34801561048d57600080fd5b506104a860048036038101906104a39190612657565b610ea1565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612738565b610eb7565b005b3480156104df57600080fd5b506104e8610f19565b6040516104f591906122b6565b60405180910390f35b34801561050a57600080fd5b506105256004803603810190610520919061230e565b610fa7565b60405161053291906122b6565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190612480565b611009565b6040516105729493929190612832565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612877565b6110ac565b6040516105af919061220b565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612480565b611140565b005b3480156105ed57600080fd5b506105f66111c3565b6040516106039190612412565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e757506106e6826111ca565b5b9050919050565b6060600080546106fd906128e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610729906128e6565b80156107765780601f1061074b57610100808354040283529160200191610776565b820191906000526020600020905b81548152906001019060200180831161075957829003601f168201915b5050505050905090565b600061078b82611234565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107d182610beb565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612989565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661086061127f565b73ffffffffffffffffffffffffffffffffffffffff16148061088f575061088e8161088961127f565b6110ac565b5b6108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c590612a1b565b60405180910390fd5b6108d88383611287565b505050565b66019945ca262000341015610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091e90612a87565b60405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090612af3565b60405180910390fd5b600060075490506207a1206001826109c19190612b42565b1115610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990612bc2565b60405180910390fd5b610a0c3382611340565b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a5c9190612b42565b92505081905550600160076000828254610a769190612b42565b9250508190555050565b60075481565b610a97610a9161127f565b8261135e565b610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612c54565b60405180910390fd5b610ae18383836113f3565b505050565b610aee6116ec565b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663954fa5ee30836040518363ffffffff1660e01b8152600401610b3d929190612c74565b6020604051808303816000875af1158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b809190612cb2565b5050565b610b8c6116ec565b600660149054906101000a900460ff1615600660146101000a81548160ff021916908315150217905550565b610bd383838360405180602001604052806000815250610eb7565b505050565b600660149054906101000a900460ff1681565b600080610bf78361176a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f90612d2b565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd890612dbd565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d306116ec565b610d3a60006117a7565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d75906128e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610da1906128e6565b8015610dee5780601f10610dc357610100808354040283529160200191610dee565b820191906000526020600020905b815481529060010190602001808311610dd157829003601f168201915b5050505050905090565b60098054610e05906128e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610e31906128e6565b8015610e7e5780601f10610e5357610100808354040283529160200191610e7e565b820191906000526020600020905b815481529060010190602001808311610e6157829003601f168201915b505050505081565b610e8e6116ec565b8060099081610e9d9190612f89565b5050565b610eb3610eac61127f565b838361186d565b5050565b610ec8610ec261127f565b8361135e565b610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612c54565b60405180910390fd5b610f13848484846119d9565b50505050565b600a8054610f26906128e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f52906128e6565b8015610f9f5780601f10610f7457610100808354040283529160200191610f9f565b820191906000526020600020905b815481529060010190602001808311610f8257829003601f168201915b505050505081565b60606000610fb3611a35565b90506000815111610fd35760405180602001604052806000815250611001565b80610fdd84611ac7565b600a604051602001610ff19392919061311a565b6040516020818303038152906040525b915050919050565b60008060008073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663dde798a4866040518263ffffffff1660e01b815260040161105c919061237c565b608060405180830381865afa158015611079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109d9190613170565b93509350935093509193509193565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111486116ec565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90613249565b60405180910390fd5b6111c0816117a7565b50565b6207a12081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61123d81611b95565b61127c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127390612d2b565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166112fa83610beb565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61135a828260405180602001604052806000815250611bd6565b5050565b60008061136a83610beb565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806113ac57506113ab81856110ac565b5b806113ea57508373ffffffffffffffffffffffffffffffffffffffff166113d284610780565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661141382610beb565b73ffffffffffffffffffffffffffffffffffffffff1614611469576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611460906132db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf9061336d565b60405180910390fd5b6114e58383836001611c31565b8273ffffffffffffffffffffffffffffffffffffffff1661150582610beb565b73ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906132db565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46116e78383836001611c37565b505050565b6116f461127f565b73ffffffffffffffffffffffffffffffffffffffff16611712610d3c565b73ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f906133d9565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613445565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119cc919061220b565b60405180910390a3505050565b6119e48484846113f3565b6119f084848484611c3d565b611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a26906134d7565b60405180910390fd5b50505050565b606060098054611a44906128e6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a70906128e6565b8015611abd5780601f10611a9257610100808354040283529160200191611abd565b820191906000526020600020905b815481529060010190602001808311611aa057829003601f168201915b5050505050905090565b606060006001611ad684611dc4565b01905060008167ffffffffffffffff811115611af557611af46124b7565b5b6040519080825280601f01601f191660200182016040528015611b275781602001600182028036833780820191505090505b509050600082602001820190505b600115611b8a578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611b7e57611b7d6134f7565b5b04945060008503611b35575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611bb78361176a565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611be08383611f17565b611bed6000848484611c3d565b611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c23906134d7565b60405180910390fd5b505050565b50505050565b50505050565b6000611c5e8473ffffffffffffffffffffffffffffffffffffffff16612134565b15611db7578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c8761127f565b8786866040518563ffffffff1660e01b8152600401611ca9949392919061357b565b6020604051808303816000875af1925050508015611ce557506040513d601f19601f82011682018060405250810190611ce291906135dc565b60015b611d67573d8060008114611d15576040519150601f19603f3d011682016040523d82523d6000602084013e611d1a565b606091505b506000815103611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d56906134d7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611dbc565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e22577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611e1857611e176134f7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e5f576d04ee2d6d415b85acef81000000008381611e5557611e546134f7565b5b0492506020810190505b662386f26fc100008310611e8e57662386f26fc100008381611e8457611e836134f7565b5b0492506010810190505b6305f5e1008310611eb7576305f5e1008381611ead57611eac6134f7565b5b0492506008810190505b6127108310611edc576127108381611ed257611ed16134f7565b5b0492506004810190505b60648310611eff5760648381611ef557611ef46134f7565b5b0492506002810190505b600a8310611f0e576001810190505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90613655565b60405180910390fd5b611f8f81611b95565b15611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc6906136c1565b60405180910390fd5b611fdd600083836001611c31565b611fe681611b95565b15612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d906136c1565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612130600083836001611c37565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121a08161216b565b81146121ab57600080fd5b50565b6000813590506121bd81612197565b92915050565b6000602082840312156121d9576121d8612161565b5b60006121e7848285016121ae565b91505092915050565b60008115159050919050565b612205816121f0565b82525050565b600060208201905061222060008301846121fc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612260578082015181840152602081019050612245565b60008484015250505050565b6000601f19601f8301169050919050565b600061228882612226565b6122928185612231565b93506122a2818560208601612242565b6122ab8161226c565b840191505092915050565b600060208201905081810360008301526122d0818461227d565b905092915050565b6000819050919050565b6122eb816122d8565b81146122f657600080fd5b50565b600081359050612308816122e2565b92915050565b60006020828403121561232457612323612161565b5b6000612332848285016122f9565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123668261233b565b9050919050565b6123768161235b565b82525050565b6000602082019050612391600083018461236d565b92915050565b6123a08161235b565b81146123ab57600080fd5b50565b6000813590506123bd81612397565b92915050565b600080604083850312156123da576123d9612161565b5b60006123e8858286016123ae565b92505060206123f9858286016122f9565b9150509250929050565b61240c816122d8565b82525050565b60006020820190506124276000830184612403565b92915050565b60008060006060848603121561244657612445612161565b5b6000612454868287016123ae565b9350506020612465868287016123ae565b9250506040612476868287016122f9565b9150509250925092565b60006020828403121561249657612495612161565b5b60006124a4848285016123ae565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124ef8261226c565b810181811067ffffffffffffffff8211171561250e5761250d6124b7565b5b80604052505050565b6000612521612157565b905061252d82826124e6565b919050565b600067ffffffffffffffff82111561254d5761254c6124b7565b5b6125568261226c565b9050602081019050919050565b82818337600083830152505050565b600061258561258084612532565b612517565b9050828152602081018484840111156125a1576125a06124b2565b5b6125ac848285612563565b509392505050565b600082601f8301126125c9576125c86124ad565b5b81356125d9848260208601612572565b91505092915050565b6000602082840312156125f8576125f7612161565b5b600082013567ffffffffffffffff81111561261657612615612166565b5b612622848285016125b4565b91505092915050565b612634816121f0565b811461263f57600080fd5b50565b6000813590506126518161262b565b92915050565b6000806040838503121561266e5761266d612161565b5b600061267c858286016123ae565b925050602061268d85828601612642565b9150509250929050565b600067ffffffffffffffff8211156126b2576126b16124b7565b5b6126bb8261226c565b9050602081019050919050565b60006126db6126d684612697565b612517565b9050828152602081018484840111156126f7576126f66124b2565b5b612702848285612563565b509392505050565b600082601f83011261271f5761271e6124ad565b5b813561272f8482602086016126c8565b91505092915050565b6000806000806080858703121561275257612751612161565b5b6000612760878288016123ae565b9450506020612771878288016123ae565b9350506040612782878288016122f9565b925050606085013567ffffffffffffffff8111156127a3576127a2612166565b5b6127af8782880161270a565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106127fb576127fa6127bb565b5b50565b600081905061280c826127ea565b919050565b600061281c826127fe565b9050919050565b61282c81612811565b82525050565b60006080820190506128476000830187612403565b6128546020830186612403565b6128616040830185612403565b61286e6060830184612823565b95945050505050565b6000806040838503121561288e5761288d612161565b5b600061289c858286016123ae565b92505060206128ad858286016123ae565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128fe57607f821691505b602082108103612911576129106128b7565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612973602183612231565b915061297e82612917565b604082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612a05603d83612231565b9150612a10826129a9565b604082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f6d73672e76616c75650000000000000000000000000000000000000000000000600082015250565b6000612a71600983612231565b9150612a7c82612a3b565b602082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f6d696e74206f766572666c6f7700000000000000000000000000000000000000600082015250565b6000612add600d83612231565b9150612ae882612aa7565b602082019050919050565b60006020820190508181036000830152612b0c81612ad0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4d826122d8565b9150612b58836122d8565b9250828201905080821115612b7057612b6f612b13565b5b92915050565b7f746f74616c20737570706c79206f766572666c6f770000000000000000000000600082015250565b6000612bac601583612231565b9150612bb782612b76565b602082019050919050565b60006020820190508181036000830152612bdb81612b9f565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612c3e602d83612231565b9150612c4982612be2565b604082019050919050565b60006020820190508181036000830152612c6d81612c31565b9050919050565b6000604082019050612c89600083018561236d565b612c96602083018461236d565b9392505050565b600081519050612cac816122e2565b92915050565b600060208284031215612cc857612cc7612161565b5b6000612cd684828501612c9d565b91505092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612d15601883612231565b9150612d2082612cdf565b602082019050919050565b60006020820190508181036000830152612d4481612d08565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612da7602983612231565b9150612db282612d4b565b604082019050919050565b60006020820190508181036000830152612dd681612d9a565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612e3f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e02565b612e498683612e02565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612e86612e81612e7c846122d8565b612e61565b6122d8565b9050919050565b6000819050919050565b612ea083612e6b565b612eb4612eac82612e8d565b848454612e0f565b825550505050565b600090565b612ec9612ebc565b612ed4818484612e97565b505050565b5b81811015612ef857612eed600082612ec1565b600181019050612eda565b5050565b601f821115612f3d57612f0e81612ddd565b612f1784612df2565b81016020851015612f26578190505b612f3a612f3285612df2565b830182612ed9565b50505b505050565b600082821c905092915050565b6000612f6060001984600802612f42565b1980831691505092915050565b6000612f798383612f4f565b9150826002028217905092915050565b612f9282612226565b67ffffffffffffffff811115612fab57612faa6124b7565b5b612fb582546128e6565b612fc0828285612efc565b600060209050601f831160018114612ff35760008415612fe1578287015190505b612feb8582612f6d565b865550613053565b601f19841661300186612ddd565b60005b8281101561302957848901518255600182019150602085019450602081019050613004565b868310156130465784890151613042601f891682612f4f565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600061307182612226565b61307b818561305b565b935061308b818560208601612242565b80840191505092915050565b600081546130a4816128e6565b6130ae818661305b565b945060018216600081146130c957600181146130de57613111565b60ff1983168652811515820286019350613111565b6130e785612ddd565b60005b83811015613109578154818901526001820191506020810190506130ea565b838801955050505b50505092915050565b60006131268286613066565b91506131328285613066565b915061313e8284613097565b9150819050949350505050565b6002811061315857600080fd5b50565b60008151905061316a8161314b565b92915050565b6000806000806080858703121561318a57613189612161565b5b600061319887828801612c9d565b94505060206131a987828801612c9d565b93505060406131ba87828801612c9d565b92505060606131cb8782880161315b565b91505092959194509250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613233602683612231565b915061323e826131d7565b604082019050919050565b6000602082019050818103600083015261326281613226565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006132c5602583612231565b91506132d082613269565b604082019050919050565b600060208201905081810360008301526132f4816132b8565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613357602483612231565b9150613362826132fb565b604082019050919050565b600060208201905081810360008301526133868161334a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133c3602083612231565b91506133ce8261338d565b602082019050919050565b600060208201905081810360008301526133f2816133b6565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061342f601983612231565b915061343a826133f9565b602082019050919050565b6000602082019050818103600083015261345e81613422565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006134c1603283612231565b91506134cc82613465565b604082019050919050565b600060208201905081810360008301526134f0816134b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b600061354d82613526565b6135578185613531565b9350613567818560208601612242565b6135708161226c565b840191505092915050565b6000608082019050613590600083018761236d565b61359d602083018661236d565b6135aa6040830185612403565b81810360608301526135bc8184613542565b905095945050505050565b6000815190506135d681612197565b92915050565b6000602082840312156135f2576135f1612161565b5b6000613600848285016135c7565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061363f602083612231565b915061364a82613609565b602082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006136ab601c83612231565b91506136b682613675565b602082019050919050565b600060208201905081810360008301526136da8161369e565b905091905056fea264697066735822122062c32b13fe5d8758075747413d4f7f8ed061a7281299c0fc96eaefb8cfd630fc64736f6c63430008160033