{
  "_format": "hh-sol-artifact-1",
  "contractName": "TestNFT",
  "sourceName": "contracts/test/TestNFT.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC721IncorrectOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721InsufficientApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "approver",
          "type": "address"
        }
      ],
      "name": "ERC721InvalidApprover",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "ERC721InvalidOperator",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC721InvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "ERC721InvalidReceiver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ERC721InvalidSender",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonexistentToken",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "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"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280600781526020016615195cdd13919560ca1b815250604051806040016040528060038152602001621514d560ea1b815250816000908161005c91906104e2565b50600161006982826104e2565b50505060005b600a81101561008a576100823382610090565b60010161006f565b506105a0565b6001600160a01b0382166100bf57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006100cc8383836100fe565b90506001600160a01b038116156100f9576040516339e3563760e11b8152600060048201526024016100b6565b505050565b6000828152600260205260408120546001600160a01b039081169083161561012b5761012b8184866101f6565b6001600160a01b0381161561016857610147600085818061025a565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610197576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b61020183838361037f565b6100f9576001600160a01b03831661022f57604051637e27328960e01b8152600481018290526024016100b6565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016100b6565b808061026e57506001600160a01b03821615155b1561034f57600061027e84610405565b90506001600160a01b038316158015906102aa5750826001600160a01b0316816001600160a01b031614155b80156102dc57506001600160a01b0380821660009081526005602090815260408083209387168352929052205460ff16155b156103055760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016100b6565b811561034d5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038316158015906103fd5750826001600160a01b0316846001600160a01b031614806103d957506001600160a01b0380851660009081526005602090815260408083209387168352929052205460ff165b806103fd57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6000818152600260205260408120546001600160a01b03168061043e57604051637e27328960e01b8152600481018490526024016100b6565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061046e57607f821691505b60208210810361048e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100f957806000526020600020601f840160051c810160208510156104bb5750805b601f840160051c820191505b818110156104db57600081556001016104c7565b5050505050565b81516001600160401b038111156104fb576104fb610444565b61050f81610509845461045a565b84610494565b6020601f821160018114610543576000831561052b5750848201515b600019600385901b1c1916600184901b1784556104db565b600084815260208120601f198516915b828110156105735787850151825560209485019460019092019101610553565b50848210156105915786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610ee9806105af6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610b50565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610bbd565b61012461011f366004610bd0565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610c05565b61030c565b005b61014f61015f366004610c2f565b61031b565b61014f610172366004610c2f565b6103ab565b610124610185366004610bd0565b6103cb565b61019d610198366004610c6c565b6103d6565b6040519081526020016100f3565b61010461041e565b61014f6101c1366004610c87565b61042d565b61014f6101d4366004610cd9565b610438565b6101046101e7366004610bd0565b610450565b6100e76101fa366004610dbd565b6104c5565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610df0565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610df0565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee826104f3565b506000828152600460205260409020546001600160a01b031661024b565b61031782823361052c565b5050565b6001600160a01b03821661034a57604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610357838333610539565b9050836001600160a01b0316816001600160a01b0316146103a5576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610341565b50505050565b6103c683838360405180602001604052806000815250610438565b505050565b600061024b826104f3565b60006001600160a01b038216610402576040516322718ad960e21b815260006004820152602401610341565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610df0565b610317338383610632565b61044384848461031b565b6103a533858585856106d1565b606061045b826104f3565b50600061047360408051602081019091526000815290565b9050600081511161049357604051806020016040528060008152506104be565b8061049d846107fc565b6040516020016104ae929190610e2a565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061024b57604051637e27328960e01b815260048101849052602401610341565b6103c6838383600161088f565b6000828152600260205260408120546001600160a01b039081169083161561056657610566818486610995565b6001600160a01b038116156105a45761058360008560008061088f565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156105d3576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661066457604051630b61174360e31b81526001600160a01b0383166004820152602401610341565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156107f557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610713908890889087908790600401610e59565b6020604051808303816000875af192505050801561074e575060408051601f3d908101601f1916820190925261074b91810190610e96565b60015b6107b7573d80801561077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b5080516000036107af57604051633250574960e11b81526001600160a01b0385166004820152602401610341565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107f357604051633250574960e11b81526001600160a01b0385166004820152602401610341565b505b5050505050565b60606000610809836109f9565b600101905060008167ffffffffffffffff81111561082957610829610cc3565b6040519080825280601f01601f191660200182016040528015610853576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461085d57509392505050565b80806108a357506001600160a01b03821615155b156109655760006108b3846104f3565b90506001600160a01b038316158015906108df5750826001600160a01b0316816001600160a01b031614155b80156108f257506108f081846104c5565b155b1561091b5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610341565b81156109635783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6109a0838383610ad1565b6103c6576001600160a01b0383166109ce57604051637e27328960e01b815260048101829052602401610341565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610341565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a385772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a64576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a8257662386f26fc10000830492506010015b6305f5e1008310610a9a576305f5e100830492506008015b6127108310610aae57612710830492506004015b60648310610ac0576064830492506002015b600a831061024b5760010192915050565b60006001600160a01b03831615801590610b2f5750826001600160a01b0316846001600160a01b03161480610b0b5750610b0b84846104c5565b80610b2f57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610b4d57600080fd5b50565b600060208284031215610b6257600080fd5b81356104be81610b37565b60005b83811015610b88578181015183820152602001610b70565b50506000910152565b60008151808452610ba9816020860160208601610b6d565b601f01601f19169290920160200192915050565b6020815260006104be6020830184610b91565b600060208284031215610be257600080fd5b5035919050565b80356001600160a01b0381168114610c0057600080fd5b919050565b60008060408385031215610c1857600080fd5b610c2183610be9565b946020939093013593505050565b600080600060608486031215610c4457600080fd5b610c4d84610be9565b9250610c5b60208501610be9565b929592945050506040919091013590565b600060208284031215610c7e57600080fd5b6104be82610be9565b60008060408385031215610c9a57600080fd5b610ca383610be9565b915060208301358015158114610cb857600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610cef57600080fd5b610cf885610be9565b9350610d0660208601610be9565b925060408501359150606085013567ffffffffffffffff811115610d2957600080fd5b8501601f81018713610d3a57600080fd5b803567ffffffffffffffff811115610d5457610d54610cc3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610d8357610d83610cc3565b604052818152828201602001891015610d9b57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215610dd057600080fd5b610dd983610be9565b9150610de760208401610be9565b90509250929050565b600181811c90821680610e0457607f821691505b602082108103610e2457634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610e3c818460208801610b6d565b835190830190610e50818360208801610b6d565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e8c90830184610b91565b9695505050505050565b600060208284031215610ea857600080fd5b81516104be81610b3756fea26469706673582212209ec39c3c976545687659687de80d2e1f62328b9695e9818089c53748079d612164736f6c634300081b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610b50565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610bbd565b61012461011f366004610bd0565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610c05565b61030c565b005b61014f61015f366004610c2f565b61031b565b61014f610172366004610c2f565b6103ab565b610124610185366004610bd0565b6103cb565b61019d610198366004610c6c565b6103d6565b6040519081526020016100f3565b61010461041e565b61014f6101c1366004610c87565b61042d565b61014f6101d4366004610cd9565b610438565b6101046101e7366004610bd0565b610450565b6100e76101fa366004610dbd565b6104c5565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610df0565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610df0565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee826104f3565b506000828152600460205260409020546001600160a01b031661024b565b61031782823361052c565b5050565b6001600160a01b03821661034a57604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610357838333610539565b9050836001600160a01b0316816001600160a01b0316146103a5576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610341565b50505050565b6103c683838360405180602001604052806000815250610438565b505050565b600061024b826104f3565b60006001600160a01b038216610402576040516322718ad960e21b815260006004820152602401610341565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610df0565b610317338383610632565b61044384848461031b565b6103a533858585856106d1565b606061045b826104f3565b50600061047360408051602081019091526000815290565b9050600081511161049357604051806020016040528060008152506104be565b8061049d846107fc565b6040516020016104ae929190610e2a565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061024b57604051637e27328960e01b815260048101849052602401610341565b6103c6838383600161088f565b6000828152600260205260408120546001600160a01b039081169083161561056657610566818486610995565b6001600160a01b038116156105a45761058360008560008061088f565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156105d3576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661066457604051630b61174360e31b81526001600160a01b0383166004820152602401610341565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156107f557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610713908890889087908790600401610e59565b6020604051808303816000875af192505050801561074e575060408051601f3d908101601f1916820190925261074b91810190610e96565b60015b6107b7573d80801561077c576040519150601f19603f3d011682016040523d82523d6000602084013e610781565b606091505b5080516000036107af57604051633250574960e11b81526001600160a01b0385166004820152602401610341565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107f357604051633250574960e11b81526001600160a01b0385166004820152602401610341565b505b5050505050565b60606000610809836109f9565b600101905060008167ffffffffffffffff81111561082957610829610cc3565b6040519080825280601f01601f191660200182016040528015610853576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461085d57509392505050565b80806108a357506001600160a01b03821615155b156109655760006108b3846104f3565b90506001600160a01b038316158015906108df5750826001600160a01b0316816001600160a01b031614155b80156108f257506108f081846104c5565b155b1561091b5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610341565b81156109635783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6109a0838383610ad1565b6103c6576001600160a01b0383166109ce57604051637e27328960e01b815260048101829052602401610341565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610341565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a385772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a64576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a8257662386f26fc10000830492506010015b6305f5e1008310610a9a576305f5e100830492506008015b6127108310610aae57612710830492506004015b60648310610ac0576064830492506002015b600a831061024b5760010192915050565b60006001600160a01b03831615801590610b2f5750826001600160a01b0316846001600160a01b03161480610b0b5750610b0b84846104c5565b80610b2f57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610b4d57600080fd5b50565b600060208284031215610b6257600080fd5b81356104be81610b37565b60005b83811015610b88578181015183820152602001610b70565b50506000910152565b60008151808452610ba9816020860160208601610b6d565b601f01601f19169290920160200192915050565b6020815260006104be6020830184610b91565b600060208284031215610be257600080fd5b5035919050565b80356001600160a01b0381168114610c0057600080fd5b919050565b60008060408385031215610c1857600080fd5b610c2183610be9565b946020939093013593505050565b600080600060608486031215610c4457600080fd5b610c4d84610be9565b9250610c5b60208501610be9565b929592945050506040919091013590565b600060208284031215610c7e57600080fd5b6104be82610be9565b60008060408385031215610c9a57600080fd5b610ca383610be9565b915060208301358015158114610cb857600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610cef57600080fd5b610cf885610be9565b9350610d0660208601610be9565b925060408501359150606085013567ffffffffffffffff811115610d2957600080fd5b8501601f81018713610d3a57600080fd5b803567ffffffffffffffff811115610d5457610d54610cc3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610d8357610d83610cc3565b604052818152828201602001891015610d9b57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215610dd057600080fd5b610dd983610be9565b9150610de760208401610be9565b90509250929050565b600181811c90821680610e0457607f821691505b602082108103610e2457634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610e3c818460208801610b6d565b835190830190610e50818360208801610b6d565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e8c90830184610b91565b9695505050505050565b600060208284031215610ea857600080fd5b81516104be81610b3756fea26469706673582212209ec39c3c976545687659687de80d2e1f62328b9695e9818089c53748079d612164736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
