[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "address", "name": "_controller", "type": "address" }, { "internalType": "uint256", "name": "_lockDuration", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "_newUri", "type": "string" } ], "name": "SetBaseUriChanged", "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": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "_buildDigest", "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "controller", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftUnlockTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "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": "newURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newController", "type": "address" } ], "name": "setController", "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": [], "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" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040523480156200001157600080fd5b5060405162004bad38038062004bad833981810160405281019062000037919062000708565b8484620000496200019a60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000be5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000b59190620007fe565b60405180910390fd5b620000cf81620001a260201b60201c565b5060008060146101000a81548160ff0219169083151502179055508160019081620000fb919062000a5c565b5080600290816200010d919062000a5c565b50505060004690508060a081815250506200012e816200026660201b60201c565b608081815250505081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e819055506200018f836200031260201b60201c565b505050505062000c42565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620002996200037060201b60201c565b805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208430604051602001620002f595949392919062000b6f565b604051602081830303815290604052805190602001209050919050565b620003226200040a60201b60201c565b7f52a952209e64d8512168c7e0c58e7ad3fb76bb5c543c46878acb89d2d9c5326b8160405162000353919062000c1e565b60405180910390a180600c90816200036c919062000a5c565b5050565b606060018054620003819062000855565b80601f0160208091040260200160405190810160405280929190818152602001828054620003af9062000855565b8015620004005780601f10620003d45761010080835404028352916020019162000400565b820191906000526020600020905b815481529060010190602001808311620003e257829003601f168201915b5050505050905090565b6200041a6200019a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000440620004ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004aa576200046c6200019a60201b60201c565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620004a19190620007fe565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200053e82620004f3565b810181811067ffffffffffffffff8211171562000560576200055f62000504565b5b80604052505050565b600062000575620004d5565b905062000583828262000533565b919050565b600067ffffffffffffffff821115620005a657620005a562000504565b5b620005b182620004f3565b9050602081019050919050565b60005b83811015620005de578082015181840152602081019050620005c1565b60008484015250505050565b600062000601620005fb8462000588565b62000569565b90508281526020810184848401111562000620576200061f620004ee565b5b6200062d848285620005be565b509392505050565b600082601f8301126200064d576200064c620004e9565b5b81516200065f848260208601620005ea565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006958262000668565b9050919050565b620006a78162000688565b8114620006b357600080fd5b50565b600081519050620006c7816200069c565b92915050565b6000819050919050565b620006e281620006cd565b8114620006ee57600080fd5b50565b6000815190506200070281620006d7565b92915050565b600080600080600060a08688031215620007275762000726620004df565b5b600086015167ffffffffffffffff811115620007485762000747620004e4565b5b620007568882890162000635565b955050602086015167ffffffffffffffff8111156200077a5762000779620004e4565b5b620007888882890162000635565b945050604086015167ffffffffffffffff811115620007ac57620007ab620004e4565b5b620007ba8882890162000635565b9350506060620007cd88828901620006b6565b9250506080620007e088828901620006f1565b9150509295509295909350565b620007f88162000688565b82525050565b6000602082019050620008156000830184620007ed565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086e57607f821691505b60208210810362000884576200088362000826565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008af565b620008fa8683620008af565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200093d620009376200093184620006cd565b62000912565b620006cd565b9050919050565b6000819050919050565b62000959836200091c565b62000971620009688262000944565b848454620008bc565b825550505050565b600090565b6200098862000979565b620009958184846200094e565b505050565b5b81811015620009bd57620009b16000826200097e565b6001810190506200099b565b5050565b601f82111562000a0c57620009d6816200088a565b620009e1846200089f565b81016020851015620009f1578190505b62000a0962000a00856200089f565b8301826200099a565b50505b505050565b600082821c905092915050565b600062000a316000198460080262000a11565b1980831691505092915050565b600062000a4c838362000a1e565b9150826002028217905092915050565b62000a67826200081b565b67ffffffffffffffff81111562000a835762000a8262000504565b5b62000a8f825462000855565b62000a9c828285620009c1565b600060209050601f83116001811462000ad4576000841562000abf578287015190505b62000acb858262000a3e565b86555062000b3b565b601f19841662000ae4866200088a565b60005b8281101562000b0e5784890151825560018201915060208501945060208101905062000ae7565b8683101562000b2e578489015162000b2a601f89168262000a1e565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b62000b588162000b43565b82525050565b62000b6981620006cd565b82525050565b600060a08201905062000b86600083018862000b4d565b62000b95602083018762000b4d565b62000ba4604083018662000b4d565b62000bb3606083018562000b5e565b62000bc26080830184620007ed565b9695505050505050565b600082825260208201905092915050565b600062000bea826200081b565b62000bf6818562000bcc565b935062000c08818560208601620005be565b62000c1381620004f3565b840191505092915050565b6000602082019050818103600083015262000c3a818462000bdd565b905092915050565b60805160a051613f4562000c6860003960006109c8015260006109fd0152613f456000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80635c975abb1161011a57806392eefe9b116100ad578063b88d4fde1161007c578063b88d4fde146105c5578063c87b56dd146105e1578063e985e9c514610611578063f2fde38b14610641578063f77c47911461065d57610206565b806392eefe9b1461055357806394d008ef1461056f57806395d89b411461058b578063a22cb465146105a957610206565b8063715018a6116100e9578063715018a6146104f15780637ecebe00146104fb5780638456cb591461052b5780638da5cb5b1461053557610206565b80635c975abb146104555780636352211e146104735780636c0360eb146104a357806370a08231146104c157610206565b80632f745c591161019d57806342842e0e1161016c57806342842e0e146103b557806342966c68146103d157806348613c28146103ed5780634f6ccce71461040957806355f804b31461043957610206565b80632f745c591461033f57806330adf81f1461036f5780633644e5151461038d5780633f4ba83a146103ab57610206565b8063095ea7b3116101d9578063095ea7b3146102b95780630c0b85f5146102d557806318160ddd1461030557806323b872dd1461032357610206565b806301ffc9a71461020b57806306fdde031461023b57806307c6e64e14610259578063081812fc14610289575b600080fd5b61022560048036038101906102209190612cae565b61067b565b6040516102329190612cf6565b60405180910390f35b61024361069d565b6040516102509190612da1565b60405180910390f35b610273600480360381019061026e9190612e57565b61072f565b6040516102809190612ed7565b60405180910390f35b6102a3600480360381019061029e9190612ef2565b61079a565b6040516102b09190612f2e565b60405180910390f35b6102d360048036038101906102ce9190612f49565b6107b6565b005b6102ef60048036038101906102ea9190612ef2565b6107cc565b6040516102fc9190612f98565b60405180910390f35b61030d6107e4565b60405161031a9190612f98565b60405180910390f35b61033d60048036038101906103389190612fb3565b6107f1565b005b61035960048036038101906103549190612f49565b6108f3565b6040516103669190612f98565b60405180910390f35b61037761099c565b6040516103849190612ed7565b60405180910390f35b6103956109c0565b6040516103a29190612ed7565b60405180910390f35b6103b3610a23565b005b6103cf60048036038101906103ca9190612fb3565b610a35565b005b6103eb60048036038101906103e69190612ef2565b610a55565b005b6104076004803603810190610402919061306b565b610aba565b005b610423600480360381019061041e9190612ef2565b610c37565b6040516104309190612f98565b60405180910390f35b610453600480360381019061044e919061322d565b610cad565b005b61045d610cff565b60405161046a9190612cf6565b60405180910390f35b61048d60048036038101906104889190612ef2565b610d15565b60405161049a9190612f2e565b60405180910390f35b6104ab610d27565b6040516104b89190612da1565b60405180910390f35b6104db60048036038101906104d69190613276565b610db5565b6040516104e89190612f98565b60405180910390f35b6104f9610e6f565b005b61051560048036038101906105109190613276565b610e83565b6040516105229190612f98565b60405180910390f35b610533610ecc565b005b61053d610ede565b60405161054a9190612f2e565b60405180910390f35b61056d60048036038101906105689190613276565b610f07565b005b61058960048036038101906105849190613344565b610f53565b005b610593611063565b6040516105a09190612da1565b60405180910390f35b6105c360048036038101906105be91906133df565b6110f5565b005b6105df60048036038101906105da919061341f565b61110b565b005b6105fb60048036038101906105f69190612ef2565b611128565b6040516106089190612da1565b60405180910390f35b61062b600480360381019061062691906134a2565b611191565b6040516106389190612cf6565b60405180910390f35b61065b60048036038101906106569190613276565b611225565b005b6106656112ab565b6040516106729190612f2e565b60405180910390f35b6000610686826112d1565b8061069657506106958261134b565b5b9050919050565b6060600180546106ac90613511565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890613511565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b5050505050905090565b600061079061073c6109c0565b7fdaab21af31ece73a508939fedd476a5ee5129a5ed4bb091f3236ffb45394df6287878787604051602001610775959493929190613542565b604051602081830303815290604052805190602001206113c4565b9050949350505050565b60006107a582611405565b506107af8261148d565b9050919050565b6107c882826107c36114ca565b6114d2565b5050565b600f6020528060005260406000206000915090505481565b6000600a80549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108635760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161085a9190612f2e565b60405180910390fd5b600061087783836108726114ca565b6114e4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108ed578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108e493929190613595565b60405180910390fd5b50505050565b60006108fe83610db5565b82106109435782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161093a9291906135cc565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b7fdaab21af31ece73a508939fedd476a5ee5129a5ed4bb091f3236ffb45394df6281565b6000804690507f000000000000000000000000000000000000000000000000000000000000000081146109fb576109f681611597565b610a1d565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b610a2b611639565b610a336116c0565b565b610a508383836040518060200160405280600081525061110b565b505050565b610a6f610a6182610d15565b610a696114ca565b83611722565b610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa590613667565b60405180910390fd5b610ab7816117e3565b50565b42841015610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af4906136f9565b60405180910390fd5b6000610b4a8787600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861072f565b90506000610b5a82868686611869565b505090508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc39061378b565b60405180910390fd5b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610c1c906137da565b9190505550610c2d8888600161195d565b5050505050505050565b6000610c416107e4565b8210610c87576000826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610c7e9291906135cc565b60405180910390fd5b600a8281548110610c9b57610c9a613822565b5b90600052602060002001549050919050565b610cb5611639565b7f52a952209e64d8512168c7e0c58e7ad3fb76bb5c543c46878acb89d2d9c5326b81604051610ce49190612da1565b60405180910390a180600c9081610cfb91906139fd565b5050565b60008060149054906101000a900460ff16905090565b6000610d2082611405565b9050919050565b600c8054610d3490613511565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6090613511565b8015610dad5780601f10610d8257610100808354040283529160200191610dad565b820191906000526020600020905b815481529060010190602001808311610d9057829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e285760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610e1f9190612f2e565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e77611639565b610e816000611acc565b565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ed4611639565b610edc611b90565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f0f611639565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f946114ca565b73ffffffffffffffffffffffffffffffffffffffff161480610fef5750610fb9610ede565b73ffffffffffffffffffffffffffffffffffffffff16610fd76114ca565b73ffffffffffffffffffffffffffffffffffffffff16145b61102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590613b41565b60405180910390fd5b611039838383611bf3565b600e54426110479190613b61565b600f600084815260200190815260200160002081905550505050565b60606002805461107290613511565b80601f016020809104026020016040519081016040528092919081815260200182805461109e90613511565b80156110eb5780601f106110c0576101008083540402835291602001916110eb565b820191906000526020600020905b8154815290600101906020018083116110ce57829003601f168201915b5050505050905090565b6111076111006114ca565b838361195d565b5050565b6111168484846107f1565b61112284848484611c0f565b50505050565b606061113382611405565b50600061113e611dc6565b9050600081511161115e5760405180602001604052806000815250611189565b8061116884611e58565b604051602001611179929190613bd1565b6040516020818303038152906040525b915050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61122d611639565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361129f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016112969190612f2e565b60405180910390fd5b6112a881611acc565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061134457506113438261134b565b5b9050919050565b60007eeb673d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113bd57506113bc82611f26565b5b9050919050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008061141183612008565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361148457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161147b9190612f98565b60405180910390fd5b80915050919050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6114df8383836001612045565b505050565b60006114ee610cff565b1561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590613c67565b60405180910390fd5b42600f60008581526020019081526020016000205410611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a90613cd3565b60405180910390fd5b61158e84848461220a565b90509392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115c261069d565b805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120843060405160200161161c959493929190613cf3565b604051602081830303815290604052805190602001209050919050565b6116416114ca565b73ffffffffffffffffffffffffffffffffffffffff1661165f610ede565b73ffffffffffffffffffffffffffffffffffffffff16146116be576116826114ca565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116b59190612f2e565b60405180910390fd5b565b6116c8612327565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61170b6114ca565b6040516117189190612f2e565b60405180910390a1565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117da57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061179b575061179a8484611191565b5b806117d957508273ffffffffffffffffffffffffffffffffffffffff166117c18361148d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60006117f260008360006114e4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186557816040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161185c9190612f98565b60405180910390fd5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c11156118a9576000600385925092509250611953565b6000600188888888604051600081526020016040526040516118ce9493929190613d55565b6020604051602081039080840390855afa1580156118f0573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361194457600060016000801b93509350935050611953565b8060008060001b935093509350505b9450945094915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119ce57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016119c59190612f2e565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611abf9190612cf6565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611b98612367565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611bdc6114ca565b604051611be99190612f2e565b60405180910390a1565b611bfd83836123a8565b611c0a6000848484611c0f565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611dc0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c536114ca565b8685856040518563ffffffff1660e01b8152600401611c759493929190613def565b6020604051808303816000875af1925050508015611cb157506040513d601f19601f82011682018060405250810190611cae9190613e50565b60015b611d35573d8060008114611ce1576040519150601f19603f3d011682016040523d82523d6000602084013e611ce6565b606091505b506000815103611d2d57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d249190612f2e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611dbe57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611db59190612f2e565b60405180910390fd5b505b50505050565b6060600c8054611dd590613511565b80601f0160208091040260200160405190810160405280929190818152602001828054611e0190613511565b8015611e4e5780601f10611e2357610100808354040283529160200191611e4e565b820191906000526020600020905b815481529060010190602001808311611e3157829003601f168201915b5050505050905090565b606060006001611e67846124a1565b01905060008167ffffffffffffffff811115611e8657611e85613102565b5b6040519080825280601f01601f191660200182016040528015611eb85781602001600182028036833780820191505090505b509050600082602001820190505b600115611f1b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0f57611f0e613e7d565b5b04945060008503611ec6575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ff157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120015750612000826125f4565b5b9050919050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061207e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121b257600061208e84611405565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120f957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561210c575061210a8184611191565b155b1561214e57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016121459190612f2e565b60405180910390fd5b81156121b057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836005600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008061221885858561265e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361225c5761225784612878565b61229b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461229a5761229981856128c1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036122dd576122d884612a22565b61231c565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461231b5761231a8585612af3565b5b5b809150509392505050565b61232f610cff565b612365576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61236f610cff565b156123a6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361241a5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016124119190612f2e565b60405180910390fd5b6000612428838360006114e4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461249c5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016124939190612f2e565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124ff577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124f5576124f4613e7d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061253c576d04ee2d6d415b85acef8100000000838161253257612531613e7d565b5b0492506020810190505b662386f26fc10000831061256b57662386f26fc10000838161256157612560613e7d565b5b0492506010810190505b6305f5e1008310612594576305f5e100838161258a57612589613e7d565b5b0492506008810190505b61271083106125b95761271083816125af576125ae613e7d565b5b0492506004810190505b606483106125dc57606483816125d2576125d1613e7d565b5b0492506002810190505b600a83106125eb576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061266a84612008565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146126ac576126ab818486612b7e565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461273d576126ee600085600080612045565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146127c0576001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846003600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600a80549050600b600083815260200190815260200160002081905550600a81908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006128cc83610db5565b90506000600960008481526020019081526020016000205490508181146129b1576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816009600083815260200190815260200160002081905550505b6009600084815260200190815260200160002060009055600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600a80549050612a369190613eac565b90506000600b60008481526020019081526020016000205490506000600a8381548110612a6657612a65613822565b5b9060005260206000200154905080600a8381548110612a8857612a87613822565b5b906000526020600020018190555081600b600083815260200190815260200160002081905550600b600085815260200190815260200160002060009055600a805480612ad757612ad6613ee0565b5b6001900381819060005260206000200160009055905550505050565b60006001612b0084610db5565b612b0a9190613eac565b905081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806009600084815260200190815260200160002081905550505050565b612b89838383611722565b612c3d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612bfe57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612bf59190612f98565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612c349291906135cc565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c8b81612c56565b8114612c9657600080fd5b50565b600081359050612ca881612c82565b92915050565b600060208284031215612cc457612cc3612c4c565b5b6000612cd284828501612c99565b91505092915050565b60008115159050919050565b612cf081612cdb565b82525050565b6000602082019050612d0b6000830184612ce7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4b578082015181840152602081019050612d30565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d7382612d11565b612d7d8185612d1c565b9350612d8d818560208601612d2d565b612d9681612d57565b840191505092915050565b60006020820190508181036000830152612dbb8184612d68565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dee82612dc3565b9050919050565b612dfe81612de3565b8114612e0957600080fd5b50565b600081359050612e1b81612df5565b92915050565b6000819050919050565b612e3481612e21565b8114612e3f57600080fd5b50565b600081359050612e5181612e2b565b92915050565b60008060008060808587031215612e7157612e70612c4c565b5b6000612e7f87828801612e0c565b9450506020612e9087828801612e0c565b9350506040612ea187828801612e42565b9250506060612eb287828801612e42565b91505092959194509250565b6000819050919050565b612ed181612ebe565b82525050565b6000602082019050612eec6000830184612ec8565b92915050565b600060208284031215612f0857612f07612c4c565b5b6000612f1684828501612e42565b91505092915050565b612f2881612de3565b82525050565b6000602082019050612f436000830184612f1f565b92915050565b60008060408385031215612f6057612f5f612c4c565b5b6000612f6e85828601612e0c565b9250506020612f7f85828601612e42565b9150509250929050565b612f9281612e21565b82525050565b6000602082019050612fad6000830184612f89565b92915050565b600080600060608486031215612fcc57612fcb612c4c565b5b6000612fda86828701612e0c565b9350506020612feb86828701612e0c565b9250506040612ffc86828701612e42565b9150509250925092565b600060ff82169050919050565b61301c81613006565b811461302757600080fd5b50565b60008135905061303981613013565b92915050565b61304881612ebe565b811461305357600080fd5b50565b6000813590506130658161303f565b92915050565b60008060008060008060c0878903121561308857613087612c4c565b5b600061309689828a01612e0c565b96505060206130a789828a01612e0c565b95505060406130b889828a01612e42565b94505060606130c989828a0161302a565b93505060806130da89828a01613056565b92505060a06130eb89828a01613056565b9150509295509295509295565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61313a82612d57565b810181811067ffffffffffffffff8211171561315957613158613102565b5b80604052505050565b600061316c612c42565b90506131788282613131565b919050565b600067ffffffffffffffff82111561319857613197613102565b5b6131a182612d57565b9050602081019050919050565b82818337600083830152505050565b60006131d06131cb8461317d565b613162565b9050828152602081018484840111156131ec576131eb6130fd565b5b6131f78482856131ae565b509392505050565b600082601f830112613214576132136130f8565b5b81356132248482602086016131bd565b91505092915050565b60006020828403121561324357613242612c4c565b5b600082013567ffffffffffffffff81111561326157613260612c51565b5b61326d848285016131ff565b91505092915050565b60006020828403121561328c5761328b612c4c565b5b600061329a84828501612e0c565b91505092915050565b600067ffffffffffffffff8211156132be576132bd613102565b5b6132c782612d57565b9050602081019050919050565b60006132e76132e2846132a3565b613162565b905082815260208101848484011115613303576133026130fd565b5b61330e8482856131ae565b509392505050565b600082601f83011261332b5761332a6130f8565b5b813561333b8482602086016132d4565b91505092915050565b60008060006060848603121561335d5761335c612c4c565b5b600061336b86828701612e0c565b935050602061337c86828701612e42565b925050604084013567ffffffffffffffff81111561339d5761339c612c51565b5b6133a986828701613316565b9150509250925092565b6133bc81612cdb565b81146133c757600080fd5b50565b6000813590506133d9816133b3565b92915050565b600080604083850312156133f6576133f5612c4c565b5b600061340485828601612e0c565b9250506020613415858286016133ca565b9150509250929050565b6000806000806080858703121561343957613438612c4c565b5b600061344787828801612e0c565b945050602061345887828801612e0c565b935050604061346987828801612e42565b925050606085013567ffffffffffffffff81111561348a57613489612c51565b5b61349687828801613316565b91505092959194509250565b600080604083850312156134b9576134b8612c4c565b5b60006134c785828601612e0c565b92505060206134d885828601612e0c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061352957607f821691505b60208210810361353c5761353b6134e2565b5b50919050565b600060a0820190506135576000830188612ec8565b6135646020830187612f1f565b6135716040830186612f1f565b61357e6060830185612f89565b61358b6080830184612f89565b9695505050505050565b60006060820190506135aa6000830186612f1f565b6135b76020830185612f89565b6135c46040830184612f1f565b949350505050565b60006040820190506135e16000830185612f1f565b6135ee6020830184612f89565b9392505050565b7f4e46546966793732313a2063616c6c6572206973206e6f74206f776e6572206e60008201527f6f7220617070726f766564000000000000000000000000000000000000000000602082015250565b6000613651602b83612d1c565b915061365c826135f5565b604082019050919050565b6000602082019050818103600083015261368081613644565b9050919050565b7f455243373231576974685065726d69743a207065726d697420646561646c696e60008201527f6520657870697265640000000000000000000000000000000000000000000000602082015250565b60006136e3602983612d1c565b91506136ee82613687565b604082019050919050565b60006020820190508181036000830152613712816136d6565b9050919050565b7f455243373231576974685065726d69743a20696e76616c6964207065726d697460008201527f207369676e617475726500000000000000000000000000000000000000000000602082015250565b6000613775602a83612d1c565b915061378082613719565b604082019050919050565b600060208201905081810360008301526137a481613768565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137e582612e21565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613817576138166137ab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026138b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613876565b6138bd8683613876565b95508019841693508086168417925050509392505050565b6000819050919050565b60006138fa6138f56138f084612e21565b6138d5565b612e21565b9050919050565b6000819050919050565b613914836138df565b61392861392082613901565b848454613883565b825550505050565b600090565b61393d613930565b61394881848461390b565b505050565b5b8181101561396c57613961600082613935565b60018101905061394e565b5050565b601f8211156139b15761398281613851565b61398b84613866565b8101602085101561399a578190505b6139ae6139a685613866565b83018261394d565b50505b505050565b600082821c905092915050565b60006139d4600019846008026139b6565b1980831691505092915050565b60006139ed83836139c3565b9150826002028217905092915050565b613a0682612d11565b67ffffffffffffffff811115613a1f57613a1e613102565b5b613a298254613511565b613a34828285613970565b600060209050601f831160018114613a675760008415613a55578287015190505b613a5f85826139e1565b865550613ac7565b601f198416613a7586613851565b60005b82811015613a9d57848901518255600182019150602085019450602081019050613a78565b86831015613aba5784890151613ab6601f8916826139c3565b8355505b6001600288020188555050505b505050505050565b7f4e46546966793732313a206f6e6c79206f776e6572206f7220636f6e74726f6c60008201527f6c65720000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2b602383612d1c565b9150613b3682613acf565b604082019050919050565b60006020820190508181036000830152613b5a81613b1e565b9050919050565b6000613b6c82612e21565b9150613b7783612e21565b9250828201905080821115613b8f57613b8e6137ab565b5b92915050565b600081905092915050565b6000613bab82612d11565b613bb58185613b95565b9350613bc5818560208601612d2d565b80840191505092915050565b6000613bdd8285613ba0565b9150613be98284613ba0565b91508190509392505050565b7f4e46546966793732313a20746f6b656e207472616e73666572207768696c652060008201527f7061757365640000000000000000000000000000000000000000000000000000602082015250565b6000613c51602683612d1c565b9150613c5c82613bf5565b604082019050919050565b60006020820190508181036000830152613c8081613c44565b9050919050565b7f4e46546966793732313a20746f6b656e206973206c6f636b6564000000000000600082015250565b6000613cbd601a83612d1c565b9150613cc882613c87565b602082019050919050565b60006020820190508181036000830152613cec81613cb0565b9050919050565b600060a082019050613d086000830188612ec8565b613d156020830187612ec8565b613d226040830186612ec8565b613d2f6060830185612f89565b613d3c6080830184612f1f565b9695505050505050565b613d4f81613006565b82525050565b6000608082019050613d6a6000830187612ec8565b613d776020830186613d46565b613d846040830185612ec8565b613d916060830184612ec8565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000613dc182613d9a565b613dcb8185613da5565b9350613ddb818560208601612d2d565b613de481612d57565b840191505092915050565b6000608082019050613e046000830187612f1f565b613e116020830186612f1f565b613e1e6040830185612f89565b8181036060830152613e308184613db6565b905095945050505050565b600081519050613e4a81612c82565b92915050565b600060208284031215613e6657613e65612c4c565b5b6000613e7484828501613e3b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb782612e21565b9150613ec283612e21565b9250828203905081811115613eda57613ed96137ab565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220a8e5b2c8c634d22e56066e6a9db6cbcfd8eecac0dbfb459851a709f6718ec7fc64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000bc99c94fbccd5efc50c6dda8587963d5f5dc438600000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000008426565726f2030320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008426565726f2030320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000