2024-06-03 14:06:45 +08:00

602 lines
37 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "NFTLock",
"sourceName": "contracts/game/NFTLock.sol",
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "_verifier",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "DurationUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "nft",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
}
],
"name": "Lock",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "nft",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isMint",
"type": "bool"
}
],
"indexed": false,
"internalType": "struct NFTLock.NFTInfo[]",
"name": "nftList",
"type": "tuple[]"
}
],
"name": "UnLock",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "verifier",
"type": "address"
}
],
"name": "VerifierUpdated",
"type": "event"
},
{
"inputs": [],
"name": "_CACHED_CHAIN_ID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_CACHED_THIS",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "nftList",
"type": "address[]"
}
],
"name": "addSupportNftList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "checkSigner",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "duration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "address",
"name": "_nft",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isMint",
"type": "bool"
}
],
"internalType": "struct NFTLock.NFTInfo[]",
"name": "_ids",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "_contract",
"type": "address"
},
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_signTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_saltNonce",
"type": "uint256"
}
],
"name": "getMessageHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nft",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
}
],
"name": "lock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "lockedNft",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "lockedNum",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nft",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "lockedOriginal",
"outputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nftAddress",
"type": "address"
}
],
"name": "removeSupportNft",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nft",
"type": "address"
}
],
"name": "supportNftList",
"outputs": [
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nft",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isMint",
"type": "bool"
}
],
"internalType": "struct NFTLock.NFTInfo[]",
"name": "nftList",
"type": "tuple[]"
},
{
"internalType": "uint256",
"name": "signTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "saltNonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "unlockOrMint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "valNew",
"type": "uint256"
}
],
"name": "updateDuation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_verifier",
"type": "address"
}
],
"name": "updateVerifier",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "verifier",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c0346100f657601f61194e38819003918201601f19168301916001600160401b038311848410176100fb5780849260409485528339810103126100f65780516020909101516001600160a01b039182821682036100f6576000543360018060a01b0319821617600055604051933391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360025561070860035560048054466080523060a0526001600160a81b03191660089290921b610100600160a81b031691909117905561183c908161011282396080518181816103660152610eec015260a05181818161038801526108160152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081630fb5a6b414610fa3575080631275029214610f64578063150b7a0214610f0f5780632b437d4814610ed45780632b7ac3f314610ea75780634d8d0ac714610e5f5780635671576114610e415780635c975abb14610e1e5780635fb110ca14610d955780636d04319414610d4d578063715018a614610cf4578063799048fa14610c675780637f9d309614610bdc5780638da5cb5b14610bb35780638e47f63f14610a3057806397fc007c14610961578063a063472414610910578063d13344c914610845578063da28b52714610800578063dbfaa5801461025f578063f2fde38b1461019b5763f36b61d31461011157600080fd5b346101965760e03660031901126101965761012a610fbe565b610132610fd4565b6044356001600160401b0381116101965736602382011215610196576101629036906024816004013591016110f0565b606435916001600160a01b03831683036101965760209361018e9360c4359360a4359360843593611727565b604051908152f35b600080fd5b34610196576020366003190112610196576101b4610fbe565b6101bc611193565b6001600160a01b0390811690811561020b57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346101965760a036600319011261019657610278610fbe565b6001600160401b03806024351161019657366023602435011215610196578060243560040135116101965736602480356004013560061b81350101116101965760843590808211610196573660238301121561019657816004013511610196573660248260040135830101116101965760ff6040518260040135602484018237602081846004013581016001815203019020541661078a576002546044350180604435116107745742116107095761032e6114d0565b610341606460243560040135111561145b565b6103d96103af61035c366024356004013560248035016110f0565b60643590604435907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908833611727565b6004805460081c6001600160a01b031691906103d39036908601356024870161104f565b916111eb565b60005b6024356004013581106104dd575060ff60405182600401356024840182376020818460040135810160018152030190205416156104ac575b50604051604081016064358252604060208301526024356004013590526060810190602480350160005b602435600401358110610483575033936001600160a01b0316927ff3d71d6c5e51ea460dbafab10ee101a0f4be26a888e6b04a5b636173d63b322292908190039150a3005b90926040806001928635815261049b602088016110e3565b15156020820152019401910161043e565b6020604051828193600401356024820183376004013581016001815203019020600160ff1982541617905581610414565b60206104f4826024356004013560248035016115b6565b013580151581036101965715610587576001600160a01b038316906105238160248035600481013591016115b6565b35823b15610196576000926044849260405195869384926340c10f1960e01b845233600485015260248401525af191821561057b576105679261056c575b5061149b565b6103dc565b61057590610fea565b84610561565b6040513d6000823e3d90fd5b6001600160a01b03831660009081526005602052604090206105b38260248035600481013591016115b6565b356000526020523360018060a01b0360406000205416036106d8576105e3816024356004013560248035016115b6565b35906001600160a01b0384163b15610196576040516323b872dd60e01b81523060048201523360248201526044810192909252600082606481836001600160a01b0389165af191821561057b57610567926106c9575b5060018060a01b038416600052600660205260406000203360005260205261067b6040600020610674836024356004013560248035016115b6565b35906115c6565b506001600160a01b03841660009081526005602052604090206106a88260248035600481013591016115b6565b3560005260205260406000206001600160601b0360a01b815416905561149b565b6106d290610fea565b84610639565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b60405162461bcd60e51b815260206004820152603b60248201527f657870697265642c20706c656173652073656e6420616e6f746865722074726160448201527f6e73616374696f6e2077697468206e6577207369676e617475726500000000006064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152604260248201527f7369676e617475726520757365642e20706c656173652073656e6420616e6f7460448201527f686572207472616e73616374696f6e2077697468206e6577207369676e617475606482015261726560f01b608482015260a490fd5b34610196576000366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101965760403660031901126101965761085e610fbe565b610866610fd4565b60018060a01b0380921660005260209160068352604060002091166000528152604060002060405190818382549182815201908192600052846000209060005b868282106108fc5786866108bc8288038361102e565b604051928392818401908285525180915260408401929160005b8281106108e557505050500390f35b8351855286955093810193928101926001016108d6565b8354855290930192600192830192016108a6565b3461019657604036600319011261019657610929610fbe565b610931610fd4565b9060018060a01b038091166000526006602052604060002091166000526020526020604060002054604051908152f35b346101965760203660031901126101965761097a610fbe565b610982611193565b6001600160a01b0381169081156109df5760048054610100600160a81b03191660089290921b610100600160a81b03169190911790557fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327600080a2005b60405162461bcd60e51b815260206004820152602360248201527f4e4654436c61696d65723a20616464726573732063616e206e6f74206265207a60448201526265726f60e81b6064820152608490fd5b3461019657604036600319011261019657610a49610fbe565b6024356001600160401b03811161019657610a689036906004016110b3565b610a739291926114d0565b610a80606482111561145b565b6001600160a01b039091169060005b818110610aeb5750604051602080825281018290526001600160fb1b038211610196577ffa4fcf9122678b647ff5d9f7e030079388041514b1b489b702346021b4e4344e9160051b8094604083013760408133958101030190a3005b610af68183866114aa565b3590833b15610196576040516323b872dd60e01b8152336004820152306024820152604481019290925260008260648183885af191821561057b57610b9f92610ba4575b50836000526020600581526040600020610b558386896114aa565b3560005281526040600020336001600160601b0360a01b825416179055846000526006815260406000209033600052526105616040600020610b988386896114aa565b359061152c565b610a8f565b610bad90610fea565b85610b3a565b34610196576000366003190112610196576000546040516001600160a01b039091168152602090f35b3461019657602036600319011261019657600435610bf8611193565b600354811115610c2d57806002557f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac5600080a2005b60405162461bcd60e51b8152602060048201526012602482015271191d5c985d1a5bdb881d1bdbc81cda1bdc9d60721b6044820152606490fd5b3461019657602036600319011261019657610c80610fbe565b610c88611193565b6001600160a01b031660008181526007602052604090205460ff1615610cc0576000908152600760205260409020805460ff19169055005b60405162461bcd60e51b815260206004820152600c60248201526b63616e27742072656d6f766560a01b6044820152606490fd5b3461019657600036600319011261019657610d0d611193565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019657606036600319011261019657610d66610fbe565b604435906001600160401b03821161019657610d89610d93923690600401611095565b90602435906111eb565b005b3461019657602080600319360112610196576004356001600160401b03811161019657610dc69036906004016110b3565b610dce611193565b60005b818110610dda57005b610de58183856114aa565b356001600160a01b038116919082900361019657610e1991600052600785526040600020600160ff1982541617905561149b565b610dd1565b3461019657600036600319011261019657602060ff600454166040519015158152f35b34610196576000366003190112610196576020600354604051908152f35b346101965760403660031901126101965760206001600160a01b0380610e83610fbe565b16600052600582526040600020602435600052825260406000205416604051908152f35b346101965760003660031901126101965760045460405160089190911c6001600160a01b03168152602090f35b346101965760003660031901126101965760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461019657608036600319011261019657610f28610fbe565b50610f31610fd4565b506064356001600160401b03811161019657610f51903690600401611095565b50604051630a85bd0160e11b8152602090f35b34610196576020366003190112610196576001600160a01b03610f85610fbe565b166000526007602052602060ff604060002054166040519015158152f35b34610196576000366003190112610196576020906002548152f35b600435906001600160a01b038216820361019657565b602435906001600160a01b038216820361019657565b6001600160401b038111610ffd57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ffd57604052565b90601f801991011681019081106001600160401b03821117610ffd57604052565b9291926001600160401b038211610ffd5760405191611078601f8201601f19166020018461102e565b829481845281830111610196578281602093846000960137010152565b9080601f83011215610196578160206110b09335910161104f565b90565b9181601f84011215610196578235916001600160401b038311610196576020808501948460051b01011161019657565b3590811515820361019657565b6001600160401b039392848311610ffd57604092835195602092611119848460051b018961102e565b8388848152019260061b85019481861161019657925b85841061113f5750505050505050565b868483031261019657865190878201908282108583111761117e578892879284528635815261116f8388016110e3565b8382015281520193019261112f565b60246000634e487b7160e01b81526041600452fd5b6000546001600160a01b031633036111a757565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9061122d92611225917f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c600020611394565b92909261127a565b6001600160a01b0390811691160361124157565b60405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606490fd5b600581101561137e578061128b5750565b600181036112d85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036113255760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461132e57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9060418151146000146113c2576113be916020820151906060604084015193015160001a906113cc565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831161144f5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156114425781516001600160a01b0381161561143c579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b1561146257565b60405162461bcd60e51b8152602060048201526011602482015270746f6b656e49647320746f6f206d616e7960781b6044820152606490fd5b60001981146107745760010190565b91908110156114ba5760051b0190565b634e487b7160e01b600052603260045260246000fd5b60ff600454166114dc57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b80548210156114ba5760005260206000200190600090565b919060018301600090828252806020526040822054156000146115b0578454946801000000000000000086101561159c578361158c611575886001604098999a01855584611514565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b91908110156114ba5760061b0190565b906001820190600092818452826020526040842054908115156000146116af576000199180830181811161169b5782549084820191821161168757808203611652575b5050508054801561163e578201916116218383611514565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6116726116626115759386611514565b90549060031b1c92839286611514565b90558652846020526040862055388080611609565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b80518210156114ba5760209160051b010190565b9081519160005b8381106116e2575050016000815290565b80602080928401015181850152016116d1565b61172590611717611711949360405195869360208501906116ca565b906116ca565b03601f19810184528361102e565b565b939695919490966040978851946001600160601b031980928160209960601b168989015260601b16603487015260601b166048850152605c840152607c830152609c820152609c815260c081018181106001600160401b03821117610ffd5785526000905b83518210156117f8576117ec6117c46117f2926117a985886116b6565b515190895191878301528682526117bf82611013565b6116f5565b846117cf85886116b6565b51015115159088519160f81b86830152600182526117bf82611013565b9161149b565b9061178c565b93945050905081519101209056fea2646970667358221220a9a53469c4b1432f9ddf9ae806bec7d819ee6cd7d600b0c9c5c578fc102eaf0a64736f6c63430008130033",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c9081630fb5a6b414610fa3575080631275029214610f64578063150b7a0214610f0f5780632b437d4814610ed45780632b7ac3f314610ea75780634d8d0ac714610e5f5780635671576114610e415780635c975abb14610e1e5780635fb110ca14610d955780636d04319414610d4d578063715018a614610cf4578063799048fa14610c675780637f9d309614610bdc5780638da5cb5b14610bb35780638e47f63f14610a3057806397fc007c14610961578063a063472414610910578063d13344c914610845578063da28b52714610800578063dbfaa5801461025f578063f2fde38b1461019b5763f36b61d31461011157600080fd5b346101965760e03660031901126101965761012a610fbe565b610132610fd4565b6044356001600160401b0381116101965736602382011215610196576101629036906024816004013591016110f0565b606435916001600160a01b03831683036101965760209361018e9360c4359360a4359360843593611727565b604051908152f35b600080fd5b34610196576020366003190112610196576101b4610fbe565b6101bc611193565b6001600160a01b0390811690811561020b57600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346101965760a036600319011261019657610278610fbe565b6001600160401b03806024351161019657366023602435011215610196578060243560040135116101965736602480356004013560061b81350101116101965760843590808211610196573660238301121561019657816004013511610196573660248260040135830101116101965760ff6040518260040135602484018237602081846004013581016001815203019020541661078a576002546044350180604435116107745742116107095761032e6114d0565b610341606460243560040135111561145b565b6103d96103af61035c366024356004013560248035016110f0565b60643590604435907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908833611727565b6004805460081c6001600160a01b031691906103d39036908601356024870161104f565b916111eb565b60005b6024356004013581106104dd575060ff60405182600401356024840182376020818460040135810160018152030190205416156104ac575b50604051604081016064358252604060208301526024356004013590526060810190602480350160005b602435600401358110610483575033936001600160a01b0316927ff3d71d6c5e51ea460dbafab10ee101a0f4be26a888e6b04a5b636173d63b322292908190039150a3005b90926040806001928635815261049b602088016110e3565b15156020820152019401910161043e565b6020604051828193600401356024820183376004013581016001815203019020600160ff1982541617905581610414565b60206104f4826024356004013560248035016115b6565b013580151581036101965715610587576001600160a01b038316906105238160248035600481013591016115b6565b35823b15610196576000926044849260405195869384926340c10f1960e01b845233600485015260248401525af191821561057b576105679261056c575b5061149b565b6103dc565b61057590610fea565b84610561565b6040513d6000823e3d90fd5b6001600160a01b03831660009081526005602052604090206105b38260248035600481013591016115b6565b356000526020523360018060a01b0360406000205416036106d8576105e3816024356004013560248035016115b6565b35906001600160a01b0384163b15610196576040516323b872dd60e01b81523060048201523360248201526044810192909252600082606481836001600160a01b0389165af191821561057b57610567926106c9575b5060018060a01b038416600052600660205260406000203360005260205261067b6040600020610674836024356004013560248035016115b6565b35906115c6565b506001600160a01b03841660009081526005602052604090206106a88260248035600481013591016115b6565b3560005260205260406000206001600160601b0360a01b815416905561149b565b6106d290610fea565b84610639565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b60405162461bcd60e51b815260206004820152603b60248201527f657870697265642c20706c656173652073656e6420616e6f746865722074726160448201527f6e73616374696f6e2077697468206e6577207369676e617475726500000000006064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152604260248201527f7369676e617475726520757365642e20706c656173652073656e6420616e6f7460448201527f686572207472616e73616374696f6e2077697468206e6577207369676e617475606482015261726560f01b608482015260a490fd5b34610196576000366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101965760403660031901126101965761085e610fbe565b610866610fd4565b60018060a01b0380921660005260209160068352604060002091166000528152604060002060405190818382549182815201908192600052846000209060005b868282106108fc5786866108bc8288038361102e565b604051928392818401908285525180915260408401929160005b8281106108e557505050500390f35b8351855286955093810193928101926001016108d6565b8354855290930192600192830192016108a6565b3461019657604036600319011261019657610929610fbe565b610931610fd4565b9060018060a01b038091166000526006602052604060002091166000526020526020604060002054604051908152f35b346101965760203660031901126101965761097a610fbe565b610982611193565b6001600160a01b0381169081156109df5760048054610100600160a81b03191660089290921b610100600160a81b03169190911790557fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327600080a2005b60405162461bcd60e51b815260206004820152602360248201527f4e4654436c61696d65723a20616464726573732063616e206e6f74206265207a60448201526265726f60e81b6064820152608490fd5b3461019657604036600319011261019657610a49610fbe565b6024356001600160401b03811161019657610a689036906004016110b3565b610a739291926114d0565b610a80606482111561145b565b6001600160a01b039091169060005b818110610aeb5750604051602080825281018290526001600160fb1b038211610196577ffa4fcf9122678b647ff5d9f7e030079388041514b1b489b702346021b4e4344e9160051b8094604083013760408133958101030190a3005b610af68183866114aa565b3590833b15610196576040516323b872dd60e01b8152336004820152306024820152604481019290925260008260648183885af191821561057b57610b9f92610ba4575b50836000526020600581526040600020610b558386896114aa565b3560005281526040600020336001600160601b0360a01b825416179055846000526006815260406000209033600052526105616040600020610b988386896114aa565b359061152c565b610a8f565b610bad90610fea565b85610b3a565b34610196576000366003190112610196576000546040516001600160a01b039091168152602090f35b3461019657602036600319011261019657600435610bf8611193565b600354811115610c2d57806002557f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac5600080a2005b60405162461bcd60e51b8152602060048201526012602482015271191d5c985d1a5bdb881d1bdbc81cda1bdc9d60721b6044820152606490fd5b3461019657602036600319011261019657610c80610fbe565b610c88611193565b6001600160a01b031660008181526007602052604090205460ff1615610cc0576000908152600760205260409020805460ff19169055005b60405162461bcd60e51b815260206004820152600c60248201526b63616e27742072656d6f766560a01b6044820152606490fd5b3461019657600036600319011261019657610d0d611193565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019657606036600319011261019657610d66610fbe565b604435906001600160401b03821161019657610d89610d93923690600401611095565b90602435906111eb565b005b3461019657602080600319360112610196576004356001600160401b03811161019657610dc69036906004016110b3565b610dce611193565b60005b818110610dda57005b610de58183856114aa565b356001600160a01b038116919082900361019657610e1991600052600785526040600020600160ff1982541617905561149b565b610dd1565b3461019657600036600319011261019657602060ff600454166040519015158152f35b34610196576000366003190112610196576020600354604051908152f35b346101965760403660031901126101965760206001600160a01b0380610e83610fbe565b16600052600582526040600020602435600052825260406000205416604051908152f35b346101965760003660031901126101965760045460405160089190911c6001600160a01b03168152602090f35b346101965760003660031901126101965760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461019657608036600319011261019657610f28610fbe565b50610f31610fd4565b506064356001600160401b03811161019657610f51903690600401611095565b50604051630a85bd0160e11b8152602090f35b34610196576020366003190112610196576001600160a01b03610f85610fbe565b166000526007602052602060ff604060002054166040519015158152f35b34610196576000366003190112610196576020906002548152f35b600435906001600160a01b038216820361019657565b602435906001600160a01b038216820361019657565b6001600160401b038111610ffd57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ffd57604052565b90601f801991011681019081106001600160401b03821117610ffd57604052565b9291926001600160401b038211610ffd5760405191611078601f8201601f19166020018461102e565b829481845281830111610196578281602093846000960137010152565b9080601f83011215610196578160206110b09335910161104f565b90565b9181601f84011215610196578235916001600160401b038311610196576020808501948460051b01011161019657565b3590811515820361019657565b6001600160401b039392848311610ffd57604092835195602092611119848460051b018961102e565b8388848152019260061b85019481861161019657925b85841061113f5750505050505050565b868483031261019657865190878201908282108583111761117e578892879284528635815261116f8388016110e3565b8382015281520193019261112f565b60246000634e487b7160e01b81526041600452fd5b6000546001600160a01b031633036111a757565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9061122d92611225917f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c600020611394565b92909261127a565b6001600160a01b0390811691160361124157565b60405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606490fd5b600581101561137e578061128b5750565b600181036112d85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036113255760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461132e57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9060418151146000146113c2576113be916020820151906060604084015193015160001a906113cc565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831161144f5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156114425781516001600160a01b0381161561143c579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b1561146257565b60405162461bcd60e51b8152602060048201526011602482015270746f6b656e49647320746f6f206d616e7960781b6044820152606490fd5b60001981146107745760010190565b91908110156114ba5760051b0190565b634e487b7160e01b600052603260045260246000fd5b60ff600454166114dc57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b80548210156114ba5760005260206000200190600090565b919060018301600090828252806020526040822054156000146115b0578454946801000000000000000086101561159c578361158c611575886001604098999a01855584611514565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b91908110156114ba5760061b0190565b906001820190600092818452826020526040842054908115156000146116af576000199180830181811161169b5782549084820191821161168757808203611652575b5050508054801561163e578201916116218383611514565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6116726116626115759386611514565b90549060031b1c92839286611514565b90558652846020526040862055388080611609565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b80518210156114ba5760209160051b010190565b9081519160005b8381106116e2575050016000815290565b80602080928401015181850152016116d1565b61172590611717611711949360405195869360208501906116ca565b906116ca565b03601f19810184528361102e565b565b939695919490966040978851946001600160601b031980928160209960601b168989015260601b16603487015260601b166048850152605c840152607c830152609c820152609c815260c081018181106001600160401b03821117610ffd5785526000905b83518210156117f8576117ec6117c46117f2926117a985886116b6565b515190895191878301528682526117bf82611013565b6116f5565b846117cf85886116b6565b51015115159088519160f81b86830152600182526117bf82611013565b9161149b565b9061178c565b93945050905081519101209056fea2646970667358221220a9a53469c4b1432f9ddf9ae806bec7d819ee6cd7d600b0c9c5c578fc102eaf0a64736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}