[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EQUIPPER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_LAMBOS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RENTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "cancelRent", "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "isUnderRent", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "numberOf", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mintOne", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "rentInfo", "outputs": [ { "internalType": "address", "name": "originalOwner", "type": "address" }, { "internalType": "uint256", "name": "endsAt", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "rentTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "returnRented", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "_newUri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setRoyalty", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "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": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162005cd138038062005cd183398181016040528101906200003791906200044e565b818181600290816200004a91906200071e565b5080600390816200005c91906200071e565b5050506000600c60006101000a81548160ff0219169083151502179055506200008f6000801b336200014160201b60201c565b620000c17f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200014160201b60201c565b620000f37f3b652633b3026fa70803ad50b58b0ae884cefe3497643f62c67c466f41a6e88d336200014160201b60201c565b620001396040518060400160405280601781526020017f68747470733a2f2f746f646f2e77656e2e6c616d626f2f0000000000000000008152506200023360201b60201c565b505062000805565b6200015382826200024860201b60201c565b6200022f576001600d600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001d4620002b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80600f90816200024491906200071e565b5050565b6000600d600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200032482620002d9565b810181811067ffffffffffffffff82111715620003465762000345620002ea565b5b80604052505050565b60006200035b620002bb565b905062000369828262000319565b919050565b600067ffffffffffffffff8211156200038c576200038b620002ea565b5b6200039782620002d9565b9050602081019050919050565b60005b83811015620003c4578082015181840152602081019050620003a7565b60008484015250505050565b6000620003e7620003e1846200036e565b6200034f565b905082815260208101848484011115620004065762000405620002d4565b5b62000413848285620003a4565b509392505050565b600082601f830112620004335762000432620002cf565b5b815162000445848260208601620003d0565b91505092915050565b60008060408385031215620004685762000467620002c5565b5b600083015167ffffffffffffffff811115620004895762000488620002ca565b5b62000497858286016200041b565b925050602083015167ffffffffffffffff811115620004bb57620004ba620002ca565b5b620004c9858286016200041b565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052657607f821691505b6020821081036200053c576200053b620004de565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000567565b620005b2868362000567565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005ff620005f9620005f384620005ca565b620005d4565b620005ca565b9050919050565b6000819050919050565b6200061b83620005de565b620006336200062a8262000606565b84845462000574565b825550505050565b600090565b6200064a6200063b565b6200065781848462000610565b505050565b5b818110156200067f576200067360008262000640565b6001810190506200065d565b5050565b601f821115620006ce57620006988162000542565b620006a38462000557565b81016020851015620006b3578190505b620006cb620006c28562000557565b8301826200065c565b50505b505050565b600082821c905092915050565b6000620006f360001984600802620006d3565b1980831691505092915050565b60006200070e8383620006e0565b9150826002028217905092915050565b6200072982620004d3565b67ffffffffffffffff811115620007455762000744620002ea565b5b6200075182546200050d565b6200075e82828562000683565b600060209050601f83116001811462000796576000841562000781578287015190505b6200078d858262000700565b865550620007fd565b601f198416620007a68662000542565b60005b82811015620007d057848901518255600182019150602085019450602081019050620007a9565b86831015620007f05784890151620007ec601f891682620006e0565b8355505b6001600288020188555050505b505050505050565b6154bc80620008156000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80638456cb5911610146578063b3916fcf116100c3578063c87b56dd11610087578063c87b56dd14610745578063d539139314610775578063d547741f14610793578063e985e9c5146107af578063f23a6e61146107df578063fa695a971461080f5761025e565b8063b3916fcf1461067a578063b88d4fde146106aa578063b97c9f77146106c6578063bc197c81146106e4578063c5430a9d146107145761025e565b806395d89b411161010a57806395d89b41146105e8578063a217fddf14610606578063a22cb46514610624578063a53bb99014610640578063a55bb43b1461065c5761025e565b80638456cb59146105465780638462151c14610550578063857529f1146105805780638f2fc60b1461059c57806391d14854146105b85761025e565b806336568abe116101df578063475970d3116101a3578063475970d3146104605780634f6ccce71461047c57806355f804b3146104ac5780635c975abb146104c85780636352211e146104e657806370a08231146105165761025e565b806336568abe146103e45780633bd70868146104005780633f4ba83a1461041e57806340c10f191461042857806342842e0e146104445761025e565b806323b872dd1161022657806323b872dd1461031b578063248a9ca3146103375780632a55205a146103675780632f2ff15d146103985780632f745c59146103b45761025e565b806301ffc9a71461026357806306fdde0314610293578063081812fc146102b1578063095ea7b3146102e157806318160ddd146102fd575b600080fd5b61027d600480360381019061027891906135af565b61082b565b60405161028a91906135f7565b60405180910390f35b61029b61083d565b6040516102a891906136a2565b60405180910390f35b6102cb60048036038101906102c691906136fa565b6108cf565b6040516102d89190613768565b60405180910390f35b6102fb60048036038101906102f691906137af565b610915565b005b610305610a2c565b60405161031291906137fe565b60405180910390f35b61033560048036038101906103309190613819565b610a39565b005b610351600480360381019061034c91906138a2565b610a99565b60405161035e91906138de565b60405180910390f35b610381600480360381019061037c91906138f9565b610ab9565b60405161038f929190613939565b60405180910390f35b6103b260048036038101906103ad9190613962565b610ca3565b005b6103ce60048036038101906103c991906137af565b610cc4565b6040516103db91906137fe565b60405180910390f35b6103fe60048036038101906103f99190613962565b610d69565b005b610408610dec565b60405161041591906138de565b60405180910390f35b610426610e10565b005b610442600480360381019061043d91906137af565b610e28565b005b61045e60048036038101906104599190613819565b610e54565b005b61047a600480360381019061047591906136fa565b610e74565b005b610496600480360381019061049191906136fa565b610fa6565b6040516104a391906137fe565b60405180910390f35b6104c660048036038101906104c19190613ad7565b611017565b005b6104d0611031565b6040516104dd91906135f7565b60405180910390f35b61050060048036038101906104fb91906136fa565b611048565b60405161050d9190613768565b60405180910390f35b610530600480360381019061052b9190613b20565b6110f9565b60405161053d91906137fe565b60405180910390f35b61054e6111b0565b005b61056a60048036038101906105659190613b20565b6111c8565b6040516105779190613c0b565b60405180910390f35b61059a600480360381019061059591906136fa565b6112d1565b005b6105b660048036038101906105b19190613c71565b611371565b005b6105d260048036038101906105cd9190613962565b61138d565b6040516105df91906135f7565b60405180910390f35b6105f06113f8565b6040516105fd91906136a2565b60405180910390f35b61060e61148a565b60405161061b91906138de565b60405180910390f35b61063e60048036038101906106399190613cdd565b611491565b005b61065a60048036038101906106559190613d1d565b6114a7565b005b6106646115ce565b60405161067191906137fe565b60405180910390f35b610694600480360381019061068f91906136fa565b6115d4565b6040516106a191906135f7565b60405180910390f35b6106c460048036038101906106bf9190613e11565b611601565b005b6106ce611663565b6040516106db91906138de565b60405180910390f35b6106fe60048036038101906106f99190613f5c565b611687565b60405161070b919061403a565b60405180910390f35b61072e600480360381019061072991906136fa565b61169c565b60405161073c929190613939565b60405180910390f35b61075f600480360381019061075a91906136fa565b61173b565b60405161076c91906136a2565b60405180910390f35b61077d6117a3565b60405161078a91906138de565b60405180910390f35b6107ad60048036038101906107a89190613962565b6117c7565b005b6107c960048036038101906107c49190614055565b6117e8565b6040516107d691906135f7565b60405180910390f35b6107f960048036038101906107f49190614095565b61187c565b604051610806919061403a565b60405180910390f35b61082960048036038101906108249190613b20565b611891565b005b6000610836826118c8565b9050919050565b60606002805461084c9061415b565b80601f01602080910402602001604051908101604052809291908181526020018280546108789061415b565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b60006108da82611942565b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092082611048565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610987906141fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109af61198d565b73ffffffffffffffffffffffffffffffffffffffff1614806109de57506109dd816109d861198d565b6117e8565b5b610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490614290565b60405180910390fd5b610a278383611995565b505050565b6000600a80549050905090565b610a4a610a4461198d565b82611a4e565b610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090614322565b60405180910390fd5b610a94838383611ae3565b505050565b6000600d6000838152602001908152602001600020600101549050919050565b6000806000600160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610c4e5760006040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610c58611af3565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610c849190614371565b610c8e91906143e2565b90508160000151819350935050509250929050565b610cac82610a99565b610cb581611afd565b610cbf8383611b11565b505050565b6000610ccf836110f9565b8210610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790614485565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d7161198d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590614517565b60405180910390fd5b610de88282611bf2565b5050565b7fb379d9535b5ae7800ada8f473bd7d55f753e8023b1ed709eab5f121d2b9807be81565b6000801b610e1d81611afd565b610e25611cd4565b50565b60005b81811015610e4f57610e3c83611891565b8080610e4790614537565b915050610e2b565b505050565b610e6f83838360405180602001604052806000815250611601565b505050565b7f3b652633b3026fa70803ad50b58b0ae884cefe3497643f62c67c466f41a6e88d610e9e81611afd565b60006011600084815260200190815260200160002090508060000160009054906101000a900460ff16610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd906145cb565b60405180910390fd5b8060010154421015610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490614637565b60405180910390fd5b60008160000160006101000a81548160ff021916908315150217905550610fa1610f7684611048565b8260000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611ae3565b505050565b6000610fb0610a2c565b8210610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe8906146c9565b60405180910390fd5b600a8281548110611005576110046146e9565b5b90600052602060002001549050919050565b6000801b61102481611afd565b61102d82611d37565b5050565b6000600c60009054906101000a900460ff16905090565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790614764565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611169576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611160906147f6565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000801b6111bd81611afd565b6111c5611d4a565b50565b606060006111d5836110f9565b90506000810361123157600067ffffffffffffffff8111156111fa576111f96139ac565b5b6040519080825280602002602001820160405280156112285781602001602082028036833780820191505090505b509150506112cc565b60008167ffffffffffffffff81111561124d5761124c6139ac565b5b60405190808252806020026020018201604052801561127b5781602001602082028036833780820191505090505b50905060005b828110156112c5576112938582610cc4565b8282815181106112a6576112a56146e9565b5b60200260200101818152505080806112bd90614537565b915050611281565b8193505050505b919050565b7f3b652633b3026fa70803ad50b58b0ae884cefe3497643f62c67c466f41a6e88d6112fb81611afd565b60006011600084815260200190815260200160002090508060000160009054906101000a900460ff16611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90614862565b60405180910390fd5b428160010181905550505050565b6000801b61137e81611afd565b6113888383611dad565b505050565b6000600d600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600380546114079061415b565b80601f01602080910402602001604051908101604052809291908181526020018280546114339061415b565b80156114805780601f1061145557610100808354040283529160200191611480565b820191906000526020600020905b81548152906001019060200180831161146357829003601f168201915b5050505050905090565b6000801b81565b6114a361149c61198d565b8383611f41565b5050565b7f3b652633b3026fa70803ad50b58b0ae884cefe3497643f62c67c466f41a6e88d6114d181611afd565b60006011600086815260200190815260200160002090508060000160009054906101000a900460ff161561153a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611531906148ce565b60405180910390fd5b600061154586611048565b9050808260000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550834261159691906148ee565b82600101819055506115a9818688611ae3565b60018260000160006101000a81548160ff021916908315150217905550505050505050565b61271081565b60006011600083815260200190815260200160002060000160009054906101000a900460ff169050919050565b61161261160c61198d565b83611a4e565b611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890614322565b60405180910390fd5b61165d848484846120ad565b50505050565b7f3b652633b3026fa70803ad50b58b0ae884cefe3497643f62c67c466f41a6e88d81565b600063bc197c8160e01b905095945050505050565b60008060006011600085815260200190815260200160002090508060000160009054906101000a900460ff16611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe9061496e565b60405180910390fd5b8060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101549250925050915091565b606061174682611942565b6000611750612109565b90506000815111611770576040518060200160405280600081525061179b565b8061177a8461219b565b60405160200161178b9291906149ca565b6040516020818303038152906040525b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6117d082610a99565b6117d981611afd565b6117e38383611bf2565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600063f23a6e6160e01b905095945050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66118bb81611afd565b6118c4826122fb565b5050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061193b575061193a82612321565b5b9050919050565b61194b8161239b565b61198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190614764565b60405180910390fd5b50565b600033905090565b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611a0883611048565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611a5a83611048565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a9c5750611a9b81856117e8565b5b80611ada57508373ffffffffffffffffffffffffffffffffffffffff16611ac2846108cf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b611aee838383612407565b505050565b6000612710905090565b611b0e81611b0961198d565b61266d565b50565b611b1b828261138d565b611bee576001600d600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611b9361198d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611bfc828261138d565b15611cd0576000600d600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c7561198d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b611cdc61270a565b6000600c60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611d2061198d565b604051611d2d9190613768565b60405180910390a1565b80600f9081611d469190614b9a565b5050565b611d52612753565b6001600c60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d9661198d565b604051611da39190613768565b60405180910390a1565b611db5611af3565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90614cde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7990614d4a565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff168152506000808201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690614db6565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516120a091906135f7565b60405180910390a3505050565b6120b8848484611ae3565b6120c48484848461279d565b612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fa90614e48565b60405180910390fd5b50505050565b6060600f80546121189061415b565b80601f01602080910402602001604051908101604052809291908181526020018280546121449061415b565b80156121915780601f1061216657610100808354040283529160200191612191565b820191906000526020600020905b81548152906001019060200180831161217457829003601f168201915b5050505050905090565b6060600082036121e2576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506122f6565b600082905060005b600082146122145780806121fd90614537565b915050600a8261220d91906143e2565b91506121ea565b60008167ffffffffffffffff8111156122305761222f6139ac565b5b6040519080825280601f01601f1916602001820160405280156122625781602001600182028036833780820191505090505b5090505b600085146122ef5760018261227b9190614e68565b9150600a8561228a9190614e9c565b603061229691906148ee565b60f81b8183815181106122ac576122ab6146e9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856122e891906143e2565b9450612266565b8093505050505b919050565b6000612307600e612924565b9050612313600e612932565b61231d8282612948565b5050565b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612394575061239382612966565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8273ffffffffffffffffffffffffffffffffffffffff1661242782611048565b73ffffffffffffffffffffffffffffffffffffffff161461247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247490614f3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e390614fd1565b60405180910390fd5b6124f7838383612978565b612502600082611995565b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125529190614e68565b925050819055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125a991906148ee565b92505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126688383836129f4565b505050565b612677828261138d565b6127065761269c8173ffffffffffffffffffffffffffffffffffffffff1660146129f9565b6126aa8360001c60206129f9565b6040516020016126bb929190615089565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fd91906136a2565b60405180910390fd5b5050565b612712611031565b612751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127489061510f565b60405180910390fd5b565b61275b611031565b1561279b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127929061517b565b60405180910390fd5b565b60006127be8473ffffffffffffffffffffffffffffffffffffffff16612c35565b15612917578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026127e761198d565b8786866040518563ffffffff1660e01b815260040161280994939291906151f0565b6020604051808303816000875af192505050801561284557506040513d601f19601f820116820180604052508101906128429190615251565b60015b6128c7573d8060008114612875576040519150601f19603f3d011682016040523d82523d6000602084013e61287a565b606091505b5060008151036128bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b690614e48565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061291c565b600190505b949350505050565b600081600001549050919050565b6001816000016000828254019250508190555050565b612962828260405180602001604052806000815250612c58565b5050565b600061297182612cb3565b9050919050565b612980612753565b6011600082815260200190815260200160002060000160009054906101000a900460ff16156129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129db906148ce565b60405180910390fd5b6129ef838383612d2d565b505050565b505050565b606060006002836002612a0c9190614371565b612a1691906148ee565b67ffffffffffffffff811115612a2f57612a2e6139ac565b5b6040519080825280601f01601f191660200182016040528015612a615781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612a9957612a986146e9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612afd57612afc6146e9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612b3d9190614371565b612b4791906148ee565b90505b6001811115612be7577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612b8957612b886146e9565b5b1a60f81b828281518110612ba057612b9f6146e9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612be09061527e565b9050612b4a565b5060008414612c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c22906152f3565b60405180910390fd5b8091505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b612c628383612e3f565b612c6f600084848461279d565b612cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca590614e48565b60405180910390fd5b505050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d265750612d2582612e99565b5b9050919050565b612d38838383612f7b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d7a57612d7581612f80565b612db9565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612db857612db78382612fc9565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612dfb57612df681613136565b612e3a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612e3957612e388282613207565b5b5b505050565b612e498282613286565b612710612e54610a2c565b1115612e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8c9061535f565b60405180910390fd5b5050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612f6457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612f745750612f738261345f565b5b9050919050565b505050565b600a80549050600b600083815260200190815260200160002081905550600a81908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612fd6846110f9565b612fe09190614e68565b90506000600960008481526020019081526020016000205490508181146130c5576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816009600083815260200190815260200160002081905550505b6009600084815260200190815260200160002060009055600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600a8054905061314a9190614e68565b90506000600b60008481526020019081526020016000205490506000600a838154811061317a576131796146e9565b5b9060005260206000200154905080600a838154811061319c5761319b6146e9565b5b906000526020600020018190555081600b600083815260200190815260200160002081905550600b600085815260200190815260200160002060009055600a8054806131eb576131ea61537f565b5b6001900381819060005260206000200160009055905550505050565b6000613212836110f9565b905081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806009600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ec906153fa565b60405180910390fd5b6132fe8161239b565b1561333e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333590615466565b60405180910390fd5b61334a60008383612978565b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461339a91906148ee565b92505081905550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461345b600083836129f4565b5050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806134d257506134d1826134d9565b5b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61358c81613557565b811461359757600080fd5b50565b6000813590506135a981613583565b92915050565b6000602082840312156135c5576135c461354d565b5b60006135d38482850161359a565b91505092915050565b60008115159050919050565b6135f1816135dc565b82525050565b600060208201905061360c60008301846135e8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561364c578082015181840152602081019050613631565b60008484015250505050565b6000601f19601f8301169050919050565b600061367482613612565b61367e818561361d565b935061368e81856020860161362e565b61369781613658565b840191505092915050565b600060208201905081810360008301526136bc8184613669565b905092915050565b6000819050919050565b6136d7816136c4565b81146136e257600080fd5b50565b6000813590506136f4816136ce565b92915050565b6000602082840312156137105761370f61354d565b5b600061371e848285016136e5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061375282613727565b9050919050565b61376281613747565b82525050565b600060208201905061377d6000830184613759565b92915050565b61378c81613747565b811461379757600080fd5b50565b6000813590506137a981613783565b92915050565b600080604083850312156137c6576137c561354d565b5b60006137d48582860161379a565b92505060206137e5858286016136e5565b9150509250929050565b6137f8816136c4565b82525050565b600060208201905061381360008301846137ef565b92915050565b6000806000606084860312156138325761383161354d565b5b60006138408682870161379a565b93505060206138518682870161379a565b9250506040613862868287016136e5565b9150509250925092565b6000819050919050565b61387f8161386c565b811461388a57600080fd5b50565b60008135905061389c81613876565b92915050565b6000602082840312156138b8576138b761354d565b5b60006138c68482850161388d565b91505092915050565b6138d88161386c565b82525050565b60006020820190506138f360008301846138cf565b92915050565b600080604083850312156139105761390f61354d565b5b600061391e858286016136e5565b925050602061392f858286016136e5565b9150509250929050565b600060408201905061394e6000830185613759565b61395b60208301846137ef565b9392505050565b600080604083850312156139795761397861354d565b5b60006139878582860161388d565b92505060206139988582860161379a565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139e482613658565b810181811067ffffffffffffffff82111715613a0357613a026139ac565b5b80604052505050565b6000613a16613543565b9050613a2282826139db565b919050565b600067ffffffffffffffff821115613a4257613a416139ac565b5b613a4b82613658565b9050602081019050919050565b82818337600083830152505050565b6000613a7a613a7584613a27565b613a0c565b905082815260208101848484011115613a9657613a956139a7565b5b613aa1848285613a58565b509392505050565b600082601f830112613abe57613abd6139a2565b5b8135613ace848260208601613a67565b91505092915050565b600060208284031215613aed57613aec61354d565b5b600082013567ffffffffffffffff811115613b0b57613b0a613552565b5b613b1784828501613aa9565b91505092915050565b600060208284031215613b3657613b3561354d565b5b6000613b448482850161379a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b82816136c4565b82525050565b6000613b948383613b79565b60208301905092915050565b6000602082019050919050565b6000613bb882613b4d565b613bc28185613b58565b9350613bcd83613b69565b8060005b83811015613bfe578151613be58882613b88565b9750613bf083613ba0565b925050600181019050613bd1565b5085935050505092915050565b60006020820190508181036000830152613c258184613bad565b905092915050565b60006bffffffffffffffffffffffff82169050919050565b613c4e81613c2d565b8114613c5957600080fd5b50565b600081359050613c6b81613c45565b92915050565b60008060408385031215613c8857613c8761354d565b5b6000613c968582860161379a565b9250506020613ca785828601613c5c565b9150509250929050565b613cba816135dc565b8114613cc557600080fd5b50565b600081359050613cd781613cb1565b92915050565b60008060408385031215613cf457613cf361354d565b5b6000613d028582860161379a565b9250506020613d1385828601613cc8565b9150509250929050565b600080600060608486031215613d3657613d3561354d565b5b6000613d44868287016136e5565b9350506020613d558682870161379a565b9250506040613d66868287016136e5565b9150509250925092565b600067ffffffffffffffff821115613d8b57613d8a6139ac565b5b613d9482613658565b9050602081019050919050565b6000613db4613daf84613d70565b613a0c565b905082815260208101848484011115613dd057613dcf6139a7565b5b613ddb848285613a58565b509392505050565b600082601f830112613df857613df76139a2565b5b8135613e08848260208601613da1565b91505092915050565b60008060008060808587031215613e2b57613e2a61354d565b5b6000613e398782880161379a565b9450506020613e4a8782880161379a565b9350506040613e5b878288016136e5565b925050606085013567ffffffffffffffff811115613e7c57613e7b613552565b5b613e8887828801613de3565b91505092959194509250565b600067ffffffffffffffff821115613eaf57613eae6139ac565b5b602082029050602081019050919050565b600080fd5b6000613ed8613ed384613e94565b613a0c565b90508083825260208201905060208402830185811115613efb57613efa613ec0565b5b835b81811015613f245780613f1088826136e5565b845260208401935050602081019050613efd565b5050509392505050565b600082601f830112613f4357613f426139a2565b5b8135613f53848260208601613ec5565b91505092915050565b600080600080600060a08688031215613f7857613f7761354d565b5b6000613f868882890161379a565b9550506020613f978882890161379a565b945050604086013567ffffffffffffffff811115613fb857613fb7613552565b5b613fc488828901613f2e565b935050606086013567ffffffffffffffff811115613fe557613fe4613552565b5b613ff188828901613f2e565b925050608086013567ffffffffffffffff81111561401257614011613552565b5b61401e88828901613de3565b9150509295509295909350565b61403481613557565b82525050565b600060208201905061404f600083018461402b565b92915050565b6000806040838503121561406c5761406b61354d565b5b600061407a8582860161379a565b925050602061408b8582860161379a565b9150509250929050565b600080600080600060a086880312156140b1576140b061354d565b5b60006140bf8882890161379a565b95505060206140d08882890161379a565b94505060406140e1888289016136e5565b93505060606140f2888289016136e5565b925050608086013567ffffffffffffffff81111561411357614112613552565b5b61411f88828901613de3565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061417357607f821691505b6020821081036141865761418561412c565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e860218361361d565b91506141f38261418c565b604082019050919050565b60006020820190508181036000830152614217816141db565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b600061427a603e8361361d565b91506142858261421e565b604082019050919050565b600060208201905081810360008301526142a98161426d565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b600061430c602e8361361d565b9150614317826142b0565b604082019050919050565b6000602082019050818103600083015261433b816142ff565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061437c826136c4565b9150614387836136c4565b9250828202614395816136c4565b915082820484148315176143ac576143ab614342565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143ed826136c4565b91506143f8836136c4565b925082614408576144076143b3565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b600061446f602b8361361d565b915061447a82614413565b604082019050919050565b6000602082019050818103600083015261449e81614462565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614501602f8361361d565b915061450c826144a5565b604082019050919050565b60006020820190508181036000830152614530816144f4565b9050919050565b6000614542826136c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361457457614573614342565b5b600182019050919050565b7f52656e74206e6f7420696e2070726f67726573732e0000000000000000000000600082015250565b60006145b560158361361d565b91506145c08261457f565b602082019050919050565b600060208201905081810360008301526145e4816145a8565b9050919050565b7f52656e7420706572696f64206e6f74206f7665722e0000000000000000000000600082015250565b600061462160158361361d565b915061462c826145eb565b602082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006146b3602c8361361d565b91506146be82614657565b604082019050919050565b600060208201905081810360008301526146e2816146a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061474e60188361361d565b915061475982614718565b602082019050919050565b6000602082019050818103600083015261477d81614741565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006147e060298361361d565b91506147eb82614784565b604082019050919050565b6000602082019050818103600083015261480f816147d3565b9050919050565b7f4e6f7420756e6465722072656e742e0000000000000000000000000000000000600082015250565b600061484c600f8361361d565b915061485782614816565b602082019050919050565b6000602082019050818103600083015261487b8161483f565b9050919050565b7f43757272656e746c792072656e7465642e000000000000000000000000000000600082015250565b60006148b860118361361d565b91506148c382614882565b602082019050919050565b600060208201905081810360008301526148e7816148ab565b9050919050565b60006148f9826136c4565b9150614904836136c4565b925082820190508082111561491c5761491b614342565b5b92915050565b7f4e6f742072656e7465642063757272656e746c792e0000000000000000000000600082015250565b600061495860158361361d565b915061496382614922565b602082019050919050565b600060208201905081810360008301526149878161494b565b9050919050565b600081905092915050565b60006149a482613612565b6149ae818561498e565b93506149be81856020860161362e565b80840191505092915050565b60006149d68285614999565b91506149e28284614999565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614a507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a13565b614a5a8683614a13565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614a97614a92614a8d846136c4565b614a72565b6136c4565b9050919050565b6000819050919050565b614ab183614a7c565b614ac5614abd82614a9e565b848454614a20565b825550505050565b600090565b614ada614acd565b614ae5818484614aa8565b505050565b5b81811015614b0957614afe600082614ad2565b600181019050614aeb565b5050565b601f821115614b4e57614b1f816149ee565b614b2884614a03565b81016020851015614b37578190505b614b4b614b4385614a03565b830182614aea565b50505b505050565b600082821c905092915050565b6000614b7160001984600802614b53565b1980831691505092915050565b6000614b8a8383614b60565b9150826002028217905092915050565b614ba382613612565b67ffffffffffffffff811115614bbc57614bbb6139ac565b5b614bc6825461415b565b614bd1828285614b0d565b600060209050601f831160018114614c045760008415614bf2578287015190505b614bfc8582614b7e565b865550614c64565b601f198416614c12866149ee565b60005b82811015614c3a57848901518255600182019150602085019450602081019050614c15565b86831015614c575784890151614c53601f891682614b60565b8355505b6001600288020188555050505b505050505050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000614cc8602a8361361d565b9150614cd382614c6c565b604082019050919050565b60006020820190508181036000830152614cf781614cbb565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000614d3460198361361d565b9150614d3f82614cfe565b602082019050919050565b60006020820190508181036000830152614d6381614d27565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614da060198361361d565b9150614dab82614d6a565b602082019050919050565b60006020820190508181036000830152614dcf81614d93565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614e3260328361361d565b9150614e3d82614dd6565b604082019050919050565b60006020820190508181036000830152614e6181614e25565b9050919050565b6000614e73826136c4565b9150614e7e836136c4565b9250828203905081811115614e9657614e95614342565b5b92915050565b6000614ea7826136c4565b9150614eb2836136c4565b925082614ec257614ec16143b3565b5b828206905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000614f2960258361361d565b9150614f3482614ecd565b604082019050919050565b60006020820190508181036000830152614f5881614f1c565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614fbb60248361361d565b9150614fc682614f5f565b604082019050919050565b60006020820190508181036000830152614fea81614fae565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061502760178361498e565b915061503282614ff1565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061507360118361498e565b915061507e8261503d565b601182019050919050565b60006150948261501a565b91506150a08285614999565b91506150ab82615066565b91506150b78284614999565b91508190509392505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006150f960148361361d565b9150615104826150c3565b602082019050919050565b60006020820190508181036000830152615128816150ec565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061516560108361361d565b91506151708261512f565b602082019050919050565b6000602082019050818103600083015261519481615158565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006151c28261519b565b6151cc81856151a6565b93506151dc81856020860161362e565b6151e581613658565b840191505092915050565b60006080820190506152056000830187613759565b6152126020830186613759565b61521f60408301856137ef565b818103606083015261523181846151b7565b905095945050505050565b60008151905061524b81613583565b92915050565b6000602082840312156152675761526661354d565b5b60006152758482850161523c565b91505092915050565b6000615289826136c4565b91506000820361529c5761529b614342565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006152dd60208361361d565b91506152e8826152a7565b602082019050919050565b6000602082019050818103600083015261530c816152d0565b9050919050565b7f4d617820737570706c7920726561636865642e00000000000000000000000000600082015250565b600061534960138361361d565b915061535482615313565b602082019050919050565b600060208201905081810360008301526153788161533c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006153e460208361361d565b91506153ef826153ae565b602082019050919050565b60006020820190508181036000830152615413816153d7565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615450601c8361361d565b915061545b8261541a565b602082019050919050565b6000602082019050818103600083015261547f81615443565b905091905056fea264697066735822122003811144d4079ca6afdefc8f4fd5ded4872a6accc3421f3572f0645ee0484e6464736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b4176616c616e6368652048696c6c73204d7573636c6520436172730000000000000000000000000000000000000000000000000000000000000000000000000441484d4300000000000000000000000000000000000000000000000000000000