{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061176b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101d0578063b88d4fde146101e3578063c87b56dd146101f6578063e985e9c51461020957600080fd5b80636352211e1461019457806370a08231146101a757806395d89b41146101c857600080fd5b8063095ea7b3116100bd578063095ea7b31461015957806323b872dd1461016e57806342842e0e1461018157600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611259565b610252565b60405190151581526020015b60405180910390f35b610114610337565b60405161010391906112ec565b61013461012f3660046112ff565b6103c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610103565b61016c610167366004611341565b6103fd565b005b61016c61017c36600461136b565b61058e565b61016c61018f36600461136b565b61062f565b6101346101a23660046112ff565b61064a565b6101ba6101b53660046113a7565b6106d6565b604051908152602001610103565b6101146107a4565b61016c6101de3660046113c2565b6107b3565b61016c6101f136600461142d565b6107c2565b6101146102043660046112ff565b61086a565b6100f7610217366004611527565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102e557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061033157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060606580546103469061155a565b80601f01602080910402602001604051908101604052809291908181526020018280546103729061155a565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b5050505050905090565b60006103d4826108de565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006104088261064a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806104f357506104f38133610217565b61057f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016104c1565b610589838361096c565b505050565b6105983382610a0c565b610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f76656400000000000000000000000000000000000060648201526084016104c1565b610589838383610acc565b610589838383604051806020016040528060008152506107c2565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b600073ffffffffffffffffffffffffffffffffffffffff821661077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016104c1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6060606680546103469061155a565b6107be338383610d33565b5050565b6107cc3383610a0c565b610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f76656400000000000000000000000000000000000060648201526084016104c1565b61086484848484610e60565b50505050565b6060610875826108de565b600061088c60408051602081019091526000815290565b905060008151116108ac57604051806020016040528060008152506108d7565b806108b684610f03565b6040516020016108c79291906115ad565b6040516020818303038152906040525b9392505050565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b50565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906109c68261064a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610a188361064a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610a86575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610ac457508373ffffffffffffffffffffffffffffffffffffffff16610aac846103c9565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610aec8261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b73ffffffffffffffffffffffffffffffffffffffff8216610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c1565b610c3c60008261096c565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290610c7290849061160b565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290610cad908490611622565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c1565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610e6b848484610acc565b610e7784848484611038565b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b606081600003610f4657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610f705780610f5a8161163a565b9150610f699050600a836116a1565b9150610f4a565b60008167ffffffffffffffff811115610f8b57610f8b6113fe565b6040519080825280601f01601f191660200182016040528015610fb5576020820181803683370190505b5090505b8415610ac457610fca60018361160b565b9150610fd7600a866116b5565b610fe2906030611622565b60f81b818381518110610ff757610ff76116c9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611031600a866116a1565b9450610fb9565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611220576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906110af9033908990889088906004016116f8565b6020604051808303816000875af1925050508015611108575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261110591810190611741565b60015b6111d5573d808015611136576040519150601f19603f3d011682016040523d82523d6000602084013e61113b565b606091505b5080516000036111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610ac4565b506001949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461096957600080fd5b60006020828403121561126b57600080fd5b81356108d78161122b565b60005b83811015611291578181015183820152602001611279565b838111156108645750506000910152565b600081518084526112ba816020860160208601611276565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108d760208301846112a2565b60006020828403121561131157600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461133c57600080fd5b919050565b6000806040838503121561135457600080fd5b61135d83611318565b946020939093013593505050565b60008060006060848603121561138057600080fd5b61138984611318565b925061139760208501611318565b9150604084013590509250925092565b6000602082840312156113b957600080fd5b6108d782611318565b600080604083850312156113d557600080fd5b6113de83611318565b9150602083013580151581146113f357600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561144357600080fd5b61144c85611318565b935061145a60208601611318565b925060408501359150606085013567ffffffffffffffff8082111561147e57600080fd5b818701915087601f83011261149257600080fd5b8135818111156114a4576114a46113fe565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114ea576114ea6113fe565b816040528281528a602084870101111561150357600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561153a57600080fd5b61154383611318565b915061155160208401611318565b90509250929050565b600181811c9082168061156e57607f821691505b6020821081036115a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600083516115bf818460208801611276565b8351908301906115d3818360208801611276565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561161d5761161d6115dc565b500390565b60008219821115611635576116356115dc565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361166b5761166b6115dc565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826116b0576116b0611672565b500490565b6000826116c4576116c4611672565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261173760808301846112a2565b9695505050505050565b60006020828403121561175357600080fd5b81516108d78161122b56fea164736f6c634300080f000a","sourceMap":"751:14424:33:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101d0578063b88d4fde146101e3578063c87b56dd146101f6578063e985e9c51461020957600080fd5b80636352211e1461019457806370a08231146101a757806395d89b41146101c857600080fd5b8063095ea7b3116100bd578063095ea7b31461015957806323b872dd1461016e57806342842e0e1461018157600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611259565b610252565b60405190151581526020015b60405180910390f35b610114610337565b60405161010391906112ec565b61013461012f3660046112ff565b6103c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610103565b61016c610167366004611341565b6103fd565b005b61016c61017c36600461136b565b61058e565b61016c61018f36600461136b565b61062f565b6101346101a23660046112ff565b61064a565b6101ba6101b53660046113a7565b6106d6565b604051908152602001610103565b6101146107a4565b61016c6101de3660046113c2565b6107b3565b61016c6101f136600461142d565b6107c2565b6101146102043660046112ff565b61086a565b6100f7610217366004611527565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102e557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061033157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060606580546103469061155a565b80601f01602080910402602001604051908101604052809291908181526020018280546103729061155a565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b5050505050905090565b60006103d4826108de565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006104088261064a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806104f357506104f38133610217565b61057f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016104c1565b610589838361096c565b505050565b6105983382610a0c565b610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f76656400000000000000000000000000000000000060648201526084016104c1565b610589838383610acc565b610589838383604051806020016040528060008152506107c2565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b600073ffffffffffffffffffffffffffffffffffffffff821661077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016104c1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6060606680546103469061155a565b6107be338383610d33565b5050565b6107cc3383610a0c565b610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f76656400000000000000000000000000000000000060648201526084016104c1565b61086484848484610e60565b50505050565b6060610875826108de565b600061088c60408051602081019091526000815290565b905060008151116108ac57604051806020016040528060008152506108d7565b806108b684610f03565b6040516020016108c79291906115ad565b6040516020818303038152906040525b9392505050565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b50565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906109c68261064a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610a188361064a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610a86575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610ac457508373ffffffffffffffffffffffffffffffffffffffff16610aac846103c9565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610aec8261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b73ffffffffffffffffffffffffffffffffffffffff8216610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c1565b610c3c60008261096c565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290610c7290849061160b565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290610cad908490611622565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c1565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610e6b848484610acc565b610e7784848484611038565b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b606081600003610f4657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610f705780610f5a8161163a565b9150610f699050600a836116a1565b9150610f4a565b60008167ffffffffffffffff811115610f8b57610f8b6113fe565b6040519080825280601f01601f191660200182016040528015610fb5576020820181803683370190505b5090505b8415610ac457610fca60018361160b565b9150610fd7600a866116b5565b610fe2906030611622565b60f81b818381518110610ff757610ff76116c9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611031600a866116a1565b9450610fb9565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611220576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906110af9033908990889088906004016116f8565b6020604051808303816000875af1925050508015611108575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261110591810190611741565b60015b6111d5573d808015611136576040519150601f19603f3d011682016040523d82523d6000602084013e61113b565b606091505b5080516000036111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610ac4565b506001949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461096957600080fd5b60006020828403121561126b57600080fd5b81356108d78161122b565b60005b83811015611291578181015183820152602001611279565b838111156108645750506000910152565b600081518084526112ba816020860160208601611276565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108d760208301846112a2565b60006020828403121561131157600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461133c57600080fd5b919050565b6000806040838503121561135457600080fd5b61135d83611318565b946020939093013593505050565b60008060006060848603121561138057600080fd5b61138984611318565b925061139760208501611318565b9150604084013590509250925092565b6000602082840312156113b957600080fd5b6108d782611318565b600080604083850312156113d557600080fd5b6113de83611318565b9150602083013580151581146113f357600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561144357600080fd5b61144c85611318565b935061145a60208601611318565b925060408501359150606085013567ffffffffffffffff8082111561147e57600080fd5b818701915087601f83011261149257600080fd5b8135818111156114a4576114a46113fe565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114ea576114ea6113fe565b816040528281528a602084870101111561150357600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561153a57600080fd5b61154383611318565b915061155160208401611318565b90509250929050565b600181811c9082168061156e57607f821691505b6020821081036115a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600083516115bf818460208801611276565b8351908301906115d3818360208801611276565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561161d5761161d6115dc565b500390565b60008219821115611635576116356115dc565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361166b5761166b6115dc565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826116b0576116b0611672565b500490565b6000826116c4576116c4611672565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261173760808301846112a2565b9695505050505050565b60006020828403121561175357600080fd5b81516108d78161122b56fea164736f6c634300080f000a","sourceMap":"751:14424:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:344;;;;;;:::i;:::-;;:::i;:::-;;;611:14:416;;604:22;586:41;;574:2;559:18;1987:344:33;;;;;;;;2931:98;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;1809:42:416;1797:55;;;1779:74;;1767:2;1752:18;4407:167:33;1633:226:416;3928:418:33;;;;;;:::i;:::-;;:::i;:::-;;5084:327;;;;;;:::i;:::-;;:::i;5477:179::-;;;;;;:::i;:::-;;:::i;2651:218::-;;;;;;:::i;:::-;;:::i;2390:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2994:25:416;;;2982:2;2967:18;2390:204:33;2848:177:416;3093:102:33;;;:::i;4641:153::-;;;;;;:::i;:::-;;:::i;5722:315::-;;;;;;:::i;:::-;;:::i;3261:276::-;;;;;;:::i;:::-;;:::i;4860:162::-;;;;;;:::i;:::-;4980:25;;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162;1987:344;2111:4;2146:51;;;2161:36;2146:51;;:126;;-1:-1:-1;2213:59:33;;;2228:44;2213:59;2146:126;:178;;;-1:-1:-1;1183:36:43;1168:51;;;;2288:36:33;2127:197;1987:344;-1:-1:-1;;1987:344:33:o;2931:98::-;2985:13;3017:5;3010:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:33;;;;:15;:24;;;;;;;;;4407:167::o;3928:418::-;4008:13;4024:34;4050:7;4024:25;:34::i;:::-;4008:50;;4082:5;4076:11;;:2;:11;;;4068:57;;;;;;;5682:2:416;4068:57:33;;;5664:21:416;5721:2;5701:18;;;5694:30;5760:34;5740:18;;;5733:62;5831:3;5811:18;;;5804:31;5852:19;;4068:57:33;;;;;;;;;929:10:39;4157:21:33;;;;;:62;;-1:-1:-1;4182:37:33;4199:5;929:10:39;4860:162:33;:::i;4182:37::-;4136:171;;;;;;;6084:2:416;4136:171:33;;;6066:21:416;6123:2;6103:18;;;6096:30;6162:34;6142:18;;;6135:62;6233:32;6213:18;;;6206:60;6283:19;;4136:171:33;5882:426:416;4136:171:33;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3998:348;3928:418;;:::o;5084:327::-;5273:41;929:10:39;5306:7:33;5273:18;:41::i;:::-;5265:100;;;;;;;6515:2:416;5265:100:33;;;6497:21:416;6554:2;6534:18;;;6527:30;6593:34;6573:18;;;6566:62;6664:16;6644:18;;;6637:44;6698:19;;5265:100:33;6313:410:416;5265:100:33;5376:28;5386:4;5392:2;5396:7;5376:9;:28::i;5477:179::-;5610:39;5627:4;5633:2;5637:7;5610:39;;;;;;;;;;;;:16;:39::i;2651:218::-;2723:7;2758:16;;;:7;:16;;;;;;;;;2784:56;;;;;;;6930:2:416;2784:56:33;;;6912:21:416;6969:2;6949:18;;;6942:30;7008:26;6988:18;;;6981:54;7052:18;;2784:56:33;6728:348:416;2390:204:33;2462:7;2489:19;;;2481:73;;;;;;;7283:2:416;2481:73:33;;;7265:21:416;7322:2;7302:18;;;7295:30;7361:34;7341:18;;;7334:62;7432:11;7412:18;;;7405:39;7461:19;;2481:73:33;7081:405:416;2481:73:33;-1:-1:-1;2571:16:33;;;;;;:9;:16;;;;;;;2390:204::o;3093:102::-;3149:13;3181:7;3174:14;;;;;:::i;4641:153::-;4735:52;929:10:39;4768:8:33;4778;4735:18;:52::i;:::-;4641:153;;:::o;5722:315::-;5890:41;929:10:39;5923:7:33;5890:18;:41::i;:::-;5882:100;;;;;;;6515:2:416;5882:100:33;;;6497:21:416;6554:2;6534:18;;;6527:30;6593:34;6573:18;;;6566:62;6664:16;6644:18;;;6637:44;6698:19;;5882:100:33;6313:410:416;5882:100:33;5992:38;6006:4;6012:2;6016:7;6025:4;5992:13;:38::i;:::-;5722:315;;;;:::o;3261:276::-;3334:13;3359:23;3374:7;3359:14;:23::i;:::-;3393:21;3417:10;3855:9;;;;;;;;;-1:-1:-1;3855:9:33;;;3779:92;3417:10;3393:34;;3468:1;3450:7;3444:21;:25;:86;;;;;;;;;;;;;;;;;3496:7;3505:18;:7;:16;:18::i;:::-;3479:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3444:86;3437:93;3261:276;-1:-1:-1;;;3261:276:33:o;12173:133::-;7571:4;7594:16;;;:7;:16;;;;;;:30;:16;12246:53;;;;;;;6930:2:416;12246:53:33;;;6912:21:416;6969:2;6949:18;;;6942:30;7008:26;6988:18;;;6981:54;7052:18;;12246:53:33;6728:348:416;12246:53:33;12173:133;:::o;11464:182::-;11538:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;11591:34;11538:24;11591:25;:34::i;:::-;11582:57;;;;;;;;;;;;11464:182;;:::o;7789:272::-;7882:4;7898:13;7914:34;7940:7;7914:25;:34::i;:::-;7898:50;;7977:5;7966:16;;:7;:16;;;:52;;;-1:-1:-1;4980:25:33;;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7986:32;7966:87;;;;8046:7;8022:31;;:20;8034:7;8022:11;:20::i;:::-;:31;;;7966:87;7958:96;7789:272;-1:-1:-1;;;;7789:272:33:o;10736:616::-;10901:4;10863:42;;:34;10889:7;10863:25;:34::i;:::-;:42;;;10855:92;;;;;;;8168:2:416;10855:92:33;;;8150:21:416;8207:2;8187:18;;;8180:30;8246:34;8226:18;;;8219:62;8317:7;8297:18;;;8290:35;8342:19;;10855:92:33;7966:401:416;10855:92:33;10965:16;;;10957:65;;;;;;;8574:2:416;10957:65:33;;;8556:21:416;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;8723:6;8703:18;;;8696:34;8747:19;;10957:65:33;8372:400:416;10957:65:33;11134:29;11151:1;11155:7;11134:8;:29::i;:::-;11174:15;;;;;;;:9;:15;;;;;:20;;11193:1;;11174:15;:20;;11193:1;;11174:20;:::i;:::-;;;;-1:-1:-1;;11204:13:33;;;;;;;:9;:13;;;;;:18;;11221:1;;11204:13;:18;;11221:1;;11204:18;:::i;:::-;;;;-1:-1:-1;;11232:16:33;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;;11269:27;;11232:16;;11269:27;;;;;;;3998:348;3928:418;;:::o;11782:307::-;11932:8;11923:17;;:5;:17;;;11915:55;;;;;;;9431:2:416;11915:55:33;;;9413:21:416;9470:2;9450:18;;;9443:30;9509:27;9489:18;;;9482:55;9554:18;;11915:55:33;9229:349:416;11915:55:33;11980:25;;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;12041:41;;586::416;;;12041::33;;559:18:416;12041:41:33;;;;;;;11782:307;;;:::o;6898:305::-;7048:28;7058:4;7064:2;7068:7;7048:9;:28::i;:::-;7094:47;7117:4;7123:2;7127:7;7136:4;7094:22;:47::i;:::-;7086:110;;;;;;;9785:2:416;7086:110:33;;;9767:21:416;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:20;9914:18;;;9907:48;9972:19;;7086:110:33;9583:414:416;403:703:40;459:13;676:5;685:1;676:10;672:51;;-1:-1:-1;;702:10:40;;;;;;;;;;;;;;;;;;403:703::o;672:51::-;747:5;732:12;786:75;793:9;;786:75;;818:8;;;;:::i;:::-;;-1:-1:-1;840:10:40;;-1:-1:-1;848:2:40;840:10;;:::i;:::-;;;786:75;;;870:19;902:6;892:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;892:17:40;;870:39;;919:150;926:10;;919:150;;952:11;962:1;952:11;;:::i;:::-;;-1:-1:-1;1020:10:40;1028:2;1020:5;:10;:::i;:::-;1007:24;;:2;:24;:::i;:::-;994:39;;977:6;984;977:14;;;;;;;;:::i;:::-;;;;:56;;;;;;;;;;-1:-1:-1;1047:11:40;1056:2;1047:11;;:::i;:::-;;;919:150;;12858:853:33;13007:4;13027:13;;;1476:19:38;:23;13023:682:33;;13062:82;;;;;:47;;;;;;:82;;929:10:39;;13124:4:33;;13130:7;;13139:4;;13062:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13062:82:33;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13058:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13322:6;:13;13339:1;13322:18;13318:321;;13364:60;;;;;9785:2:416;13364:60:33;;;9767:21:416;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:20;9914:18;;;9907:48;9972:19;;13364:60:33;9583:414:416;13318:321:33;13591:6;13585:13;13576:6;13572:2;13568:15;13561:38;13058:595;13194:62;;13204:52;13194:62;;-1:-1:-1;13187:69:33;;13023:682;-1:-1:-1;13690:4:33;12858:853;;;;;;:::o;14:177:416:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:258::-;710:1;720:113;734:6;731:1;728:13;720:113;;;810:11;;;804:18;791:11;;;784:39;756:2;749:10;720:113;;;851:6;848:1;845:13;842:48;;;-1:-1:-1;;886:1:416;868:16;;861:27;638:258::o;901:317::-;943:3;981:5;975:12;1008:6;1003:3;996:19;1024:63;1080:6;1073:4;1068:3;1064:14;1057:4;1050:5;1046:16;1024:63;:::i;:::-;1132:2;1120:15;1137:66;1116:88;1107:98;;;;1207:4;1103:109;;901:317;-1:-1:-1;;901:317:416:o;1223:220::-;1372:2;1361:9;1354:21;1335:4;1392:45;1433:2;1422:9;1418:18;1410:6;1392:45;:::i;1448:180::-;1507:6;1560:2;1548:9;1539:7;1535:23;1531:32;1528:52;;;1576:1;1573;1566:12;1528:52;-1:-1:-1;1599:23:416;;1448:180;-1:-1:-1;1448:180:416:o;1864:196::-;1932:20;;1992:42;1981:54;;1971:65;;1961:93;;2050:1;2047;2040:12;1961:93;1864:196;;;:::o;2065:254::-;2133:6;2141;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;:::-;2223:39;2309:2;2294:18;;;;2281:32;;-1:-1:-1;;;2065:254:416:o;2324:328::-;2401:6;2409;2417;2470:2;2458:9;2449:7;2445:23;2441:32;2438:52;;;2486:1;2483;2476:12;2438:52;2509:29;2528:9;2509:29;:::i;:::-;2499:39;;2557:38;2591:2;2580:9;2576:18;2557:38;:::i;:::-;2547:48;;2642:2;2631:9;2627:18;2614:32;2604:42;;2324:328;;;;;:::o;2657:186::-;2716:6;2769:2;2757:9;2748:7;2744:23;2740:32;2737:52;;;2785:1;2782;2775:12;2737:52;2808:29;2827:9;2808:29;:::i;3030:347::-;3095:6;3103;3156:2;3144:9;3135:7;3131:23;3127:32;3124:52;;;3172:1;3169;3162:12;3124:52;3195:29;3214:9;3195:29;:::i;:::-;3185:39;;3274:2;3263:9;3259:18;3246:32;3321:5;3314:13;3307:21;3300:5;3297:32;3287:60;;3343:1;3340;3333:12;3287:60;3366:5;3356:15;;;3030:347;;;;;:::o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;3571:1197;3666:6;3674;3682;3690;3743:3;3731:9;3722:7;3718:23;3714:33;3711:53;;;3760:1;3757;3750:12;3711:53;3783:29;3802:9;3783:29;:::i;:::-;3773:39;;3831:38;3865:2;3854:9;3850:18;3831:38;:::i;:::-;3821:48;;3916:2;3905:9;3901:18;3888:32;3878:42;;3971:2;3960:9;3956:18;3943:32;3994:18;4035:2;4027:6;4024:14;4021:34;;;4051:1;4048;4041:12;4021:34;4089:6;4078:9;4074:22;4064:32;;4134:7;4127:4;4123:2;4119:13;4115:27;4105:55;;4156:1;4153;4146:12;4105:55;4192:2;4179:16;4214:2;4210;4207:10;4204:36;;;4220:18;;:::i;:::-;4354:2;4348:9;4416:4;4408:13;;4259:66;4404:22;;;4428:2;4400:31;4396:40;4384:53;;;4452:18;;;4472:22;;;4449:46;4446:72;;;4498:18;;:::i;:::-;4538:10;4534:2;4527:22;4573:2;4565:6;4558:18;4613:7;4608:2;4603;4599;4595:11;4591:20;4588:33;4585:53;;;4634:1;4631;4624:12;4585:53;4690:2;4685;4681;4677:11;4672:2;4664:6;4660:15;4647:46;4735:1;4730:2;4725;4717:6;4713:15;4709:24;4702:35;4756:6;4746:16;;;;;;;3571:1197;;;;;;;:::o;4773:260::-;4841:6;4849;4902:2;4890:9;4881:7;4877:23;4873:32;4870:52;;;4918:1;4915;4908:12;4870:52;4941:29;4960:9;4941:29;:::i;:::-;4931:39;;4989:38;5023:2;5012:9;5008:18;4989:38;:::i;:::-;4979:48;;4773:260;;;;;:::o;5038:437::-;5117:1;5113:12;;;;5160;;;5181:61;;5235:4;5227:6;5223:17;5213:27;;5181:61;5288:2;5280:6;5277:14;5257:18;5254:38;5251:218;;5325:77;5322:1;5315:88;5426:4;5423:1;5416:15;5454:4;5451:1;5444:15;5251:218;;5038:437;;;:::o;7491:470::-;7670:3;7708:6;7702:13;7724:53;7770:6;7765:3;7758:4;7750:6;7746:17;7724:53;:::i;:::-;7840:13;;7799:16;;;;7862:57;7840:13;7799:16;7896:4;7884:17;;7862:57;:::i;:::-;7935:20;;7491:470;-1:-1:-1;;;;7491:470:416:o;8777:184::-;8829:77;8826:1;8819:88;8926:4;8923:1;8916:15;8950:4;8947:1;8940:15;8966:125;9006:4;9034:1;9031;9028:8;9025:34;;;9039:18;;:::i;:::-;-1:-1:-1;9076:9:416;;8966:125::o;9096:128::-;9136:3;9167:1;9163:6;9160:1;9157:13;9154:39;;;9173:18;;:::i;:::-;-1:-1:-1;9209:9:416;;9096:128::o;10002:195::-;10041:3;10072:66;10065:5;10062:77;10059:103;;10142:18;;:::i;:::-;-1:-1:-1;10189:1:416;10178:13;;10002:195::o;10202:184::-;10254:77;10251:1;10244:88;10351:4;10348:1;10341:15;10375:4;10372:1;10365:15;10391:120;10431:1;10457;10447:35;;10462:18;;:::i;:::-;-1:-1:-1;10496:9:416;;10391:120::o;10516:112::-;10548:1;10574;10564:35;;10579:18;;:::i;:::-;-1:-1:-1;10613:9:416;;10516:112::o;10633:184::-;10685:77;10682:1;10675:88;10782:4;10779:1;10772:15;10806:4;10803:1;10796:15;10822:512;11016:4;11045:42;11126:2;11118:6;11114:15;11103:9;11096:34;11178:2;11170:6;11166:15;11161:2;11150:9;11146:18;11139:43;;11218:6;11213:2;11202:9;11198:18;11191:34;11261:3;11256:2;11245:9;11241:18;11234:31;11282:46;11323:3;11312:9;11308:19;11300:6;11282:46;:::i;:::-;11274:54;10822:512;-1:-1:-1;;;;;;10822:512:416:o;11339:249::-;11408:6;11461:2;11449:9;11440:7;11436:23;11432:32;11429:52;;;11477:1;11474;11467:12;11429:52;11509:9;11503:16;11528:30;11552:5;11528:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"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\":\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":\"ERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"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"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":"ERC721Upgradeable"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47581,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47584,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":49112,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":49920,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":47754,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":47756,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":47760,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":47764,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":47768,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":47774,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":48616,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol","id":48618,"exportedSymbols":{"AddressUpgradeable":[49071],"ContextUpgradeable":[49113],"ERC165Upgradeable":[49921],"ERC721Upgradeable":[48617],"IERC165Upgradeable":[49933],"IERC721MetadataUpgradeable":[48828],"IERC721ReceiverUpgradeable":[48635],"IERC721Upgradeable":[48751],"Initializable":[47725],"StringsUpgradeable":[49339]},"nodeType":"SourceUnit","src":"107:15069:33","nodes":[{"id":47727,"nodeType":"PragmaDirective","src":"107:23:33","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47728,"nodeType":"ImportDirective","src":"132:34:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol","file":"./IERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":48752,"symbolAliases":[],"unitAlias":""},{"id":47729,"nodeType":"ImportDirective","src":"167:42:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol","file":"./IERC721ReceiverUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":48636,"symbolAliases":[],"unitAlias":""},{"id":47730,"nodeType":"ImportDirective","src":"210:53:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","file":"./extensions/IERC721MetadataUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":48829,"symbolAliases":[],"unitAlias":""},{"id":47731,"nodeType":"ImportDirective","src":"264:44:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":49072,"symbolAliases":[],"unitAlias":""},{"id":47732,"nodeType":"ImportDirective","src":"309:44:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","file":"../../utils/ContextUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":49114,"symbolAliases":[],"unitAlias":""},{"id":47733,"nodeType":"ImportDirective","src":"354:44:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol","file":"../../utils/StringsUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":49340,"symbolAliases":[],"unitAlias":""},{"id":47734,"nodeType":"ImportDirective","src":"399:57:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol","file":"../../utils/introspection/ERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":49922,"symbolAliases":[],"unitAlias":""},{"id":47735,"nodeType":"ImportDirective","src":"457:45:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":48618,"sourceUnit":47726,"symbolAliases":[],"unitAlias":""},{"id":48617,"nodeType":"ContractDefinition","src":"751:14424:33","nodes":[{"id":47749,"nodeType":"UsingForDirective","src":"888:37:33","nodes":[],"global":false,"libraryName":{"id":47747,"name":"AddressUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":49071,"src":"894:18:33"},"typeName":{"id":47748,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":47752,"nodeType":"UsingForDirective","src":"930:37:33","nodes":[],"global":false,"libraryName":{"id":47750,"name":"StringsUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":49339,"src":"936:18:33"},"typeName":{"id":47751,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":47754,"nodeType":"VariableDeclaration","src":"991:20:33","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1006:5:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":47753,"name":"string","nodeType":"ElementaryTypeName","src":"991:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":47756,"nodeType":"VariableDeclaration","src":"1038:22:33","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1053:7:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":47755,"name":"string","nodeType":"ElementaryTypeName","src":"1038:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":47760,"nodeType":"VariableDeclaration","src":"1113:43:33","nodes":[],"constant":false,"mutability":"mutable","name":"_owners","nameLocation":"1149:7:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":47759,"keyType":{"id":47757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1121:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1113:27:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":47758,"name":"address","nodeType":"ElementaryTypeName","src":"1132:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":47764,"nodeType":"VariableDeclaration","src":"1207:45:33","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1243:9:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47763,"keyType":{"id":47761,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1207:27:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":47762,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":47768,"nodeType":"VariableDeclaration","src":"1308:51:33","nodes":[],"constant":false,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1344:15:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":47767,"keyType":{"id":47765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1308:27:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":47766,"name":"address","nodeType":"ElementaryTypeName","src":"1327:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":47774,"nodeType":"VariableDeclaration","src":"1414:71:33","nodes":[],"constant":false,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1467:18:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":47773,"keyType":{"id":47769,"name":"address","nodeType":"ElementaryTypeName","src":"1422:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1414:44:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":47772,"keyType":{"id":47770,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1433:24:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":47771,"name":"bool","nodeType":"ElementaryTypeName","src":"1452:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"id":47790,"nodeType":"FunctionDefinition","src":"1605:149:33","nodes":[],"body":{"id":47789,"nodeType":"Block","src":"1698:56:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":47785,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47777,"src":"1732:5:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47786,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47779,"src":"1739:7:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":47784,"name":"__ERC721_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"1708:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":47787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1708:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47788,"nodeType":"ExpressionStatement","src":"1708:39:33"}]},"documentation":{"id":47775,"nodeType":"StructuredDocumentation","src":"1492:108:33","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"implemented":true,"kind":"function","modifiers":[{"id":47782,"kind":"modifierInvocation","modifierName":{"id":47781,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47688,"src":"1681:16:33"},"nodeType":"ModifierInvocation","src":"1681:16:33"}],"name":"__ERC721_init","nameLocation":"1614:13:33","parameters":{"id":47780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47777,"mutability":"mutable","name":"name_","nameLocation":"1642:5:33","nodeType":"VariableDeclaration","scope":47790,"src":"1628:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47776,"name":"string","nodeType":"ElementaryTypeName","src":"1628:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47779,"mutability":"mutable","name":"symbol_","nameLocation":"1663:7:33","nodeType":"VariableDeclaration","scope":47790,"src":"1649:21:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47778,"name":"string","nodeType":"ElementaryTypeName","src":"1649:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1627:44:33"},"returnParameters":{"id":47783,"nodeType":"ParameterList","parameters":[],"src":"1698:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47808,"nodeType":"FunctionDefinition","src":"1760:160:33","nodes":[],"body":{"id":47807,"nodeType":"Block","src":"1863:57:33","nodes":[],"statements":[{"expression":{"id":47801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47799,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47754,"src":"1873:5:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47800,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47792,"src":"1881:5:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1873:13:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":47802,"nodeType":"ExpressionStatement","src":"1873:13:33"},{"expression":{"id":47805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47803,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47756,"src":"1896:7:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47804,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47794,"src":"1906:7:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1896:17:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":47806,"nodeType":"ExpressionStatement","src":"1896:17:33"}]},"implemented":true,"kind":"function","modifiers":[{"id":47797,"kind":"modifierInvocation","modifierName":{"id":47796,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47688,"src":"1846:16:33"},"nodeType":"ModifierInvocation","src":"1846:16:33"}],"name":"__ERC721_init_unchained","nameLocation":"1769:23:33","parameters":{"id":47795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47792,"mutability":"mutable","name":"name_","nameLocation":"1807:5:33","nodeType":"VariableDeclaration","scope":47808,"src":"1793:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47791,"name":"string","nodeType":"ElementaryTypeName","src":"1793:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47794,"mutability":"mutable","name":"symbol_","nameLocation":"1828:7:33","nodeType":"VariableDeclaration","scope":47808,"src":"1814:21:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47793,"name":"string","nodeType":"ElementaryTypeName","src":"1814:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1792:44:33"},"returnParameters":{"id":47798,"nodeType":"ParameterList","parameters":[],"src":"1863:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47839,"nodeType":"FunctionDefinition","src":"1987:344:33","nodes":[],"body":{"id":47838,"nodeType":"Block","src":"2117:214:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":47824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47819,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47811,"src":"2146:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":47821,"name":"IERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48751,"src":"2166:18:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$48751_$","typeString":"type(contract IERC721Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$48751_$","typeString":"type(contract IERC721Upgradeable)"}],"id":47820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2161:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Upgradeable_$48751","typeString":"type(contract IERC721Upgradeable)"}},"id":47823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2161:36:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2146:51:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":47830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47825,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47811,"src":"2213:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":47827,"name":"IERC721MetadataUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"2233:26:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$48828_$","typeString":"type(contract IERC721MetadataUpgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$48828_$","typeString":"type(contract IERC721MetadataUpgradeable)"}],"id":47826,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2228:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2228:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721MetadataUpgradeable_$48828","typeString":"type(contract IERC721MetadataUpgradeable)"}},"id":47829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2228:44:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2213:59:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2146:126:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":47834,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47811,"src":"2312:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":47832,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2288:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Upgradeable_$48617_$","typeString":"type(contract super ERC721Upgradeable)"}},"id":47833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"2288:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":47835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2288:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2146:178:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47818,"id":47837,"nodeType":"Return","src":"2127:197:33"}]},"baseFunctions":[49915,49932],"documentation":{"id":47809,"nodeType":"StructuredDocumentation","src":"1926:56:33","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1996:17:33","overrides":{"id":47815,"nodeType":"OverrideSpecifier","overrides":[{"id":47813,"name":"ERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":49921,"src":"2063:17:33"},{"id":47814,"name":"IERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":49933,"src":"2082:18:33"}],"src":"2054:47:33"},"parameters":{"id":47812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47811,"mutability":"mutable","name":"interfaceId","nameLocation":"2021:11:33","nodeType":"VariableDeclaration","scope":47839,"src":"2014:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":47810,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2014:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2013:20:33"},"returnParameters":{"id":47818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47839,"src":"2111:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47816,"name":"bool","nodeType":"ElementaryTypeName","src":"2111:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2110:6:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47863,"nodeType":"FunctionDefinition","src":"2390:204:33","nodes":[],"body":{"id":47862,"nodeType":"Block","src":"2471:123:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47849,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47842,"src":"2489:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2506:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2498:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47850,"name":"address","nodeType":"ElementaryTypeName","src":"2498:7:33","typeDescriptions":{}}},"id":47853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2498:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2489:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":47855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2510:43:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":47848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2481:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2481:73:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47857,"nodeType":"ExpressionStatement","src":"2481:73:33"},{"expression":{"baseExpression":{"id":47858,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"2571:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47860,"indexExpression":{"id":47859,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47842,"src":"2581:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2571:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":47847,"id":47861,"nodeType":"Return","src":"2564:23:33"}]},"baseFunctions":[48676],"documentation":{"id":47840,"nodeType":"StructuredDocumentation","src":"2337:48:33","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2399:9:33","overrides":{"id":47844,"nodeType":"OverrideSpecifier","overrides":[],"src":"2444:8:33"},"parameters":{"id":47843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47842,"mutability":"mutable","name":"owner","nameLocation":"2417:5:33","nodeType":"VariableDeclaration","scope":47863,"src":"2409:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47841,"name":"address","nodeType":"ElementaryTypeName","src":"2409:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2408:15:33"},"returnParameters":{"id":47847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47863,"src":"2462:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47845,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2461:9:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47891,"nodeType":"FunctionDefinition","src":"2651:218:33","nodes":[],"body":{"id":47890,"nodeType":"Block","src":"2732:137:33","nodes":[],"statements":[{"assignments":[47873],"declarations":[{"constant":false,"id":47873,"mutability":"mutable","name":"owner","nameLocation":"2750:5:33","nodeType":"VariableDeclaration","scope":47890,"src":"2742:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47872,"name":"address","nodeType":"ElementaryTypeName","src":"2742:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47877,"initialValue":{"baseExpression":{"id":47874,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"2758:7:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":47876,"indexExpression":{"id":47875,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47866,"src":"2766:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:16:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2742:32:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47879,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"2792:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2801:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47880,"name":"address","nodeType":"ElementaryTypeName","src":"2801:7:33","typeDescriptions":{}}},"id":47883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2801:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2792:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":47885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2813:26:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":47878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2784:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2784:56:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47887,"nodeType":"ExpressionStatement","src":"2784:56:33"},{"expression":{"id":47888,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"2857:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47871,"id":47889,"nodeType":"Return","src":"2850:12:33"}]},"baseFunctions":[48684],"documentation":{"id":47864,"nodeType":"StructuredDocumentation","src":"2600:46:33","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2660:7:33","overrides":{"id":47868,"nodeType":"OverrideSpecifier","overrides":[],"src":"2705:8:33"},"parameters":{"id":47867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47866,"mutability":"mutable","name":"tokenId","nameLocation":"2676:7:33","nodeType":"VariableDeclaration","scope":47891,"src":"2668:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47865,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:17:33"},"returnParameters":{"id":47871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47891,"src":"2723:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47869,"name":"address","nodeType":"ElementaryTypeName","src":"2723:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2722:9:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47901,"nodeType":"FunctionDefinition","src":"2931:98:33","nodes":[],"body":{"id":47900,"nodeType":"Block","src":"3000:29:33","nodes":[],"statements":[{"expression":{"id":47898,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47754,"src":"3017:5:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":47897,"id":47899,"nodeType":"Return","src":"3010:12:33"}]},"baseFunctions":[48813],"documentation":{"id":47892,"nodeType":"StructuredDocumentation","src":"2875:51:33","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2940:4:33","overrides":{"id":47894,"nodeType":"OverrideSpecifier","overrides":[],"src":"2967:8:33"},"parameters":{"id":47893,"nodeType":"ParameterList","parameters":[],"src":"2944:2:33"},"returnParameters":{"id":47897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47901,"src":"2985:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47895,"name":"string","nodeType":"ElementaryTypeName","src":"2985:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2984:15:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47911,"nodeType":"FunctionDefinition","src":"3093:102:33","nodes":[],"body":{"id":47910,"nodeType":"Block","src":"3164:31:33","nodes":[],"statements":[{"expression":{"id":47908,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47756,"src":"3181:7:33","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":47907,"id":47909,"nodeType":"Return","src":"3174:14:33"}]},"baseFunctions":[48819],"documentation":{"id":47902,"nodeType":"StructuredDocumentation","src":"3035:53:33","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"3102:6:33","overrides":{"id":47904,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:33"},"parameters":{"id":47903,"nodeType":"ParameterList","parameters":[],"src":"3108:2:33"},"returnParameters":{"id":47907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47911,"src":"3149:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47905,"name":"string","nodeType":"ElementaryTypeName","src":"3149:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3148:15:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47950,"nodeType":"FunctionDefinition","src":"3261:276:33","nodes":[],"body":{"id":47949,"nodeType":"Block","src":"3349:188:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":47921,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47914,"src":"3374:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47920,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48527,"src":"3359:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":47922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3359:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47923,"nodeType":"ExpressionStatement","src":"3359:23:33"},{"assignments":[47925],"declarations":[{"constant":false,"id":47925,"mutability":"mutable","name":"baseURI","nameLocation":"3407:7:33","nodeType":"VariableDeclaration","scope":47949,"src":"3393:21:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47924,"name":"string","nodeType":"ElementaryTypeName","src":"3393:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":47928,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47926,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47959,"src":"3417:8:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":47927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3393:34:33"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":47931,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47925,"src":"3450:7:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":47930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3444:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":47929,"name":"bytes","nodeType":"ElementaryTypeName","src":"3444:5:33","typeDescriptions":{}}},"id":47932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3444:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3444:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":47934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3468:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":47946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3528:2:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":47947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:86:33","trueExpression":{"arguments":[{"arguments":[{"id":47940,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47925,"src":"3496:7:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47941,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47914,"src":"3505:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":49201,"src":"3505:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":47943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3505:18:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3479:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3479:16:33","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3479:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3472:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47936,"name":"string","nodeType":"ElementaryTypeName","src":"3472:6:33","typeDescriptions":{}}},"id":47945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3472:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":47919,"id":47948,"nodeType":"Return","src":"3437:93:33"}]},"baseFunctions":[48827],"documentation":{"id":47912,"nodeType":"StructuredDocumentation","src":"3201:55:33","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3270:8:33","overrides":{"id":47916,"nodeType":"OverrideSpecifier","overrides":[],"src":"3316:8:33"},"parameters":{"id":47915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47914,"mutability":"mutable","name":"tokenId","nameLocation":"3287:7:33","nodeType":"VariableDeclaration","scope":47950,"src":"3279:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47913,"name":"uint256","nodeType":"ElementaryTypeName","src":"3279:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3278:17:33"},"returnParameters":{"id":47919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47950,"src":"3334:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47917,"name":"string","nodeType":"ElementaryTypeName","src":"3334:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3333:15:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47959,"nodeType":"FunctionDefinition","src":"3779:92:33","nodes":[],"body":{"id":47958,"nodeType":"Block","src":"3845:26:33","nodes":[],"statements":[{"expression":{"hexValue":"","id":47956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3862:2:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":47955,"id":47957,"nodeType":"Return","src":"3855:9:33"}]},"documentation":{"id":47951,"nodeType":"StructuredDocumentation","src":"3543:231:33","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3788:8:33","parameters":{"id":47952,"nodeType":"ParameterList","parameters":[],"src":"3796:2:33"},"returnParameters":{"id":47955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47959,"src":"3830:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47953,"name":"string","nodeType":"ElementaryTypeName","src":"3830:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3829:15:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48002,"nodeType":"FunctionDefinition","src":"3928:418:33","nodes":[],"body":{"id":48001,"nodeType":"Block","src":"3998:348:33","nodes":[],"statements":[{"assignments":[47969],"declarations":[{"constant":false,"id":47969,"mutability":"mutable","name":"owner","nameLocation":"4016:5:33","nodeType":"VariableDeclaration","scope":48001,"src":"4008:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47968,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47974,"initialValue":{"arguments":[{"id":47972,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47964,"src":"4050:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47970,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"4024:17:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$48617_$","typeString":"type(contract ERC721Upgradeable)"}},"id":47971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":47891,"src":"4024:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":47973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4024:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4008:50:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47976,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47962,"src":"4076:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":47977,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47969,"src":"4082:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4076:11:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":47979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4089:35:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":47975,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4068:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4068:57:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47981,"nodeType":"ExpressionStatement","src":"4068:57:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47983,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"4157:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4157:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47985,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47969,"src":"4173:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4157:21:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":47988,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47969,"src":"4199:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":47989,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"4206:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4206:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47987,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"4182:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":47991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4182:37:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4157:62:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":47993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4233:64:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""},"value":"ERC721: approve caller is not token owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""}],"id":47982,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4136:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4136:171:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47995,"nodeType":"ExpressionStatement","src":"4136:171:33"},{"expression":{"arguments":[{"id":47997,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47962,"src":"4327:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47998,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47964,"src":"4331:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47996,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48481,"src":"4318:8:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":47999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4318:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48000,"nodeType":"ExpressionStatement","src":"4318:21:33"}]},"baseFunctions":[48724],"documentation":{"id":47960,"nodeType":"StructuredDocumentation","src":"3877:46:33","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3937:7:33","overrides":{"id":47966,"nodeType":"OverrideSpecifier","overrides":[],"src":"3989:8:33"},"parameters":{"id":47965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47962,"mutability":"mutable","name":"to","nameLocation":"3953:2:33","nodeType":"VariableDeclaration","scope":48002,"src":"3945:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47961,"name":"address","nodeType":"ElementaryTypeName","src":"3945:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47964,"mutability":"mutable","name":"tokenId","nameLocation":"3965:7:33","nodeType":"VariableDeclaration","scope":48002,"src":"3957:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47963,"name":"uint256","nodeType":"ElementaryTypeName","src":"3957:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3944:29:33"},"returnParameters":{"id":47967,"nodeType":"ParameterList","parameters":[],"src":"3998:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48020,"nodeType":"FunctionDefinition","src":"4407:167:33","nodes":[],"body":{"id":48019,"nodeType":"Block","src":"4492:82:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48012,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48005,"src":"4517:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48011,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48527,"src":"4502:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":48013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4502:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48014,"nodeType":"ExpressionStatement","src":"4502:23:33"},{"expression":{"baseExpression":{"id":48015,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"4543:15:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48017,"indexExpression":{"id":48016,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48005,"src":"4559:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4543:24:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48010,"id":48018,"nodeType":"Return","src":"4536:31:33"}]},"baseFunctions":[48740],"documentation":{"id":48003,"nodeType":"StructuredDocumentation","src":"4352:50:33","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4416:11:33","overrides":{"id":48007,"nodeType":"OverrideSpecifier","overrides":[],"src":"4465:8:33"},"parameters":{"id":48006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48005,"mutability":"mutable","name":"tokenId","nameLocation":"4436:7:33","nodeType":"VariableDeclaration","scope":48020,"src":"4428:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48004,"name":"uint256","nodeType":"ElementaryTypeName","src":"4428:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4427:17:33"},"returnParameters":{"id":48010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48020,"src":"4483:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48008,"name":"address","nodeType":"ElementaryTypeName","src":"4483:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4482:9:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":48037,"nodeType":"FunctionDefinition","src":"4641:153:33","nodes":[],"body":{"id":48036,"nodeType":"Block","src":"4725:69:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48030,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"4754:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4754:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48032,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48023,"src":"4768:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48033,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"4778:8:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48029,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48513,"src":"4735:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":48034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4735:52:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48035,"nodeType":"ExpressionStatement","src":"4735:52:33"}]},"baseFunctions":[48732],"documentation":{"id":48021,"nodeType":"StructuredDocumentation","src":"4580:56:33","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4650:17:33","overrides":{"id":48027,"nodeType":"OverrideSpecifier","overrides":[],"src":"4716:8:33"},"parameters":{"id":48026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48023,"mutability":"mutable","name":"operator","nameLocation":"4676:8:33","nodeType":"VariableDeclaration","scope":48037,"src":"4668:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48022,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48025,"mutability":"mutable","name":"approved","nameLocation":"4691:8:33","nodeType":"VariableDeclaration","scope":48037,"src":"4686:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48024,"name":"bool","nodeType":"ElementaryTypeName","src":"4686:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4667:33:33"},"returnParameters":{"id":48028,"nodeType":"ParameterList","parameters":[],"src":"4725:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48055,"nodeType":"FunctionDefinition","src":"4860:162:33","nodes":[],"body":{"id":48054,"nodeType":"Block","src":"4963:59:33","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":48048,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47774,"src":"4980:18:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":48050,"indexExpression":{"id":48049,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48040,"src":"4999:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4980:25:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48052,"indexExpression":{"id":48051,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48042,"src":"5006:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4980:35:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48047,"id":48053,"nodeType":"Return","src":"4973:42:33"}]},"baseFunctions":[48750],"documentation":{"id":48038,"nodeType":"StructuredDocumentation","src":"4800:55:33","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4869:16:33","overrides":{"id":48044,"nodeType":"OverrideSpecifier","overrides":[],"src":"4939:8:33"},"parameters":{"id":48043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48040,"mutability":"mutable","name":"owner","nameLocation":"4894:5:33","nodeType":"VariableDeclaration","scope":48055,"src":"4886:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48039,"name":"address","nodeType":"ElementaryTypeName","src":"4886:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48042,"mutability":"mutable","name":"operator","nameLocation":"4909:8:33","nodeType":"VariableDeclaration","scope":48055,"src":"4901:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48041,"name":"address","nodeType":"ElementaryTypeName","src":"4901:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4885:33:33"},"returnParameters":{"id":48047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48055,"src":"4957:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48045,"name":"bool","nodeType":"ElementaryTypeName","src":"4957:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4956:6:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":48082,"nodeType":"FunctionDefinition","src":"5084:327:33","nodes":[],"body":{"id":48081,"nodeType":"Block","src":"5203:208:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48068,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"5292:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48070,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48062,"src":"5306:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48067,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48212,"src":"5273:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":48071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5273:41:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":48072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5316:48:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":48066,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5265:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5265:100:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48074,"nodeType":"ExpressionStatement","src":"5265:100:33"},{"expression":{"arguments":[{"id":48076,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48058,"src":"5386:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48077,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48060,"src":"5392:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48078,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48062,"src":"5396:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48075,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48457,"src":"5376:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5376:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48080,"nodeType":"ExpressionStatement","src":"5376:28:33"}]},"baseFunctions":[48716],"documentation":{"id":48056,"nodeType":"StructuredDocumentation","src":"5028:51:33","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5093:12:33","overrides":{"id":48064,"nodeType":"OverrideSpecifier","overrides":[],"src":"5194:8:33"},"parameters":{"id":48063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48058,"mutability":"mutable","name":"from","nameLocation":"5123:4:33","nodeType":"VariableDeclaration","scope":48082,"src":"5115:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48057,"name":"address","nodeType":"ElementaryTypeName","src":"5115:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48060,"mutability":"mutable","name":"to","nameLocation":"5145:2:33","nodeType":"VariableDeclaration","scope":48082,"src":"5137:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48059,"name":"address","nodeType":"ElementaryTypeName","src":"5137:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48062,"mutability":"mutable","name":"tokenId","nameLocation":"5165:7:33","nodeType":"VariableDeclaration","scope":48082,"src":"5157:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48061,"name":"uint256","nodeType":"ElementaryTypeName","src":"5157:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:73:33"},"returnParameters":{"id":48065,"nodeType":"ParameterList","parameters":[],"src":"5203:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48101,"nodeType":"FunctionDefinition","src":"5477:179:33","nodes":[],"body":{"id":48100,"nodeType":"Block","src":"5600:56:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48094,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48085,"src":"5627:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48095,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48087,"src":"5633:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48096,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48089,"src":"5637:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":48097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5646:2:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":48093,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[48101,48131],"referencedDeclaration":48131,"src":"5610:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":48098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48099,"nodeType":"ExpressionStatement","src":"5610:39:33"}]},"baseFunctions":[48706],"documentation":{"id":48083,"nodeType":"StructuredDocumentation","src":"5417:55:33","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5486:16:33","overrides":{"id":48091,"nodeType":"OverrideSpecifier","overrides":[],"src":"5591:8:33"},"parameters":{"id":48090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48085,"mutability":"mutable","name":"from","nameLocation":"5520:4:33","nodeType":"VariableDeclaration","scope":48101,"src":"5512:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48084,"name":"address","nodeType":"ElementaryTypeName","src":"5512:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48087,"mutability":"mutable","name":"to","nameLocation":"5542:2:33","nodeType":"VariableDeclaration","scope":48101,"src":"5534:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48086,"name":"address","nodeType":"ElementaryTypeName","src":"5534:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48089,"mutability":"mutable","name":"tokenId","nameLocation":"5562:7:33","nodeType":"VariableDeclaration","scope":48101,"src":"5554:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48088,"name":"uint256","nodeType":"ElementaryTypeName","src":"5554:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5502:73:33"},"returnParameters":{"id":48092,"nodeType":"ParameterList","parameters":[],"src":"5600:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48131,"nodeType":"FunctionDefinition","src":"5722:315:33","nodes":[],"body":{"id":48130,"nodeType":"Block","src":"5872:165:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48116,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"5909:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5909:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48118,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48108,"src":"5923:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48115,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48212,"src":"5890:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":48119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5890:41:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":48120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5933:48:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":48114,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5882:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5882:100:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48122,"nodeType":"ExpressionStatement","src":"5882:100:33"},{"expression":{"arguments":[{"id":48124,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48104,"src":"6006:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48125,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48106,"src":"6012:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48126,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48108,"src":"6016:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48127,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48110,"src":"6025:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48123,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48160,"src":"5992:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":48128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5992:38:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48129,"nodeType":"ExpressionStatement","src":"5992:38:33"}]},"baseFunctions":[48696],"documentation":{"id":48102,"nodeType":"StructuredDocumentation","src":"5662:55:33","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5731:16:33","overrides":{"id":48112,"nodeType":"OverrideSpecifier","overrides":[],"src":"5863:8:33"},"parameters":{"id":48111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48104,"mutability":"mutable","name":"from","nameLocation":"5765:4:33","nodeType":"VariableDeclaration","scope":48131,"src":"5757:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48103,"name":"address","nodeType":"ElementaryTypeName","src":"5757:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48106,"mutability":"mutable","name":"to","nameLocation":"5787:2:33","nodeType":"VariableDeclaration","scope":48131,"src":"5779:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48105,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48108,"mutability":"mutable","name":"tokenId","nameLocation":"5807:7:33","nodeType":"VariableDeclaration","scope":48131,"src":"5799:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48107,"name":"uint256","nodeType":"ElementaryTypeName","src":"5799:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48110,"mutability":"mutable","name":"data","nameLocation":"5837:4:33","nodeType":"VariableDeclaration","scope":48131,"src":"5824:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48109,"name":"bytes","nodeType":"ElementaryTypeName","src":"5824:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5747:100:33"},"returnParameters":{"id":48113,"nodeType":"ParameterList","parameters":[],"src":"5872:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48160,"nodeType":"FunctionDefinition","src":"6898:305:33","nodes":[],"body":{"id":48159,"nodeType":"Block","src":"7038:165:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48144,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48134,"src":"7058:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48145,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48136,"src":"7064:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48146,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48138,"src":"7068:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48143,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48457,"src":"7048:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7048:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48148,"nodeType":"ExpressionStatement","src":"7048:28:33"},{"expression":{"arguments":[{"arguments":[{"id":48151,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48134,"src":"7117:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48136,"src":"7123:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48153,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48138,"src":"7127:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48154,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48140,"src":"7136:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48150,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48589,"src":"7094:22:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":48155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7094:47:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":48156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7143:52:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":48149,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7086:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7086:110:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48158,"nodeType":"ExpressionStatement","src":"7086:110:33"}]},"documentation":{"id":48132,"nodeType":"StructuredDocumentation","src":"6043:850:33","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6907:13:33","parameters":{"id":48141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48134,"mutability":"mutable","name":"from","nameLocation":"6938:4:33","nodeType":"VariableDeclaration","scope":48160,"src":"6930:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48133,"name":"address","nodeType":"ElementaryTypeName","src":"6930:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48136,"mutability":"mutable","name":"to","nameLocation":"6960:2:33","nodeType":"VariableDeclaration","scope":48160,"src":"6952:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48135,"name":"address","nodeType":"ElementaryTypeName","src":"6952:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48138,"mutability":"mutable","name":"tokenId","nameLocation":"6980:7:33","nodeType":"VariableDeclaration","scope":48160,"src":"6972:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48137,"name":"uint256","nodeType":"ElementaryTypeName","src":"6972:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48140,"mutability":"mutable","name":"data","nameLocation":"7010:4:33","nodeType":"VariableDeclaration","scope":48160,"src":"6997:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48139,"name":"bytes","nodeType":"ElementaryTypeName","src":"6997:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6920:100:33"},"returnParameters":{"id":48142,"nodeType":"ParameterList","parameters":[],"src":"7038:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48178,"nodeType":"FunctionDefinition","src":"7506:125:33","nodes":[],"body":{"id":48177,"nodeType":"Block","src":"7577:54:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":48168,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"7594:7:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48170,"indexExpression":{"id":48169,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48163,"src":"7602:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7594:16:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":48173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7622:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7614:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48171,"name":"address","nodeType":"ElementaryTypeName","src":"7614:7:33","typeDescriptions":{}}},"id":48174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7614:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7594:30:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48167,"id":48176,"nodeType":"Return","src":"7587:37:33"}]},"documentation":{"id":48161,"nodeType":"StructuredDocumentation","src":"7209:292:33","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7515:7:33","parameters":{"id":48164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48163,"mutability":"mutable","name":"tokenId","nameLocation":"7531:7:33","nodeType":"VariableDeclaration","scope":48178,"src":"7523:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48162,"name":"uint256","nodeType":"ElementaryTypeName","src":"7523:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7522:17:33"},"returnParameters":{"id":48167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48178,"src":"7571:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48165,"name":"bool","nodeType":"ElementaryTypeName","src":"7571:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7570:6:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48212,"nodeType":"FunctionDefinition","src":"7789:272:33","nodes":[],"body":{"id":48211,"nodeType":"Block","src":"7888:173:33","nodes":[],"statements":[{"assignments":[48189],"declarations":[{"constant":false,"id":48189,"mutability":"mutable","name":"owner","nameLocation":"7906:5:33","nodeType":"VariableDeclaration","scope":48211,"src":"7898:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48188,"name":"address","nodeType":"ElementaryTypeName","src":"7898:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48194,"initialValue":{"arguments":[{"id":48192,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48183,"src":"7940:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48190,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"7914:17:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$48617_$","typeString":"type(contract ERC721Upgradeable)"}},"id":48191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":47891,"src":"7914:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":48193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7914:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7898:50:33"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48195,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48181,"src":"7966:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48196,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48189,"src":"7977:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7966:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":48199,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48189,"src":"8003:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48200,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48181,"src":"8010:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48198,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"7986:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":48201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7986:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7966:52:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":48204,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48183,"src":"8034:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48203,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48020,"src":"8022:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":48205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8022:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48206,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48181,"src":"8046:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8022:31:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7966:87:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":48209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7965:89:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48187,"id":48210,"nodeType":"Return","src":"7958:96:33"}]},"documentation":{"id":48179,"nodeType":"StructuredDocumentation","src":"7637:147:33","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7798:18:33","parameters":{"id":48184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48181,"mutability":"mutable","name":"spender","nameLocation":"7825:7:33","nodeType":"VariableDeclaration","scope":48212,"src":"7817:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48180,"name":"address","nodeType":"ElementaryTypeName","src":"7817:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48183,"mutability":"mutable","name":"tokenId","nameLocation":"7842:7:33","nodeType":"VariableDeclaration","scope":48212,"src":"7834:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48182,"name":"uint256","nodeType":"ElementaryTypeName","src":"7834:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7816:34:33"},"returnParameters":{"id":48187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48212,"src":"7882:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48185,"name":"bool","nodeType":"ElementaryTypeName","src":"7882:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7881:6:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48227,"nodeType":"FunctionDefinition","src":"8391:108:33","nodes":[],"body":{"id":48226,"nodeType":"Block","src":"8456:43:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48221,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48215,"src":"8476:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48222,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48217,"src":"8480:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":48223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8489:2:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":48220,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[48227,48256],"referencedDeclaration":48256,"src":"8466:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":48224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8466:26:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48225,"nodeType":"ExpressionStatement","src":"8466:26:33"}]},"documentation":{"id":48213,"nodeType":"StructuredDocumentation","src":"8067:319:33","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8400:9:33","parameters":{"id":48218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48215,"mutability":"mutable","name":"to","nameLocation":"8418:2:33","nodeType":"VariableDeclaration","scope":48227,"src":"8410:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48214,"name":"address","nodeType":"ElementaryTypeName","src":"8410:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48217,"mutability":"mutable","name":"tokenId","nameLocation":"8430:7:33","nodeType":"VariableDeclaration","scope":48227,"src":"8422:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48216,"name":"uint256","nodeType":"ElementaryTypeName","src":"8422:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8409:29:33"},"returnParameters":{"id":48219,"nodeType":"ParameterList","parameters":[],"src":"8456:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48256,"nodeType":"FunctionDefinition","src":"8720:309:33","nodes":[],"body":{"id":48255,"nodeType":"Block","src":"8834:195:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48238,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48230,"src":"8850:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48239,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48232,"src":"8854:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48237,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48322,"src":"8844:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":48240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8844:18:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48241,"nodeType":"ExpressionStatement","src":"8844:18:33"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":48246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8924:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8916:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48244,"name":"address","nodeType":"ElementaryTypeName","src":"8916:7:33","typeDescriptions":{}}},"id":48247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8916:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48248,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48230,"src":"8928:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48249,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48232,"src":"8932:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48250,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48234,"src":"8941:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48243,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48589,"src":"8893:22:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":48251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8893:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":48252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8960:52:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":48242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8872:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8872:150:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48254,"nodeType":"ExpressionStatement","src":"8872:150:33"}]},"documentation":{"id":48228,"nodeType":"StructuredDocumentation","src":"8505:210:33","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8729:9:33","parameters":{"id":48235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48230,"mutability":"mutable","name":"to","nameLocation":"8756:2:33","nodeType":"VariableDeclaration","scope":48256,"src":"8748:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48229,"name":"address","nodeType":"ElementaryTypeName","src":"8748:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48232,"mutability":"mutable","name":"tokenId","nameLocation":"8776:7:33","nodeType":"VariableDeclaration","scope":48256,"src":"8768:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48231,"name":"uint256","nodeType":"ElementaryTypeName","src":"8768:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48234,"mutability":"mutable","name":"data","nameLocation":"8806:4:33","nodeType":"VariableDeclaration","scope":48256,"src":"8793:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48233,"name":"bytes","nodeType":"ElementaryTypeName","src":"8793:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8738:78:33"},"returnParameters":{"id":48236,"nodeType":"ParameterList","parameters":[],"src":"8834:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48322,"nodeType":"FunctionDefinition","src":"9351:427:33","nodes":[],"body":{"id":48321,"nodeType":"Block","src":"9412:366:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48265,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9430:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":48268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9444:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9436:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48266,"name":"address","nodeType":"ElementaryTypeName","src":"9436:7:33","typeDescriptions":{}}},"id":48269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9436:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9430:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":48271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9448:34:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":48264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9422:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9422:61:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48273,"nodeType":"ExpressionStatement","src":"9422:61:33"},{"expression":{"arguments":[{"id":48278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9501:17:33","subExpression":{"arguments":[{"id":48276,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"9510:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48275,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48178,"src":"9502:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":48277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9502:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":48279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9520:30:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":48274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9493:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9493:58:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48281,"nodeType":"ExpressionStatement","src":"9493:58:33"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9591:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9583:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48283,"name":"address","nodeType":"ElementaryTypeName","src":"9583:7:33","typeDescriptions":{}}},"id":48286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9583:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48287,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9595:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48288,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"9599:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48282,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48600,"src":"9562:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9562:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48290,"nodeType":"ExpressionStatement","src":"9562:45:33"},{"expression":{"id":48295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48291,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"9618:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":48293,"indexExpression":{"id":48292,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9628:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9618:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":48294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9635:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9618:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48296,"nodeType":"ExpressionStatement","src":"9618:18:33"},{"expression":{"id":48301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48297,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"9646:7:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48299,"indexExpression":{"id":48298,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"9654:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9646:16:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48300,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9665:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9646:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48302,"nodeType":"ExpressionStatement","src":"9646:21:33"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":48306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9700:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9692:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48304,"name":"address","nodeType":"ElementaryTypeName","src":"9692:7:33","typeDescriptions":{}}},"id":48307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9692:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48308,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9704:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48309,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"9708:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48303,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48650,"src":"9683:8:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9683:33:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48311,"nodeType":"EmitStatement","src":"9678:38:33"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9755:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9747:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48313,"name":"address","nodeType":"ElementaryTypeName","src":"9747:7:33","typeDescriptions":{}}},"id":48316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9747:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48317,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"9759:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48318,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"9763:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48312,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48611,"src":"9727:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9727:44:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48320,"nodeType":"ExpressionStatement","src":"9727:44:33"}]},"documentation":{"id":48257,"nodeType":"StructuredDocumentation","src":"9035:311:33","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9360:5:33","parameters":{"id":48262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48259,"mutability":"mutable","name":"to","nameLocation":"9374:2:33","nodeType":"VariableDeclaration","scope":48322,"src":"9366:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48258,"name":"address","nodeType":"ElementaryTypeName","src":"9366:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48261,"mutability":"mutable","name":"tokenId","nameLocation":"9386:7:33","nodeType":"VariableDeclaration","scope":48322,"src":"9378:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48260,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9365:29:33"},"returnParameters":{"id":48263,"nodeType":"ParameterList","parameters":[],"src":"9412:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48382,"nodeType":"FunctionDefinition","src":"9995:417:33","nodes":[],"body":{"id":48381,"nodeType":"Block","src":"10044:368:33","nodes":[],"statements":[{"assignments":[48329],"declarations":[{"constant":false,"id":48329,"mutability":"mutable","name":"owner","nameLocation":"10062:5:33","nodeType":"VariableDeclaration","scope":48381,"src":"10054:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48328,"name":"address","nodeType":"ElementaryTypeName","src":"10054:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48334,"initialValue":{"arguments":[{"id":48332,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10096:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48330,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"10070:17:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$48617_$","typeString":"type(contract ERC721Upgradeable)"}},"id":48331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":47891,"src":"10070:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":48333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10070:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10054:50:33"},{"expression":{"arguments":[{"id":48336,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48329,"src":"10136:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":48339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10151:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10143:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48337,"name":"address","nodeType":"ElementaryTypeName","src":"10143:7:33","typeDescriptions":{}}},"id":48340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10143:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48341,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10155:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48335,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48600,"src":"10115:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10115:48:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48343,"nodeType":"ExpressionStatement","src":"10115:48:33"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48345,"name":"address","nodeType":"ElementaryTypeName","src":"10210:7:33","typeDescriptions":{}}},"id":48348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10210:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48349,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10222:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48344,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48481,"src":"10201:8:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":48350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10201:29:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48351,"nodeType":"ExpressionStatement","src":"10201:29:33"},{"expression":{"id":48356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48352,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"10241:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":48354,"indexExpression":{"id":48353,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48329,"src":"10251:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10241:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":48355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10261:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10241:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48357,"nodeType":"ExpressionStatement","src":"10241:21:33"},{"expression":{"id":48361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10272:23:33","subExpression":{"baseExpression":{"id":48358,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"10279:7:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48360,"indexExpression":{"id":48359,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10287:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10279:16:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48362,"nodeType":"ExpressionStatement","src":"10272:23:33"},{"eventCall":{"arguments":[{"id":48364,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48329,"src":"10320:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":48367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10335:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10327:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48365,"name":"address","nodeType":"ElementaryTypeName","src":"10327:7:33","typeDescriptions":{}}},"id":48368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10327:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48369,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10339:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48363,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48650,"src":"10311:8:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10311:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48371,"nodeType":"EmitStatement","src":"10306:41:33"},{"expression":{"arguments":[{"id":48373,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48329,"src":"10378:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":48376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10393:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10385:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48374,"name":"address","nodeType":"ElementaryTypeName","src":"10385:7:33","typeDescriptions":{}}},"id":48377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10385:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48378,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48325,"src":"10397:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48372,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48611,"src":"10358:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10358:47:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48380,"nodeType":"ExpressionStatement","src":"10358:47:33"}]},"documentation":{"id":48323,"nodeType":"StructuredDocumentation","src":"9784:206:33","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10004:5:33","parameters":{"id":48326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48325,"mutability":"mutable","name":"tokenId","nameLocation":"10018:7:33","nodeType":"VariableDeclaration","scope":48382,"src":"10010:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48324,"name":"uint256","nodeType":"ElementaryTypeName","src":"10010:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10009:17:33"},"returnParameters":{"id":48327,"nodeType":"ParameterList","parameters":[],"src":"10044:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48457,"nodeType":"FunctionDefinition","src":"10736:616:33","nodes":[],"body":{"id":48456,"nodeType":"Block","src":"10845:507:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":48395,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"10889:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48393,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"10863:17:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$48617_$","typeString":"type(contract ERC721Upgradeable)"}},"id":48394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":47891,"src":"10863:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":48396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10863:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48397,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48385,"src":"10901:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10863:42:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":48399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10907:39:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":48392,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10855:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10855:92:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48401,"nodeType":"ExpressionStatement","src":"10855:92:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48403,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"10965:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":48406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10979:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10971:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48404,"name":"address","nodeType":"ElementaryTypeName","src":"10971:7:33","typeDescriptions":{}}},"id":48407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10971:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10965:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":48409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10983:38:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":48402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10957:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10957:65:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48411,"nodeType":"ExpressionStatement","src":"10957:65:33"},{"expression":{"arguments":[{"id":48413,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48385,"src":"11054:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48414,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"11060:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48415,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"11064:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48412,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48600,"src":"11033:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11033:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48417,"nodeType":"ExpressionStatement","src":"11033:39:33"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11151:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11143:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48419,"name":"address","nodeType":"ElementaryTypeName","src":"11143:7:33","typeDescriptions":{}}},"id":48422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11143:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48423,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"11155:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48418,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48481,"src":"11134:8:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":48424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11134:29:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48425,"nodeType":"ExpressionStatement","src":"11134:29:33"},{"expression":{"id":48430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48426,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"11174:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":48428,"indexExpression":{"id":48427,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48385,"src":"11184:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11174:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":48429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11193:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11174:20:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48431,"nodeType":"ExpressionStatement","src":"11174:20:33"},{"expression":{"id":48436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48432,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"11204:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":48434,"indexExpression":{"id":48433,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"11214:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11204:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":48435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11221:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11204:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48437,"nodeType":"ExpressionStatement","src":"11204:18:33"},{"expression":{"id":48442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48438,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"11232:7:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48440,"indexExpression":{"id":48439,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"11240:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11232:16:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48441,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"11251:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11232:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48443,"nodeType":"ExpressionStatement","src":"11232:21:33"},{"eventCall":{"arguments":[{"id":48445,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48385,"src":"11278:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48446,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"11284:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48447,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"11288:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48444,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48650,"src":"11269:8:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11269:27:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48449,"nodeType":"EmitStatement","src":"11264:32:33"},{"expression":{"arguments":[{"id":48451,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48385,"src":"11327:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48452,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"11333:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48453,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"11337:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48450,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48611,"src":"11307:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11307:38:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48455,"nodeType":"ExpressionStatement","src":"11307:38:33"}]},"documentation":{"id":48383,"nodeType":"StructuredDocumentation","src":"10418:313:33","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10745:9:33","parameters":{"id":48390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48385,"mutability":"mutable","name":"from","nameLocation":"10772:4:33","nodeType":"VariableDeclaration","scope":48457,"src":"10764:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48384,"name":"address","nodeType":"ElementaryTypeName","src":"10764:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48387,"mutability":"mutable","name":"to","nameLocation":"10794:2:33","nodeType":"VariableDeclaration","scope":48457,"src":"10786:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48386,"name":"address","nodeType":"ElementaryTypeName","src":"10786:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48389,"mutability":"mutable","name":"tokenId","nameLocation":"10814:7:33","nodeType":"VariableDeclaration","scope":48457,"src":"10806:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48388,"name":"uint256","nodeType":"ElementaryTypeName","src":"10806:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10754:73:33"},"returnParameters":{"id":48391,"nodeType":"ParameterList","parameters":[],"src":"10845:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48481,"nodeType":"FunctionDefinition","src":"11464:182:33","nodes":[],"body":{"id":48480,"nodeType":"Block","src":"11528:118:33","nodes":[],"statements":[{"expression":{"id":48469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48465,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"11538:15:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":48467,"indexExpression":{"id":48466,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48462,"src":"11554:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11538:24:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48468,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48460,"src":"11565:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11538:29:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48470,"nodeType":"ExpressionStatement","src":"11538:29:33"},{"eventCall":{"arguments":[{"arguments":[{"id":48474,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48462,"src":"11617:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48472,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"11591:17:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$48617_$","typeString":"type(contract ERC721Upgradeable)"}},"id":48473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":47891,"src":"11591:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":48475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11591:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48476,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48460,"src":"11627:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48477,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48462,"src":"11631:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48471,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48659,"src":"11582:8:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11582:57:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48479,"nodeType":"EmitStatement","src":"11577:62:33"}]},"documentation":{"id":48458,"nodeType":"StructuredDocumentation","src":"11358:101:33","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"11473:8:33","parameters":{"id":48463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48460,"mutability":"mutable","name":"to","nameLocation":"11490:2:33","nodeType":"VariableDeclaration","scope":48481,"src":"11482:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48459,"name":"address","nodeType":"ElementaryTypeName","src":"11482:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48462,"mutability":"mutable","name":"tokenId","nameLocation":"11502:7:33","nodeType":"VariableDeclaration","scope":48481,"src":"11494:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48461,"name":"uint256","nodeType":"ElementaryTypeName","src":"11494:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11481:29:33"},"returnParameters":{"id":48464,"nodeType":"ParameterList","parameters":[],"src":"11528:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48513,"nodeType":"FunctionDefinition","src":"11782:307:33","nodes":[],"body":{"id":48512,"nodeType":"Block","src":"11905:184:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48484,"src":"11923:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":48493,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48486,"src":"11932:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11923:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":48495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11942:27:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":48491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11915:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11915:55:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48497,"nodeType":"ExpressionStatement","src":"11915:55:33"},{"expression":{"id":48504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":48498,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47774,"src":"11980:18:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":48501,"indexExpression":{"id":48499,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48484,"src":"11999:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11980:25:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48502,"indexExpression":{"id":48500,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48486,"src":"12006:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11980:35:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48503,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48488,"src":"12018:8:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11980:46:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48505,"nodeType":"ExpressionStatement","src":"11980:46:33"},{"eventCall":{"arguments":[{"id":48507,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48484,"src":"12056:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48508,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48486,"src":"12063:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48509,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48488,"src":"12073:8:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48506,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48668,"src":"12041:14:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":48510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12041:41:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48511,"nodeType":"EmitStatement","src":"12036:46:33"}]},"documentation":{"id":48482,"nodeType":"StructuredDocumentation","src":"11652:125:33","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11791:18:33","parameters":{"id":48489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48484,"mutability":"mutable","name":"owner","nameLocation":"11827:5:33","nodeType":"VariableDeclaration","scope":48513,"src":"11819:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48483,"name":"address","nodeType":"ElementaryTypeName","src":"11819:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48486,"mutability":"mutable","name":"operator","nameLocation":"11850:8:33","nodeType":"VariableDeclaration","scope":48513,"src":"11842:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48485,"name":"address","nodeType":"ElementaryTypeName","src":"11842:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48488,"mutability":"mutable","name":"approved","nameLocation":"11873:8:33","nodeType":"VariableDeclaration","scope":48513,"src":"11868:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48487,"name":"bool","nodeType":"ElementaryTypeName","src":"11868:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11809:78:33"},"returnParameters":{"id":48490,"nodeType":"ParameterList","parameters":[],"src":"11905:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48527,"nodeType":"FunctionDefinition","src":"12173:133:33","nodes":[],"body":{"id":48526,"nodeType":"Block","src":"12236:70:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":48521,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48516,"src":"12262:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48520,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48178,"src":"12254:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":48522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12254:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":48523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12272:26:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":48519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12246:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12246:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48525,"nodeType":"ExpressionStatement","src":"12246:53:33"}]},"documentation":{"id":48514,"nodeType":"StructuredDocumentation","src":"12095:73:33","text":" @dev Reverts if the `tokenId` has not been minted yet."},"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"12182:14:33","parameters":{"id":48517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48516,"mutability":"mutable","name":"tokenId","nameLocation":"12205:7:33","nodeType":"VariableDeclaration","scope":48527,"src":"12197:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48515,"name":"uint256","nodeType":"ElementaryTypeName","src":"12197:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12196:17:33"},"returnParameters":{"id":48518,"nodeType":"ParameterList","parameters":[],"src":"12236:0:33"},"scope":48617,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48589,"nodeType":"FunctionDefinition","src":"12858:853:33","nodes":[],"body":{"id":48588,"nodeType":"Block","src":"13013:698:33","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48541,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48532,"src":"13027:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":48846,"src":"13027:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":48543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13027:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48586,"nodeType":"Block","src":"13669:36:33","statements":[{"expression":{"hexValue":"74727565","id":48584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13690:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":48540,"id":48585,"nodeType":"Return","src":"13683:11:33"}]},"id":48587,"nodeType":"IfStatement","src":"13023:682:33","trueBody":{"id":48583,"nodeType":"Block","src":"13044:619:33","statements":[{"clauses":[{"block":{"id":48563,"nodeType":"Block","src":"13169:102:33","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":48561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48557,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48555,"src":"13194:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":48558,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48635,"src":"13204:26:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$48635_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":48559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":48634,"src":"13204:43:33","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721ReceiverUpgradeable.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":48560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"13204:52:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13194:62:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48540,"id":48562,"nodeType":"Return","src":"13187:69:33"}]},"errorName":"","id":48564,"nodeType":"TryCatchClause","parameters":{"id":48556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48555,"mutability":"mutable","name":"retval","nameLocation":"13161:6:33","nodeType":"VariableDeclaration","scope":48564,"src":"13154:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":48554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13154:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13153:15:33"},"src":"13145:126:33"},{"block":{"id":48580,"nodeType":"Block","src":"13300:353:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48568,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48566,"src":"13322:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13322:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13339:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13322:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48578,"nodeType":"Block","src":"13449:190:33","statements":[{"AST":{"nodeType":"YulBlock","src":"13535:86:33","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13572:2:33","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"13576:6:33"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13568:3:33"},"nodeType":"YulFunctionCall","src":"13568:15:33"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"13591:6:33"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13585:5:33"},"nodeType":"YulFunctionCall","src":"13585:13:33"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13561:6:33"},"nodeType":"YulFunctionCall","src":"13561:38:33"},"nodeType":"YulExpressionStatement","src":"13561:38:33"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":48566,"isOffset":false,"isSlot":false,"src":"13576:6:33","valueSize":1},{"declaration":48566,"isOffset":false,"isSlot":false,"src":"13591:6:33","valueSize":1}],"id":48577,"nodeType":"InlineAssembly","src":"13526:95:33"}]},"id":48579,"nodeType":"IfStatement","src":"13318:321:33","trueBody":{"id":48576,"nodeType":"Block","src":"13342:101:33","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":48573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13371:52:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":48572,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"13364:6:33","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":48574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13364:60:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48575,"nodeType":"ExpressionStatement","src":"13364:60:33"}]}}]},"errorName":"","id":48581,"nodeType":"TryCatchClause","parameters":{"id":48567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48566,"mutability":"mutable","name":"reason","nameLocation":"13292:6:33","nodeType":"VariableDeclaration","scope":48581,"src":"13279:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48565,"name":"bytes","nodeType":"ElementaryTypeName","src":"13279:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13278:21:33"},"src":"13272:381:33"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48548,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"13110:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13110:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48550,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48530,"src":"13124:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48551,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"13130:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48552,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48536,"src":"13139:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":48545,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48532,"src":"13089:2:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48544,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48635,"src":"13062:26:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$48635_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":48546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13062:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721ReceiverUpgradeable_$48635","typeString":"contract IERC721ReceiverUpgradeable"}},"id":48547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":48634,"src":"13062:47:33","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":48553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13062:82:33","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":48582,"nodeType":"TryStatement","src":"13058:595:33"}]}}]},"documentation":{"id":48528,"nodeType":"StructuredDocumentation","src":"12312:541:33","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12867:22:33","parameters":{"id":48537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48530,"mutability":"mutable","name":"from","nameLocation":"12907:4:33","nodeType":"VariableDeclaration","scope":48589,"src":"12899:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48529,"name":"address","nodeType":"ElementaryTypeName","src":"12899:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48532,"mutability":"mutable","name":"to","nameLocation":"12929:2:33","nodeType":"VariableDeclaration","scope":48589,"src":"12921:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48531,"name":"address","nodeType":"ElementaryTypeName","src":"12921:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48534,"mutability":"mutable","name":"tokenId","nameLocation":"12949:7:33","nodeType":"VariableDeclaration","scope":48589,"src":"12941:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48533,"name":"uint256","nodeType":"ElementaryTypeName","src":"12941:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48536,"mutability":"mutable","name":"data","nameLocation":"12979:4:33","nodeType":"VariableDeclaration","scope":48589,"src":"12966:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48535,"name":"bytes","nodeType":"ElementaryTypeName","src":"12966:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12889:100:33"},"returnParameters":{"id":48540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48589,"src":"13007:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48538,"name":"bool","nodeType":"ElementaryTypeName","src":"13007:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13006:6:33"},"scope":48617,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":48600,"nodeType":"FunctionDefinition","src":"14267:122:33","nodes":[],"body":{"id":48599,"nodeType":"Block","src":"14387:2:33","nodes":[],"statements":[]},"documentation":{"id":48590,"nodeType":"StructuredDocumentation","src":"13717:545:33","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"14276:20:33","parameters":{"id":48597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48592,"mutability":"mutable","name":"from","nameLocation":"14314:4:33","nodeType":"VariableDeclaration","scope":48600,"src":"14306:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48591,"name":"address","nodeType":"ElementaryTypeName","src":"14306:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48594,"mutability":"mutable","name":"to","nameLocation":"14336:2:33","nodeType":"VariableDeclaration","scope":48600,"src":"14328:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48593,"name":"address","nodeType":"ElementaryTypeName","src":"14328:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48596,"mutability":"mutable","name":"tokenId","nameLocation":"14356:7:33","nodeType":"VariableDeclaration","scope":48600,"src":"14348:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48595,"name":"uint256","nodeType":"ElementaryTypeName","src":"14348:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14296:73:33"},"returnParameters":{"id":48598,"nodeType":"ParameterList","parameters":[],"src":"14387:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48611,"nodeType":"FunctionDefinition","src":"14761:121:33","nodes":[],"body":{"id":48610,"nodeType":"Block","src":"14880:2:33","nodes":[],"statements":[]},"documentation":{"id":48601,"nodeType":"StructuredDocumentation","src":"14395:361:33","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14770:19:33","parameters":{"id":48608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48603,"mutability":"mutable","name":"from","nameLocation":"14807:4:33","nodeType":"VariableDeclaration","scope":48611,"src":"14799:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48602,"name":"address","nodeType":"ElementaryTypeName","src":"14799:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48605,"mutability":"mutable","name":"to","nameLocation":"14829:2:33","nodeType":"VariableDeclaration","scope":48611,"src":"14821:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48604,"name":"address","nodeType":"ElementaryTypeName","src":"14821:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48607,"mutability":"mutable","name":"tokenId","nameLocation":"14849:7:33","nodeType":"VariableDeclaration","scope":48611,"src":"14841:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48606,"name":"uint256","nodeType":"ElementaryTypeName","src":"14841:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14789:73:33"},"returnParameters":{"id":48609,"nodeType":"ParameterList","parameters":[],"src":"14880:0:33"},"scope":48617,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48616,"nodeType":"VariableDeclaration","src":"15147:25:33","nodes":[],"constant":false,"documentation":{"id":48612,"nodeType":"StructuredDocumentation","src":"14888:254:33","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"15167:5:33","scope":48617,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":48613,"name":"uint256","nodeType":"ElementaryTypeName","src":"15147:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48615,"length":{"hexValue":"3434","id":48614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15155:2:33","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"15147:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":47737,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47725,"src":"781:13:33"},"id":47738,"nodeType":"InheritanceSpecifier","src":"781:13:33"},{"baseName":{"id":47739,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":49113,"src":"796:18:33"},"id":47740,"nodeType":"InheritanceSpecifier","src":"796:18:33"},{"baseName":{"id":47741,"name":"ERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":49921,"src":"816:17:33"},"id":47742,"nodeType":"InheritanceSpecifier","src":"816:17:33"},{"baseName":{"id":47743,"name":"IERC721Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":48751,"src":"835:18:33"},"id":47744,"nodeType":"InheritanceSpecifier","src":"835:18:33"},{"baseName":{"id":47745,"name":"IERC721MetadataUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":48828,"src":"855:26:33"},"id":47746,"nodeType":"InheritanceSpecifier","src":"855:26:33"}],"canonicalName":"ERC721Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47736,"nodeType":"StructuredDocumentation","src":"504:246:33","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"linearizedBaseContracts":[48617,48828,48751,49921,49933,49113,47725],"name":"ERC721Upgradeable","nameLocation":"760:17:33","scope":48618,"usedErrors":[]}],"license":"MIT"},"id":33}