[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipients", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "MintSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "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" }, { "inputs": [], "name": "ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "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": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantAdminRole", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "recipients", "type": "address" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeAdminRole", "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": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060600160405280603d81526020016200429b603d9139600a90816200002e919062000649565b503480156200003c57600080fd5b50336040518060400160405280600681526020017f4f475061737300000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4f475000000000000000000000000000000000000000000000000000000000008152508160029081620000bb919062000649565b508060039081620000cd919062000649565b50620000de6200018960201b60201c565b6000819055505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200015b5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000152919062000775565b60405180910390fd5b6200016c816200019260201b60201c565b50620001826000801b336200025860201b60201c565b5062000792565b60006001905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006200026c83836200035c60201b60201c565b620003515760016009600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002ed620003c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000356565b600090505b92915050565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200045157607f821691505b60208210810362000467576200046662000409565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000492565b620004dd868362000492565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200052a620005246200051e84620004f5565b620004ff565b620004f5565b9050919050565b6000819050919050565b620005468362000509565b6200055e620005558262000531565b8484546200049f565b825550505050565b600090565b6200057562000566565b620005828184846200053b565b505050565b5b81811015620005aa576200059e6000826200056b565b60018101905062000588565b5050565b601f821115620005f957620005c3816200046d565b620005ce8462000482565b81016020851015620005de578190505b620005f6620005ed8562000482565b83018262000587565b50505b505050565b600082821c905092915050565b60006200061e60001984600802620005fe565b1980831691505092915050565b60006200063983836200060b565b9150826002028217905092915050565b6200065482620003cf565b67ffffffffffffffff81111562000670576200066f620003da565b5b6200067c825462000438565b62000689828285620005ae565b600060209050601f831160018114620006c15760008415620006ac578287015190505b620006b885826200062b565b86555062000728565b601f198416620006d1866200046d565b60005b82811015620006fb57848901518255600182019150602085019450602081019050620006d4565b868310156200071b578489015162000717601f8916826200060b565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200075d8262000730565b9050919050565b6200076f8162000750565b82525050565b60006020820190506200078c600083018462000764565b92915050565b613af980620007a26000396000f3fe6080604052600436106101ee5760003560e01c8063715018a61161010d578063a217fddf116100a0578063c634b78e1161006f578063c634b78e146106ff578063c87b56dd14610728578063d547741f14610765578063e985e9c51461078e578063f2fde38b146107cb576101ee565b8063a217fddf14610652578063a22cb4651461067d578063b88d4fde146106a6578063c23dc68f146106c2576101ee565b806391d14854116100dc57806391d148541461058457806395d89b41146105c157806399a2557a146105ec5780639a19c7b014610629576101ee565b8063715018a6146104da57806375b238fc146104f15780638462151c1461051c5780638da5cb5b14610559576101ee565b806332cb6b0c1161018557806355f804b31161015457806355f804b3146103fa5780635bbb2177146104235780636352211e1461046057806370a082311461049d576101ee565b806332cb6b0c1461036157806336568abe1461038c57806340c10f19146103b557806342842e0e146103de576101ee565b806318160ddd116101c157806318160ddd146102b457806323b872dd146102df578063248a9ca3146102fb5780632f2ff15d14610338576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906128d8565b6107f4565b6040516102279190612920565b60405180910390f35b34801561023c57600080fd5b50610245610806565b60405161025291906129cb565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612a23565b610898565b60405161028f9190612a91565b60405180910390f35b6102b260048036038101906102ad9190612ad8565b610917565b005b3480156102c057600080fd5b506102c9610a5b565b6040516102d69190612b27565b60405180910390f35b6102f960048036038101906102f49190612b42565b610a72565b005b34801561030757600080fd5b50610322600480360381019061031d9190612bcb565b610d94565b60405161032f9190612c07565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612c22565b610db4565b005b34801561036d57600080fd5b50610376610dd6565b6040516103839190612b27565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612c22565b610ddc565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190612ad8565b610e57565b005b6103f860048036038101906103f39190612b42565b610f73565b005b34801561040657600080fd5b50610421600480360381019061041c9190612cc7565b610f93565b005b34801561042f57600080fd5b5061044a60048036038101906104459190612d6a565b611012565b6040516104579190612f1a565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190612a23565b6110d5565b6040516104949190612a91565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf9190612f3c565b6110e7565b6040516104d19190612b27565b60405180910390f35b3480156104e657600080fd5b506104ef61119f565b005b3480156104fd57600080fd5b506105066111b3565b6040516105139190612c07565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190612f3c565b6111d7565b6040516105509190613027565b60405180910390f35b34801561056557600080fd5b5061056e61131a565b60405161057b9190612a91565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190612c22565b611344565b6040516105b89190612920565b60405180910390f35b3480156105cd57600080fd5b506105d66113af565b6040516105e391906129cb565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e9190613049565b611441565b6040516106209190613027565b60405180910390f35b34801561063557600080fd5b50610650600480360381019061064b9190612f3c565b61164d565b005b34801561065e57600080fd5b50610667611682565b6040516106749190612c07565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f91906130c8565b611689565b005b6106c060048036038101906106bb9190613238565b611794565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612a23565b611807565b6040516106f69190613310565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190612f3c565b611871565b005b34801561073457600080fd5b5061074f600480360381019061074a9190612a23565b6118a6565b60405161075c91906129cb565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190612c22565b61194e565b005b34801561079a57600080fd5b506107b560048036038101906107b0919061332b565b611970565b6040516107c29190612920565b60405180910390f35b3480156107d757600080fd5b506107f260048036038101906107ed9190612f3c565b611a04565b005b60006107ff82611a8a565b9050919050565b6060600280546108159061339a565b80601f01602080910402602001604051908101604052809291908181526020018280546108419061339a565b801561088e5780601f106108635761010080835404028352916020019161088e565b820191906000526020600020905b81548152906001019060200180831161087157829003601f168201915b5050505050905090565b60006108a382611b04565b6108d9576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610922826110d5565b90508073ffffffffffffffffffffffffffffffffffffffff16610943611b63565b73ffffffffffffffffffffffffffffffffffffffff16146109a65761096f8161096a611b63565b611970565b6109a5576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000610a65611b6b565b6001546000540303905090565b6000610a7d82611b74565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ae4576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610af084611c40565b91509150610b068187610b01611b63565b611c67565b610b5257610b1b86610b16611b63565b611970565b610b51576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610bb8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bc58686866001611cab565b8015610bd057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610c9e85610c7a888887611cb1565b7c020000000000000000000000000000000000000000000000000000000017611cd9565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610d245760006001850190506000600460008381526020019081526020016000205403610d22576000548114610d21578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610d8c8686866001611d04565b505050505050565b600060096000838152602001908152602001600020600101549050919050565b610dbd82610d94565b610dc681611d0a565b610dd08383611d1e565b50505050565b61030981565b610de4611e10565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e528282611e18565b505050565b610e817fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533611344565b610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb790613417565b60405180910390fd5b61030981610ecc610a5b565b610ed69190613466565b1115610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e906134e6565b60405180910390fd5b610f218282611f0b565b8173ffffffffffffffffffffffffffffffffffffffff167fcda531bfd68624f13205c0a23cd4d5a7f09792cbb399603114f2b04aaa1bf5cf82604051610f679190612b27565b60405180910390a25050565b610f8e83838360405180602001604052806000815250611794565b505050565b610fbd7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533611344565b610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390613417565b60405180910390fd5b8181600a918261100d9291906136bd565b505050565b6060600083839050905060008167ffffffffffffffff8111156110385761103761310d565b5b60405190808252806020026020018201604052801561107157816020015b61105e61281d565b8152602001906001900390816110565790505b50905060005b8281146110c9576110a08686838181106110945761109361378d565b5b90506020020135611807565b8282815181106110b3576110b261378d565b5b6020026020010181905250806001019050611077565b50809250505092915050565b60006110e082611b74565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361114e576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6111a7611f29565b6111b16000611fb0565b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b606060008060006111e7856110e7565b905060008167ffffffffffffffff8111156112055761120461310d565b5b6040519080825280602002602001820160405280156112335781602001602082028036833780820191505090505b50905061123e61281d565b6000611248611b6b565b90505b83861461130c5761125b81612076565b9150816040015161130157600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146112a657816000015194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361130057808387806001019850815181106112f3576112f261378d565b5b6020026020010181815250505b5b80600101905061124b565b508195505050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600380546113be9061339a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ea9061339a565b80156114375780601f1061140c57610100808354040283529160200191611437565b820191906000526020600020905b81548152906001019060200180831161141a57829003601f168201915b5050505050905090565b606081831061147c576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806114876120a1565b9050611491611b6b565b8510156114a3576114a0611b6b565b94505b808411156114af578093505b60006114ba876110e7565b9050848610156114dd5760008686039050818110156114d7578091505b506114e2565b600090505b60008167ffffffffffffffff8111156114fe576114fd61310d565b5b60405190808252806020026020018201604052801561152c5781602001602082028036833780820191505090505b509050600082036115435780945050505050611646565b600061154e88611807565b90506000816040015161156357816000015190505b60008990505b8881141580156115795750848714155b156116385761158781612076565b9250826040015161162d57600073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff16146115d257826000015191505b8a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162c578084888060010199508151811061161f5761161e61378d565b5b6020026020010181815250505b5b806001019050611569565b508583528296505050505050505b9392505050565b611655611f29565b61167f7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758261194e565b50565b6000801b81565b8060076000611696611b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611743611b63565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117889190612920565b60405180910390a35050565b61179f848484610a72565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611801576117ca848484846120aa565b611800576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b61180f61281d565b61181761281d565b61181f611b6b565b831080611833575061182f6120a1565b8310155b15611841578091505061186c565b61184a83612076565b905080604001511561185f578091505061186c565b611868836121fa565b9150505b919050565b611879611f29565b6118a37fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177582610db4565b50565b60606118b182611b04565b6118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e79061382e565b60405180910390fd5b6000600a80546118ff9061339a565b90501161191b5760405180602001604052806000815250611947565b600a6119268361221a565b604051602001611937929190613959565b6040516020818303038152906040525b9050919050565b61195782610d94565b61196081611d0a565b61196a8383611e18565b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a0c611f29565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a7e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611a759190612a91565b60405180910390fd5b611a8781611fb0565b50565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611afd5750611afc826122e8565b5b9050919050565b600081611b0f611b6b565b11158015611b1e575060005482105b8015611b5c575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611b83611b6b565b11611c0957600054811015611c085760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611c06575b60008103611bfc576004600083600190039350838152602001908152602001600020549050611bd2565b8092505050611c3b565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611cc8868684612352565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611d1b81611d16611e10565b61235b565b50565b6000611d2a8383611344565b611e055760016009600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611da2611e10565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611e0a565b600090505b92915050565b600033905090565b6000611e248383611344565b15611f005760006009600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e9d611e10565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611f05565b600090505b92915050565b611f258282604051806020016040528060008152506123ac565b5050565b611f31611e10565b73ffffffffffffffffffffffffffffffffffffffff16611f4f61131a565b73ffffffffffffffffffffffffffffffffffffffff1614611fae57611f72611e10565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611fa59190612a91565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61207e61281d565b61209a6004600084815260200190815260200160002054612449565b9050919050565b60008054905090565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120d0611b63565b8786866040518563ffffffff1660e01b81526004016120f294939291906139dd565b6020604051808303816000875af192505050801561212e57506040513d601f19601f8201168201806040525081019061212b9190613a3e565b60015b6121a7573d806000811461215e576040519150601f19603f3d011682016040523d82523d6000602084013e612163565b606091505b50600081510361219f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b61220261281d565b61221361220e83611b74565b612449565b9050919050565b606060006001612229846124ff565b01905060008167ffffffffffffffff8111156122485761224761310d565b5b6040519080825280601f01601f19166020018201604052801561227a5781602001600182028036833780820191505090505b509050600082602001820190505b6001156122dd578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816122d1576122d0613a6b565b5b04945060008503612288575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60009392505050565b6123658282611344565b6123a85780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161239f929190613a9a565b60405180910390fd5b5050565b6123b68383612652565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461244457600080549050600083820390505b6123f660008683806001019450866120aa565b61242c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106123e357816000541461244157600080fd5b50505b505050565b61245161281d565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061255d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161255357612552613a6b565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061259a576d04ee2d6d415b85acef810000000083816125905761258f613a6b565b5b0492506020810190505b662386f26fc1000083106125c957662386f26fc1000083816125bf576125be613a6b565b5b0492506010810190505b6305f5e10083106125f2576305f5e10083816125e8576125e7613a6b565b5b0492506008810190505b612710831061261757612710838161260d5761260c613a6b565b5b0492506004810190505b6064831061263a57606483816126305761262f613a6b565b5b0492506002810190505b600a8310612649576001810190505b80915050919050565b60008054905060008203612692576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61269f6000848385611cab565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612716836127076000866000611cb1565b6127108561280d565b17611cd9565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146127b757808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061277c565b50600082036127f2576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506128086000848385611d04565b505050565b60006001821460e11b9050919050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6128b581612880565b81146128c057600080fd5b50565b6000813590506128d2816128ac565b92915050565b6000602082840312156128ee576128ed612876565b5b60006128fc848285016128c3565b91505092915050565b60008115159050919050565b61291a81612905565b82525050565b60006020820190506129356000830184612911565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561297557808201518184015260208101905061295a565b60008484015250505050565b6000601f19601f8301169050919050565b600061299d8261293b565b6129a78185612946565b93506129b7818560208601612957565b6129c081612981565b840191505092915050565b600060208201905081810360008301526129e58184612992565b905092915050565b6000819050919050565b612a00816129ed565b8114612a0b57600080fd5b50565b600081359050612a1d816129f7565b92915050565b600060208284031215612a3957612a38612876565b5b6000612a4784828501612a0e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7b82612a50565b9050919050565b612a8b81612a70565b82525050565b6000602082019050612aa66000830184612a82565b92915050565b612ab581612a70565b8114612ac057600080fd5b50565b600081359050612ad281612aac565b92915050565b60008060408385031215612aef57612aee612876565b5b6000612afd85828601612ac3565b9250506020612b0e85828601612a0e565b9150509250929050565b612b21816129ed565b82525050565b6000602082019050612b3c6000830184612b18565b92915050565b600080600060608486031215612b5b57612b5a612876565b5b6000612b6986828701612ac3565b9350506020612b7a86828701612ac3565b9250506040612b8b86828701612a0e565b9150509250925092565b6000819050919050565b612ba881612b95565b8114612bb357600080fd5b50565b600081359050612bc581612b9f565b92915050565b600060208284031215612be157612be0612876565b5b6000612bef84828501612bb6565b91505092915050565b612c0181612b95565b82525050565b6000602082019050612c1c6000830184612bf8565b92915050565b60008060408385031215612c3957612c38612876565b5b6000612c4785828601612bb6565b9250506020612c5885828601612ac3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c8757612c86612c62565b5b8235905067ffffffffffffffff811115612ca457612ca3612c67565b5b602083019150836001820283011115612cc057612cbf612c6c565b5b9250929050565b60008060208385031215612cde57612cdd612876565b5b600083013567ffffffffffffffff811115612cfc57612cfb61287b565b5b612d0885828601612c71565b92509250509250929050565b60008083601f840112612d2a57612d29612c62565b5b8235905067ffffffffffffffff811115612d4757612d46612c67565b5b602083019150836020820283011115612d6357612d62612c6c565b5b9250929050565b60008060208385031215612d8157612d80612876565b5b600083013567ffffffffffffffff811115612d9f57612d9e61287b565b5b612dab85828601612d14565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dec81612a70565b82525050565b600067ffffffffffffffff82169050919050565b612e0f81612df2565b82525050565b612e1e81612905565b82525050565b600062ffffff82169050919050565b612e3c81612e24565b82525050565b608082016000820151612e586000850182612de3565b506020820151612e6b6020850182612e06565b506040820151612e7e6040850182612e15565b506060820151612e916060850182612e33565b50505050565b6000612ea38383612e42565b60808301905092915050565b6000602082019050919050565b6000612ec782612db7565b612ed18185612dc2565b9350612edc83612dd3565b8060005b83811015612f0d578151612ef48882612e97565b9750612eff83612eaf565b925050600181019050612ee0565b5085935050505092915050565b60006020820190508181036000830152612f348184612ebc565b905092915050565b600060208284031215612f5257612f51612876565b5b6000612f6084828501612ac3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f9e816129ed565b82525050565b6000612fb08383612f95565b60208301905092915050565b6000602082019050919050565b6000612fd482612f69565b612fde8185612f74565b9350612fe983612f85565b8060005b8381101561301a5781516130018882612fa4565b975061300c83612fbc565b925050600181019050612fed565b5085935050505092915050565b600060208201905081810360008301526130418184612fc9565b905092915050565b60008060006060848603121561306257613061612876565b5b600061307086828701612ac3565b935050602061308186828701612a0e565b925050604061309286828701612a0e565b9150509250925092565b6130a581612905565b81146130b057600080fd5b50565b6000813590506130c28161309c565b92915050565b600080604083850312156130df576130de612876565b5b60006130ed85828601612ac3565b92505060206130fe858286016130b3565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61314582612981565b810181811067ffffffffffffffff821117156131645761316361310d565b5b80604052505050565b600061317761286c565b9050613183828261313c565b919050565b600067ffffffffffffffff8211156131a3576131a261310d565b5b6131ac82612981565b9050602081019050919050565b82818337600083830152505050565b60006131db6131d684613188565b61316d565b9050828152602081018484840111156131f7576131f6613108565b5b6132028482856131b9565b509392505050565b600082601f83011261321f5761321e612c62565b5b813561322f8482602086016131c8565b91505092915050565b6000806000806080858703121561325257613251612876565b5b600061326087828801612ac3565b945050602061327187828801612ac3565b935050604061328287828801612a0e565b925050606085013567ffffffffffffffff8111156132a3576132a261287b565b5b6132af8782880161320a565b91505092959194509250565b6080820160008201516132d16000850182612de3565b5060208201516132e46020850182612e06565b5060408201516132f76040850182612e15565b50606082015161330a6060850182612e33565b50505050565b600060808201905061332560008301846132bb565b92915050565b6000806040838503121561334257613341612876565b5b600061335085828601612ac3565b925050602061336185828601612ac3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133b257607f821691505b6020821081036133c5576133c461336b565b5b50919050565b7f52657175697265732041444d494e20726f6c6500000000000000000000000000600082015250565b6000613401601383612946565b915061340c826133cb565b602082019050919050565b60006020820190508181036000830152613430816133f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613471826129ed565b915061347c836129ed565b925082820190508082111561349457613493613437565b5b92915050565b7f45786365656473206d6178696d756d20737570706c7900000000000000000000600082015250565b60006134d0601683612946565b91506134db8261349a565b602082019050919050565b600060208201905081810360008301526134ff816134c3565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026135737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613536565b61357d8683613536565b95508019841693508086168417925050509392505050565b6000819050919050565b60006135ba6135b56135b0846129ed565b613595565b6129ed565b9050919050565b6000819050919050565b6135d48361359f565b6135e86135e0826135c1565b848454613543565b825550505050565b600090565b6135fd6135f0565b6136088184846135cb565b505050565b5b8181101561362c576136216000826135f5565b60018101905061360e565b5050565b601f8211156136715761364281613511565b61364b84613526565b8101602085101561365a578190505b61366e61366685613526565b83018261360d565b50505b505050565b600082821c905092915050565b600061369460001984600802613676565b1980831691505092915050565b60006136ad8383613683565b9150826002028217905092915050565b6136c78383613506565b67ffffffffffffffff8111156136e0576136df61310d565b5b6136ea825461339a565b6136f5828285613630565b6000601f8311600181146137245760008415613712578287013590505b61371c85826136a1565b865550613784565b601f19841661373286613511565b60005b8281101561375a57848901358255600182019150602085019450602081019050613735565b868310156137775784890135613773601f891682613683565b8355505b6001600288020188555050505b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f455243373231414d657461646174613a2055524920717565727920666f72206e60008201527f6f6e6578697374656e7420746f6b656e00000000000000000000000000000000602082015250565b6000613818603083612946565b9150613823826137bc565b604082019050919050565b600060208201905081810360008301526138478161380b565b9050919050565b600081905092915050565b600081546138668161339a565b613870818661384e565b9450600182166000811461388b57600181146138a0576138d3565b60ff19831686528115158202860193506138d3565b6138a985613511565b60005b838110156138cb578154818901526001820191506020810190506138ac565b838801955050505b50505092915050565b60006138e78261293b565b6138f1818561384e565b9350613901818560208601612957565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061394360058361384e565b915061394e8261390d565b600582019050919050565b60006139658285613859565b915061397182846138dc565b915061397c82613936565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b60006139af82613988565b6139b98185613993565b93506139c9818560208601612957565b6139d281612981565b840191505092915050565b60006080820190506139f26000830187612a82565b6139ff6020830186612a82565b613a0c6040830185612b18565b8181036060830152613a1e81846139a4565b905095945050505050565b600081519050613a38816128ac565b92915050565b600060208284031215613a5457613a53612876565b5b6000613a6284828501613a29565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050613aaf6000830185612a82565b613abc6020830184612bf8565b939250505056fea26469706673582212204c1fc0f5cff6bd8650063df59845057fec7a0ba2fa76bb4a0be534ce2f06fed664736f6c6343000814003368747470733a2f2f61737365742d746573742e6675747572656769726c73696e632e636f6d2f7075626c69632f6f67706173732d6d657461646174612f