[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "howManyTokens", "type": "uint256" }, { "internalType": "uint256", "name": "supplyPerToken", "type": "uint256" }, { "internalType": "string", "name": "baseURI", "type": "string" }, { "internalType": "address", "name": "royaltiesRecipient", "type": "address" }, { "internalType": "uint24", "name": "royaltiesBasispoints", "type": "uint24" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155ReceiverRejectedTokens", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "owned", "type": "uint256" }, { "internalType": "uint256", "name": "requested", "type": "uint256" } ], "name": "InsufficientTokens", "type": "error" }, { "inputs": [], "name": "InvalidAddress", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "UnauthorizedTransfer", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "uri", "type": "string" } ], "name": "BaseUriUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint24", "name": "amount", "type": "uint24" } ], "name": "RoyaltyInfoUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creatorOwnershipBitMap", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "howManyTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "isOwnedByCreator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint24", "name": "basispoints", "type": "uint24" } ], "name": "reduceRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royalties", "outputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint24", "name": "amount", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": [], "name": "supplyPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "transferRoyaltiesRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseURI", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620021b8380380620021b883398101604081905262000034916200021d565b6001600055600380546001600160a01b0319163217905581818888888888600462000060868262000385565b5060056200006f858262000385565b5060066200007e828262000385565b5050600855600755506200009590508282620000a4565b50505050505050505062000451565b6127108162ffffff1611156200010e5760405162461bcd60e51b815260206004820152602560248201527f455243323938313a20726f79616c7479206261736973706f696e747320746f6f604482015264040d0d2ced60db1b606482015260840160405180910390fd5b600a805462ffffff909216600160a01b026001600160b81b03199092166001600160a01b0390931692909217179055565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200016757600080fd5b81516001600160401b03808211156200018457620001846200013f565b604051601f8301601f19908116603f01168101908282118183101715620001af57620001af6200013f565b81604052838152602092508683858801011115620001cc57600080fd5b600091505b83821015620001f05785820183015181830184015290820190620001d1565b600093810190920192909252949350505050565b805162ffffff811681146200021857600080fd5b919050565b600080600080600080600060e0888a0312156200023957600080fd5b87516001600160401b03808211156200025157600080fd5b6200025f8b838c0162000155565b985060208a01519150808211156200027657600080fd5b620002848b838c0162000155565b975060408a0151965060608a0151955060808a0151915080821115620002a957600080fd5b50620002b88a828b0162000155565b60a08a015190945090506001600160a01b0381168114620002d857600080fd5b9150620002e860c0890162000204565b905092959891949750929550565b600181811c908216806200030b57607f821691505b6020821081036200032c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200038057600081815260208120601f850160051c810160208610156200035b5750805b601f850160051c820191505b818110156200037c5782815560010162000367565b5050505b505050565b81516001600160401b03811115620003a157620003a16200013f565b620003b981620003b28454620002f6565b8462000332565b602080601f831160018114620003f15760008415620003d85750858301515b600019600386901b1c1916600185901b1785556200037c565b600085815260208120601f198616915b82811015620004225788860151825594840194600190910190840162000401565b5085821015620004415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611d5780620004616000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80636c0360eb116100c3578063a22cb4651161007c578063a22cb465146102f5578063b789308414610308578063bd85b03914610311578063e985e9c514610324578063f053dc5c14610337578063f242432a1461037b57600080fd5b80636c0360eb1461028457806378dfc4e81461028c5780637dbd127e146102be5780637f3aa0c4146102c7578063931688cb146102da57806395d89b41146102ed57600080fd5b80630e89341c116101155780630e89341c146101ef5780632a55205a146102025780632eb2c2d61461023457806343a65f85146102475780634e1273f41461025c5780634f558e791461026f57600080fd5b8062fdd58e1461015157806301ffc9a71461017757806302d05d3f1461019a57806306fdde03146101c557806308cc197c146101da575b600080fd5b61016461015f366004611424565b61038e565b6040519081526020015b60405180910390f35b61018a610185366004611467565b610401565b604051901515815260200161016e565b6003546101ad906001600160a01b031681565b6040516001600160a01b03909116815260200161016e565b6101cd61040c565b60405161016e91906114db565b6101ed6101e83660046114ee565b61049a565b005b6101cd6101fd366004611509565b610534565b610215610210366004611522565b6105e1565b604080516001600160a01b03909316835260208301919091520161016e565b6101ed610242366004611692565b61061f565b61024f6107c6565b60405161016e9190611777565b61024f61026a36600461178a565b6107e3565b61018a61027d366004611509565b6007541190565b6101cd6108b8565b61018a61029a366004611509565b600881901c600090815260096020526040902054600160ff9092169190911b161590565b61016460075481565b6101ed6102d536600461184a565b6108c5565b6101ed6102e836600461186f565b6109cb565b6101cd610a32565b6101ed6103033660046118c0565b610a3f565b61016460085481565b61016461031f366004611509565b610a4e565b61018a6103323660046118fc565b610a6e565b600a54610358906001600160a01b03811690600160a01b900462ffffff1682565b604080516001600160a01b03909316835262ffffff90911660208301520161016e565b6101ed610389366004611926565b610a9c565b60008061039b8484610bc2565b905080156103aa5790506103fb565b6003546001600160a01b0385811691161480156103e05750600883901c600090815260096020526040902054600160ff85161b16155b156103ef5750506008546103fb565b60009150506103fb565b505b92915050565b60006103fb82610c15565b600480546104199061198b565b80601f01602080910402602001604051908101604052809291908181526020018280546104459061198b565b80156104925780601f1061046757610100808354040283529160200191610492565b820191906000526020600020905b81548152906001019060200180831161047557829003601f168201915b505050505081565b600a546001600160a01b03163381146104c5576040516282b42960e81b815260040160405180910390fd5b600a546104df908390600160a01b900462ffffff16610c3a565b600a54604080516001600160a01b0385168152600160a01b90920462ffffff1660208301527f578e3eb2d4c9089ff58a6f307429a8aa35c32a32693f6a480b217fe7e6c8035091015b60405180910390a15050565b6060610541826007541190565b6105af5760405162461bcd60e51b815260206004820152603460248201527f49455243313135354d657461646174615552493a20757269207175657279206660448201527337b9103737b732bc34b9ba32b73a103a37b5b2b760611b60648201526084015b60405180910390fd5b60066105ba83610cd0565b6040516020016105cb9291906119c5565b6040516020818303038152906040529050919050565b600a546001600160a01b038116906000906127109061060c90600160a01b900462ffffff1685611a81565b6106169190611a98565b90509250929050565b610627610dfc565b846001600160a01b038116331480159061064857506106468133610a6e565b155b1561066857604051639a2983a360e01b81523360048201526024016105a6565b846001600160a01b0381166106905760405163e6c4247b60e01b815260040160405180910390fd5b83518551146106f25760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016105a6565b60005b855181101561074d5761073d888888848151811061071557610715611aba565b602002602001015188858151811061072f5761072f611aba565b602002602001015188610e26565b61074681611ad0565b90506106f5565b50856001600160a01b0316876001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb888860405161079d929190611ae9565b60405180910390a46107b3338888888888610eca565b50506107bf6001600055565b5050505050565b60606107de6007546009610ff890919063ffffffff16565b905090565b606081518351146108145781518351604051635b05999160e01b8152600481019290925260248201526044016105a6565b6000835167ffffffffffffffff81111561083057610830611544565b604051908082528060200260200182016040528015610859578160200160208202803683370190505b50905060005b84518110156108b0576020808202860101516108839060208084028701015161038e565b82828151811061089557610895611aba565b60209081029190910101526108a981611ad0565b905061085f565b509392505050565b600680546104199061198b565b600a546001600160a01b03163381146108f0576040516282b42960e81b815260040160405180910390fd5b600a5462ffffff600160a01b90910481169083161061096e5760405162461bcd60e51b815260206004820152603460248201527f455243323938313a207265647563656420726f79616c7479206261736973706f60448201527334b73a399036bab9ba1031329039b6b0b63632b960611b60648201526084016105a6565b600a54610984906001600160a01b031683610c3a565b600a54604080516001600160a01b03909216825262ffffff841660208301527f578e3eb2d4c9089ff58a6f307429a8aa35c32a32693f6a480b217fe7e6c803509101610528565b600a546001600160a01b03163381146109f6576040516282b42960e81b815260040160405180910390fd5b6006610a028382611b62565b507fc35611e34b3940869a5132c8bc8ec4854192b0bfea25d0b9b38bcdeec2c09a7f8260405161052891906114db565b600580546104199061198b565b610a4a3383836110b0565b5050565b6000610a5b826007541190565b610a665760006103fb565b505060085490565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b610aa4610dfc565b846001600160a01b0381163314801590610ac55750610ac38133610a6e565b155b15610ae557604051639a2983a360e01b81523360048201526024016105a6565b846001600160a01b038116610b0d5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0387163314801590610b2d5750610b2b8733610a6e565b155b15610b5c5760405163711bec9160e11b81523360048201526001600160a01b03881660248201526044016105a6565b610b698787878787610e26565b60408051868152602081018690526001600160a01b0380891692908a169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46107b33388888888886111b9565b6000826001600160a01b038116610bec5760405163e6c4247b60e01b815260040160405180910390fd5b505060009081526001602090815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b0319821663152a902d60e11b14806103fb57506103fb826112a2565b6127108162ffffff161115610c9f5760405162461bcd60e51b815260206004820152602560248201527f455243323938313a20726f79616c7479206261736973706f696e747320746f6f604482015264040d0d2ced60db1b60648201526084016105a6565b600a805462ffffff909216600160a01b026001600160b81b03199092166001600160a01b0390931692909217179055565b606081600003610cf75750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610d215780610d0b81611ad0565b9150610d1a9050600a83611a98565b9150610cfb565b60008167ffffffffffffffff811115610d3c57610d3c611544565b6040519080825280601f01601f191660200182016040528015610d66576020820181803683370190505b509050815b8515610df357610d7c600182611c22565b90506000610d8b600a88611a98565b610d9690600a611a81565b610da09088611c22565b610dab906030611c35565b905060008160f81b905080848481518110610dc857610dc8611aba565b60200101906001600160f81b031916908160001a905350610dea600a89611a98565b97505050610d6b565b50949350505050565b600260005403610e1f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6003546001600160a01b038681169116148015610e5c5750600883901c600090815260096020526040902054600160ff85161b16155b15610ebd57600883901c60009081526009602052604090208054600160ff86161b17905560085460008481526001602090815260408083206003546001600160a01b0316845290915281208054909190610eb7908490611c4e565b90915550505b6107bf85858585856112c7565b6001600160a01b0384163b15610ff05760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610f0e9089908990889088908890600401611c61565b6020604051808303816000875af1925050508015610f49575060408051601f3d908101601f19168201909252610f4691810190611cbf565b60015b610fb2573d808015610f77576040519150601f19603f3d011682016040523d82523d6000602084013e610f7c565b606091505b508051600003610faa57604051632bfa23e760e11b81526001600160a01b03861660048201526024016105a6565b805181602001fd5b6001600160e01b0319811663bc197c8160e01b14610fee57604051632bfa23e760e11b81526001600160a01b03861660048201526024016105a6565b505b505050505050565b606060008260ff161161100c57600061100f565b60015b6110209060ff16600884901c611c4e565b67ffffffffffffffff81111561103857611038611544565b604051908082528060200260200182016040528015611061578160200160208202803683370190505b50905060005b81518110156103f957600081815260208590526040902054825183908390811061109357611093611aba565b6020908102919091010152806110a881611ad0565b915050611067565b6001600160a01b0382166110d95760405162ced3e160e81b8152600060048201526024016105a6565b816001600160a01b0316836001600160a01b03160361114c5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016105a6565b6001600160a01b03838116600081815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384163b15610ff05760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906111fd9089908990889088908890600401611cdc565b6020604051808303816000875af1925050508015611238575060408051601f3d908101601f1916820190925261123591810190611cbf565b60015b611266573d808015610f77576040519150601f19603f3d011682016040523d82523d6000602084013e610f7c565b6001600160e01b0319811663f23a6e6160e01b14610fee57604051632bfa23e760e11b81526001600160a01b03861660048201526024016105a6565b60006001600160e01b031982166303a24d0760e21b14806103fb57506103fb826113d3565b6001600160a01b0384166112f157604051632bfa23e760e11b8152600060048201526024016105a6565b6001600160a01b03851661131a57604051626a0d4560e21b8152600060048201526024016105a6565b60008381526001602090815260408083206001600160a01b03891684529091529020548281101561137e5760405163376c5de960e01b8152600481018590526001600160a01b038716602482015260448101829052606481018490526084016105a6565b6113888382611c22565b60008581526001602090815260408083206001600160a01b038b811685529252808320939093558716815290812080548592906113c6908490611c4e565b9091555050505050505050565b60006001600160e01b03198216636cdb3d1360e11b14806103fb57506301ffc9a760e01b6001600160e01b03198316146103fb565b80356001600160a01b038116811461141f57600080fd5b919050565b6000806040838503121561143757600080fd5b61144083611408565b946020939093013593505050565b6001600160e01b03198116811461146457600080fd5b50565b60006020828403121561147957600080fd5b81356114848161144e565b9392505050565b60005b838110156114a657818101518382015260200161148e565b50506000910152565b600081518084526114c781602086016020860161148b565b601f01601f19169290920160200192915050565b60208152600061148460208301846114af565b60006020828403121561150057600080fd5b61148482611408565b60006020828403121561151b57600080fd5b5035919050565b6000806040838503121561153557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561158357611583611544565b604052919050565b600067ffffffffffffffff8211156115a5576115a5611544565b5060051b60200190565b600082601f8301126115c057600080fd5b813560206115d56115d08361158b565b61155a565b82815260059290921b840181019181810190868411156115f457600080fd5b8286015b8481101561160f57803583529183019183016115f8565b509695505050505050565b600067ffffffffffffffff83111561163457611634611544565b611647601f8401601f191660200161155a565b905082815283838301111561165b57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261168357600080fd5b6114848383356020850161161a565b600080600080600060a086880312156116aa57600080fd5b6116b386611408565b94506116c160208701611408565b9350604086013567ffffffffffffffff808211156116de57600080fd5b6116ea89838a016115af565b9450606088013591508082111561170057600080fd5b61170c89838a016115af565b9350608088013591508082111561172257600080fd5b5061172f88828901611672565b9150509295509295909350565b600081518084526020808501945080840160005b8381101561176c57815187529582019590820190600101611750565b509495945050505050565b602081526000611484602083018461173c565b6000806040838503121561179d57600080fd5b823567ffffffffffffffff808211156117b557600080fd5b818501915085601f8301126117c957600080fd5b813560206117d96115d08361158b565b82815260059290921b840181019181810190898411156117f857600080fd5b948201945b8386101561181d5761180e86611408565b825294820194908201906117fd565b9650508601359250508082111561183357600080fd5b50611840858286016115af565b9150509250929050565b60006020828403121561185c57600080fd5b813562ffffff8116811461148457600080fd5b60006020828403121561188157600080fd5b813567ffffffffffffffff81111561189857600080fd5b8201601f810184136118a957600080fd5b6118b88482356020840161161a565b949350505050565b600080604083850312156118d357600080fd5b6118dc83611408565b9150602083013580151581146118f157600080fd5b809150509250929050565b6000806040838503121561190f57600080fd5b61191883611408565b915061061660208401611408565b600080600080600060a0868803121561193e57600080fd5b61194786611408565b945061195560208701611408565b93506040860135925060608601359150608086013567ffffffffffffffff81111561197f57600080fd5b61172f88828901611672565b600181811c9082168061199f57607f821691505b6020821081036119bf57634e487b7160e01b600052602260045260246000fd5b50919050565b60008084546119d38161198b565b600182811680156119eb5760018114611a0057611a2f565b60ff1984168752821515830287019450611a2f565b8860005260208060002060005b85811015611a265781548a820152908401908201611a0d565b50505082870194505b50602f60f81b845286519250611a4b8382860160208a0161148b565b64173539b7b760d91b939092019182019290925260060195945050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103fb576103fb611a6b565b600082611ab557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611ae257611ae2611a6b565b5060010190565b604081526000611afc604083018561173c565b8281036020840152611b0e818561173c565b95945050505050565b601f821115611b5d57600081815260208120601f850160051c81016020861015611b3e5750805b601f850160051c820191505b81811015610ff057828155600101611b4a565b505050565b815167ffffffffffffffff811115611b7c57611b7c611544565b611b9081611b8a845461198b565b84611b17565b602080601f831160018114611bc55760008415611bad5750858301515b600019600386901b1c1916600185901b178555610ff0565b600085815260208120601f198616915b82811015611bf457888601518255948401946001909101908401611bd5565b5085821015611c125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156103fb576103fb611a6b565b60ff81811683821601908111156103fb576103fb611a6b565b808201808211156103fb576103fb611a6b565b6001600160a01b0386811682528516602082015260a060408201819052600090611c8d9083018661173c565b8281036060840152611c9f818661173c565b90508281036080840152611cb381856114af565b98975050505050505050565b600060208284031215611cd157600080fd5b81516114848161144e565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611d16908301846114af565b97965050505050505056fea26469706673582212204298265700f4c1df4faa0e72b8a95a93ec06f34f0dc5cef4c9b961961ba6287c64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001600000000000000000000000003884c2e833c33bc3790fddd35de340c81c92f92600000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000144e657720496d61676520636f6c6c656374696f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000034e494300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5378586f4c67746635726e7a31333753455065344133764d736a6338446546414b62676f744c615a53676e670000000000000000000000