[ { "inputs": [ { "internalType": "address", "name": "_noundersDAO", "type": "address" }, { "internalType": "address", "name": "_minter", "type": "address" }, { "internalType": "contract INounsDescriptorMinimal", "name": "_descriptor", "type": "address" }, { "internalType": "contract INounsSeeder", "name": "_seeder", "type": "address" }, { "internalType": "contract IProxyRegistry", "name": "_proxyRegistry", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "DescriptorLocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract INounsDescriptorMinimal", "name": "descriptor", "type": "address" } ], "name": "DescriptorUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MinterLocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" } ], "name": "MinterUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "NounBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "components": [ { "internalType": "uint48", "name": "body", "type": "uint48" }, { "internalType": "uint48", "name": "accessory", "type": "uint48" }, { "internalType": "uint48", "name": "head", "type": "uint48" }, { "internalType": "uint48", "name": "glasses", "type": "uint48" } ], "indexed": false, "internalType": "struct INounsSeeder.Seed", "name": "seed", "type": "tuple" } ], "name": "NounCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "noundersDAO", "type": "address" } ], "name": "NoundersDAOUpdated", "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": [], "name": "SeederLocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract INounsSeeder", "name": "seeder", "type": "address" } ], "name": "SeederUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DELEGATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "nounId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint96", "name": "votes", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "dataURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "descriptor", "outputs": [ { "internalType": "contract INounsDescriptorMinimal", "name": "", "type": "address" } ], "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": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "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": "isDescriptorLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMinterLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSeederLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lockDescriptor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lockMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lockSeeder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "noundersDAO", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxyRegistry", "outputs": [ { "internalType": "contract IProxyRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "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": [], "name": "seeder", "outputs": [ { "internalType": "contract INounsSeeder", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "seeds", "outputs": [ { "internalType": "uint48", "name": "body", "type": "uint48" }, { "internalType": "uint48", "name": "accessory", "type": "uint48" }, { "internalType": "uint48", "name": "head", "type": "uint48" }, { "internalType": "uint48", "name": "glasses", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newContractURIHash", "type": "string" } ], "name": "setContractURIHash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract INounsDescriptorMinimal", "name": "_descriptor", "type": "address" } ], "name": "setDescriptor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minter", "type": "address" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_noundersDAO", "type": "address" } ], "name": "setNoundersDAO", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract INounsSeeder", "name": "_seeder", "type": "address" } ], "name": "setSeeder", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" } ], "name": "votesToDelegate", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" } ]
610100604052602e60a08181529062003c2b60c03960159062000023908262000210565b5034801562000030575f80fd5b5060405162003c5938038062003c598339810160408190526200005391620002f4565b60405180604001604052806005815260200164426f756e7360d81b815250604051806040016040528060048152602001632127aaa760e11b815250620000a8620000a26200011f60201b60201c565b62000123565b6001620000b6838262000210565b506002620000c5828262000210565b5050600f80546001600160a01b03199081166001600160a01b039889161790915560108054821696881696909617909555506011805485169386169390931790925560128054909316908416179091551660805262000370565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200019b57607f821691505b602082108103620001ba57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200020b57805f5260205f20601f840160051c81016020851015620001e75750805b601f840160051c820191505b8181101562000208575f8155600101620001f3565b50505b505050565b81516001600160401b038111156200022c576200022c62000172565b62000244816200023d845462000186565b84620001c0565b602080601f8311600181146200027a575f8415620002625750858301515b5f19600386901b1c1916600185901b178555620002d4565b5f85815260208120601f198616915b82811015620002aa5788860151825594840194600190910190840162000289565b5085821015620002c857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6001600160a01b0381168114620002f1575f80fd5b50565b5f805f805f60a0868803121562000309575f80fd5b85516200031681620002dc565b60208701519095506200032981620002dc565b60408701519094506200033c81620002dc565b60608701519093506200034f81620002dc565b60808701519092506200036281620002dc565b809150509295509295909350565b60805161389b620003905f395f81816106090152611c62015261389b5ff3fe608060405234801561000f575f80fd5b50600436106102ff575f3560e01c80636fcfff4511610195578063c1b8e4e1116100e4578063e8a3d4851161009e578063f0503e8011610079578063f0503e8014610707578063f1127ed814610782578063f2fde38b146107e8578063fca3b5aa146107fb575f80fd5b8063e8a3d485146106d9578063e9580e91146106e1578063e985e9c5146106f4575f80fd5b8063c1b8e4e114610651578063c3cda52014610665578063c87b56dd14610678578063c8fc0c231461068b578063d50b31eb1461069f578063e7a324dc146106b2575f80fd5b80638da5cb5b1161014f578063b4b5ea571161012a578063b4b5ea57146105f1578063b50cbd9f14610604578063b88d4fde1461062b578063baedc1c41461063e575f80fd5b80638da5cb5b146105c657806395d89b41146105d6578063a22cb465146105de575f80fd5b80636fcfff451461051f57806370a0823114610559578063715018a61461056c57806376daebe114610574578063782d6fe11461057c5780637ecebe00146105a7575f80fd5b8063303e74df11610251578063587cde1e1161020b5780635f295a67116101e65780635f295a67146104de5780636352211e146104e6578063655932a4146104f9578063684931ed1461050c575f80fd5b8063587cde1e146104a55780635ac1e3bb146104b85780635c19a95c146104cb575f80fd5b8063303e74df14610438578063313ce5671461044b57806341b5d0de1461046457806342842e0e1461046c57806342966c681461047f5780634f6ccce714610492575f80fd5b8063095ea7b3116102bc5780631e688e10116102975780631e688e10146103d757806320606b70146103eb57806323b872dd146104125780632f745c5914610425575f80fd5b8063095ea7b3146103a65780631249c58b146103b957806318160ddd146103cf575f80fd5b806301b9a3971461030357806301ffc9a714610318578063058df0ab1461034057806306fdde03146103535780630754617214610368578063081812fc14610393575b5f80fd5b610316610311366004612e23565b61080e565b005b61032b610326366004612e53565b6108e6565b60405190151581526020015b60405180910390f35b61031661034e366004612e23565b610910565b61035b6109b8565b6040516103379190612ebb565b60105461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610337565b61037b6103a1366004612ecd565b610a48565b6103166103b4366004612ee4565b610adb565b6103c1610bef565b604051908152602001610337565b6009546103c1565b60125461032b90600160a01b900460ff1681565b6103c17f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b610316610420366004612f0e565b610cb9565b6103c1610433366004612ee4565b610cea565b60115461037b906001600160a01b031681565b6104525f81565b60405160ff9091168152602001610337565b610316610d7e565b61031661047a366004612f0e565b610e35565b61031661048d366004612ecd565b610e4f565b6103c16104a0366004612ecd565b610eda565b61037b6104b3366004612e23565b610f6a565b61035b6104c6366004612ecd565b610f9b565b6103166104d9366004612e23565b611082565b6103166110a0565b61037b6104f4366004612ecd565b611153565b600f5461037b906001600160a01b031681565b60125461037b906001600160a01b031681565b61054461052d366004612e23565b600d6020525f908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610337565b6103c1610567366004612e23565b6111c9565b61031661124e565b610316611282565b61058f61058a366004612ee4565b611335565b6040516001600160601b039091168152602001610337565b6103c16105b5366004612e23565b600e6020525f908152604090205481565b5f546001600160a01b031661037b565b61035b6115c8565b6103166105ec366004612f4c565b6115d7565b61058f6105ff366004612e23565b61169a565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61031661063936600461302e565b611713565b61031661064c3660046130a9565b61174b565b60125461032b90600160a81b900460ff1681565b6103166106733660046130ee565b611784565b61035b610686366004612ecd565b611a7c565b60125461032b90600160b01b900460ff1681565b6103166106ad366004612e23565b611b26565b6103c17fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b61035b611bea565b61058f6106ef366004612e23565b611c12565b61032b61070236600461314b565b611c3d565b610750610715366004612ecd565b60136020525f908152604090205465ffffffffffff8082169166010000000000008104821691600160601b8204811691600160901b90041684565b6040805165ffffffffffff95861681529385166020850152918416918301919091529091166060820152608001610337565b6107c4610790366004613177565b600c60209081525f928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6040805163ffffffff90931683526001600160601b03909116602083015201610337565b6103166107f6366004612e23565b611d0e565b610316610809366004612e23565b611da5565b5f546001600160a01b031633146108405760405162461bcd60e51b8152600401610837906131ab565b60405180910390fd5b601254600160a81b900460ff16156108915760405162461bcd60e51b815260206004820152601460248201527311195cd8dc9a5c1d1bdc881a5cc81b1bd8dad95960621b6044820152606401610837565b601180546001600160a01b0319166001600160a01b0383169081179091556040519081527f6e66ab22238a5471005895947c8f57db923c2a9c9c73180eff80864c21295c1b906020015b60405180910390a150565b5f6001600160e01b0319821663780e9d6360e01b148061090a575061090a82611e69565b92915050565b600f546001600160a01b0316331461096a5760405162461bcd60e51b815260206004820152601e60248201527f53656e646572206973206e6f7420746865206e6f756e646572732044414f00006044820152606401610837565b600f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f3a0b923617f180781f3530e464cb4a8b9393e69f47607e4eb28d61cd87ce968c906020016108db565b6060600180546109c7906131e0565b80601f01602080910402602001604051908101604052809291908181526020018280546109f3906131e0565b8015610a3e5780601f10610a1557610100808354040283529160200191610a3e565b820191905f5260205f20905b815481529060010190602001808311610a2157829003601f168201915b5050505050905090565b5f818152600360205260408120546001600160a01b0316610ac05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610837565b505f908152600560205260409020546001600160a01b031690565b5f610ae582611153565b9050806001600160a01b0316836001600160a01b031603610b525760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610837565b336001600160a01b0382161480610b6e5750610b6e8133611c3d565b610be05760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610837565b610bea8383611eb8565b505050565b6010545f906001600160a01b03163314610c465760405162461bcd60e51b815260206004820152601860248201527729b2b73232b91034b9903737ba103a34329036b4b73a32b960411b6044820152606401610837565b61071c60145411158015610c665750600a601454610c64919061322c565b155b15610c9557600f5460148054610c93926001600160a01b0316915f610c8a83613253565b91905055611f25565b505b60105460148054610cb4926001600160a01b0316915f610c8a83613253565b905090565b610cc333826120e1565b610cdf5760405162461bcd60e51b81526004016108379061326b565b610bea8383836121b6565b5f610cf4836111c9565b8210610d565760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610837565b506001600160a01b03919091165f908152600760209081526040808320938352929052205490565b5f546001600160a01b03163314610da75760405162461bcd60e51b8152600401610837906131ab565b601254600160a81b900460ff1615610df85760405162461bcd60e51b815260206004820152601460248201527311195cd8dc9a5c1d1bdc881a5cc81b1bd8dad95960621b6044820152606401610837565b6012805460ff60a81b1916600160a81b1790556040517f593e31e306c198bef259d839f7c6dc4ff7fc10c07f76fab193a210b03704105f905f90a1565b610bea83838360405180602001604052805f815250611713565b6010546001600160a01b03163314610ea45760405162461bcd60e51b815260206004820152601860248201527729b2b73232b91034b9903737ba103a34329036b4b73a32b960411b6044820152606401610837565b610ead8161234a565b60405181907f806be94a2ac8b92d74e99aa8add5a8e54528a01ec914a9e00d201a6480ed9863905f90a250565b5f610ee460095490565b8210610f475760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610837565b60098281548110610f5a57610f5a6132bc565b905f5260205f2001549050919050565b6001600160a01b038082165f908152600b60205260408120549091168015610f925780610f94565b825b9392505050565b5f818152600360205260409020546060906001600160a01b0316610fd15760405162461bcd60e51b8152600401610837906132d0565b6011545f8381526013602052604090819020905163114ea1ff60e11b815260048101859052905465ffffffffffff8082166024840152603082901c81166044840152606082901c8116606484015260909190911c1660848201526001600160a01b039091169063229d43fe9060a4015b5f60405180830381865afa15801561105b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261090a919081019061331b565b6001600160a01b0381166110935750335b61109d33826123d9565b50565b5f546001600160a01b031633146110c95760405162461bcd60e51b8152600401610837906131ab565b601254600160b01b900460ff16156111165760405162461bcd60e51b815260206004820152601060248201526f14d95959195c881a5cc81b1bd8dad95960821b6044820152606401610837565b6012805460ff60b01b1916600160b01b1790556040517ff59561f22794afcfb1e6be5c4733f5449fd167252a96b74bb06d341fb0dac7ed905f90a1565b5f818152600360205260408120546001600160a01b03168061090a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610837565b5f6001600160a01b0382166112335760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610837565b506001600160a01b03165f9081526004602052604090205490565b5f546001600160a01b031633146112775760405162461bcd60e51b8152600401610837906131ab565b6112805f612456565b565b5f546001600160a01b031633146112ab5760405162461bcd60e51b8152600401610837906131ab565b601254600160a01b900460ff16156112f85760405162461bcd60e51b815260206004820152601060248201526f135a5b9d195c881a5cc81b1bd8dad95960821b6044820152606401610837565b6012805460ff60a01b1916600160a01b1790556040517f192417b3f16b1ce69e0c59b0376549666650245ffc05e4b2569089dda8589b66905f90a1565b5f4382106113ab5760405162461bcd60e51b815260206004820152603760248201527f455243373231436865636b706f696e7461626c653a3a6765745072696f72566f60448201527f7465733a206e6f74207965742064657465726d696e65640000000000000000006064820152608401610837565b6001600160a01b0383165f908152600d602052604081205463ffffffff16908190036113da575f91505061090a565b6001600160a01b0384165f908152600c6020526040812084916113fe60018561338d565b63ffffffff908116825260208201929092526040015f2054161161146e576001600160a01b0384165f908152600c602052604081209061143f60018461338d565b63ffffffff16815260208101919091526040015f2054600160201b90046001600160601b0316915061090a9050565b6001600160a01b0384165f908152600c6020908152604080832083805290915290205463ffffffff168310156114a7575f91505061090a565b5f806114b460018461338d565b90505b8163ffffffff168163ffffffff161115611584575f60026114d8848461338d565b6114e291906133b1565b6114ec908361338d565b6001600160a01b0388165f908152600c6020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b0316918101919091529192508790036115585760200151945061090a9350505050565b805163ffffffff1687111561156f5781935061157d565b61157a60018361338d565b92505b50506114b7565b506001600160a01b0385165f908152600c6020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b6060600280546109c7906131e0565b336001600160a01b0383160361162f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610837565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6001600160a01b0381165f908152600d602052604081205463ffffffff16806116c3575f610f94565b6001600160a01b0383165f908152600c60205260408120906116e660018461338d565b63ffffffff16815260208101919091526040015f2054600160201b90046001600160601b03169392505050565b61171d33836120e1565b6117395760405162461bcd60e51b81526004016108379061326b565b611745848484846124a5565b50505050565b5f546001600160a01b031633146117745760405162461bcd60e51b8152600401610837906131ab565b6015611780828261341e565b5050565b5f7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666117ae6109b8565b805190602001206117bc4690565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08401526001600160a01b038b1660e084015261010083018a90526101208084018a90528251808503909101815261014084019092528151919093012061190160f01b610160830152610162820183905261018282018190529192505f906101a20160408051601f1981840301815282825280516020918201205f80855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa1580156118e4573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166119665760405162461bcd60e51b815260206004820152603660248201527f455243373231436865636b706f696e7461626c653a3a64656c656761746542796044820152755369673a20696e76616c6964207369676e617475726560501b6064820152608401610837565b6001600160a01b0381165f908152600e6020526040812080549161198983613253565b9190505589146119f65760405162461bcd60e51b815260206004820152603260248201527f455243373231436865636b706f696e7461626c653a3a64656c656761746542796044820152715369673a20696e76616c6964206e6f6e636560701b6064820152608401610837565b87421115611a655760405162461bcd60e51b815260206004820152603660248201527f455243373231436865636b706f696e7461626c653a3a64656c6567617465427960448201527514da59ce881cda59db985d1d5c9948195e1c1a5c995960521b6064820152608401610837565b611a6f818b6123d9565b505050505b505050505050565b5f818152600360205260409020546060906001600160a01b0316611ab25760405162461bcd60e51b8152600401610837906132d0565b6011545f8381526013602052604090819020905163b30c137b60e01b815260048101859052905465ffffffffffff8082166024840152603082901c81166044840152606082901c8116606484015260909190911c1660848201526001600160a01b039091169063b30c137b9060a401611041565b5f546001600160a01b03163314611b4f5760405162461bcd60e51b8152600401610837906131ab565b601254600160b01b900460ff1615611b9c5760405162461bcd60e51b815260206004820152601060248201526f14d95959195c881a5cc81b1bd8dad95960821b6044820152606401610837565b601280546001600160a01b0319166001600160a01b0383169081179091556040519081527fb3025222d01ce9a26c7f9d52bc3bfd0352366bd90a793c273fbfe1c81e0e288e906020016108db565b60606015604051602001611bfe91906134da565b604051602081830303815290604052905090565b5f61090a611c1f836111c9565b6040518060600160405280603d81526020016137f2603d91396124d8565b60405163c455279160e01b81526001600160a01b0383811660048301525f91818416917f0000000000000000000000000000000000000000000000000000000000000000169063c455279190602401602060405180830381865afa158015611ca7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ccb9190613567565b6001600160a01b031603611ce15750600161090a565b6001600160a01b038084165f9081526006602090815260408083209386168352929052205460ff16610f94565b5f546001600160a01b03163314611d375760405162461bcd60e51b8152600401610837906131ab565b6001600160a01b038116611d9c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610837565b61109d81612456565b5f546001600160a01b03163314611dce5760405162461bcd60e51b8152600401610837906131ab565b601254600160a01b900460ff1615611e1b5760405162461bcd60e51b815260206004820152601060248201526f135a5b9d195c881a5cc81b1bd8dad95960821b6044820152606401610837565b601080546001600160a01b0319166001600160a01b0383169081179091556040519081527fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a906020016108db565b5f6001600160e01b031982166380ac58cd60e01b1480611e9957506001600160e01b03198216635b5e139f60e01b145b8061090a57506301ffc9a760e01b6001600160e01b031983161461090a565b5f81815260056020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611eec82611153565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60125460115460405163422e2e9960e01b8152600481018490526001600160a01b0391821660248201525f928392169063422e2e9990604401608060405180830381865afa158015611f79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9d919061359c565b5f84815260136020908152604080832084518154868501518785015160609889015165ffffffffffff9485166bffffffffffffffffffffffff199094169390931766010000000000009285168302176bffffffffffffffffffffffff60601b1916600160601b918516820265ffffffffffff60901b191617600160901b938516840217948590558551608081018752858516815291850484169682019690965294830482169385019390935291900416928101929092525490915061206c906001600160a01b03168585612506565b827f5ea0f0f0344faac6fdf59b9f52126aaa5e6ed99e7c8ee7c34d3eb384a2a109b8826040516120d19190815165ffffffffffff9081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b60405180910390a2509092915050565b5f818152600360205260408120546001600160a01b03166121595760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610837565b5f61216383611153565b9050806001600160a01b0316846001600160a01b0316148061219e5750836001600160a01b031661219384610a48565b6001600160a01b0316145b806121ae57506121ae8185611c3d565b949350505050565b826001600160a01b03166121c982611153565b6001600160a01b0316146122315760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610837565b6001600160a01b0382166122935760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610837565b61229e838383612672565b6122a85f82611eb8565b6001600160a01b0383165f9081526004602052604081208054600192906122d0908490613617565b90915550506001600160a01b0382165f9081526004602052604081208054600192906122fd90849061362a565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716915f805160206137d283398151915291a4505050565b5f61235482611153565b9050612361815f84612672565b61236b5f83611eb8565b6001600160a01b0381165f908152600460205260408120805460019290612393908490613617565b90915550505f8281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416905f805160206137d2833981519152908390a45050565b5f6123e383610f6a565b6001600160a01b038481165f818152600b602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a45f61244984611c12565b9050611745828483612695565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6124b08484846121b6565b6124bc84848484612836565b6117455760405162461bcd60e51b81526004016108379061363d565b5f81600160601b84106124fe5760405162461bcd60e51b81526004016108379190612ebb565b509192915050565b6001600160a01b03821661255c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610837565b5f818152600360205260409020546001600160a01b0316156125c05760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610837565b6125cb5f8383612672565b6001600160a01b0382165f9081526004602052604081208054600192906125f390849061362a565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b03868116919091179091559051839291861691905f805160206137d2833981519152908290a480826001600160a01b0316846001600160a01b03165f805160206137d283398151915260405160405180910390a4505050565b61267d838383612933565b610bea61268984610f6a565b61269284610f6a565b60015b816001600160a01b0316836001600160a01b0316141580156126bf57505f816001600160601b0316115b15610bea576001600160a01b0383161561277f576001600160a01b0383165f908152600d602052604081205463ffffffff1690816126fd575f612747565b6001600160a01b0385165f908152600c602052604081209061272060018561338d565b63ffffffff16815260208101919091526040015f2054600160201b90046001600160601b03165b90505f61276d828560405180606001604052806037815260200161382f603791396129ea565b905061277b86848484612a2b565b5050505b6001600160a01b03821615610bea576001600160a01b0382165f908152600d602052604081205463ffffffff1690816127b8575f612802565b6001600160a01b0384165f908152600c60205260408120906127db60018561338d565b63ffffffff16815260208101919091526040015f2054600160201b90046001600160601b03165b90505f612828828560405180606001604052806036815260200161375860369139612c1b565b9050611a7485848484612a2b565b5f6001600160a01b0384163b1561292857604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061287990339089908890889060040161368f565b6020604051808303815f875af19250505080156128b3575060408051601f3d908101601f191682019092526128b0918101906136cb565b60015b61290e573d8080156128e0576040519150601f19603f3d011682016040523d82523d5f602084013e6128e5565b606091505b5080515f036129065760405162461bcd60e51b81526004016108379061363d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506121ae565b506001949350505050565b6001600160a01b03831661298d5761298881600980545f838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b6129b0565b816001600160a01b0316836001600160a01b0316146129b0576129b08382612c67565b6001600160a01b0382166129c757610bea81612d00565b826001600160a01b0316826001600160a01b031614610bea57610bea8282612da7565b5f836001600160601b0316836001600160601b031611158290612a205760405162461bcd60e51b81526004016108379190612ebb565b506121ae83856136e6565b5f612a4e4360405180608001604052806044815260200161378e60449139612de9565b90505f8463ffffffff16118015612aa557506001600160a01b0385165f908152600c6020526040812063ffffffff831691612a8a60018861338d565b63ffffffff908116825260208201929092526040015f205416145b15612b17576001600160a01b0385165f908152600c602052604081208391612ace60018861338d565b63ffffffff16815260208101919091526040015f2080546001600160601b0392909216600160201b026fffffffffffffffffffffffff0000000019909216919091179055612bc6565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b165f908152600c82528681208b8616825290915294909420925183549451909116600160201b026fffffffffffffffffffffffffffffffff19909416911617919091179055612b96846001613706565b6001600160a01b0386165f908152600d60205260409020805463ffffffff191663ffffffff929092169190911790555b604080516001600160601b038086168252841660208201526001600160a01b038716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b5f80612c278486613723565b9050846001600160601b0316816001600160601b031610158390612c5e5760405162461bcd60e51b81526004016108379190612ebb565b50949350505050565b5f6001612c73846111c9565b612c7d9190613617565b5f83815260086020526040902054909150808214612cce576001600160a01b0384165f9081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b505f9182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b6009545f90612d1190600190613617565b5f838152600a602052604081205460098054939450909284908110612d3857612d386132bc565b905f5260205f20015490508060098381548110612d5757612d576132bc565b5f918252602080832090910192909255828152600a90915260408082208490558582528120556009805480612d8e57612d8e613743565b600190038181905f5260205f20015f9055905550505050565b5f612db1836111c9565b6001600160a01b039093165f908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b5f81600160201b84106124fe5760405162461bcd60e51b81526004016108379190612ebb565b6001600160a01b038116811461109d575f80fd5b5f60208284031215612e33575f80fd5b8135610f9481612e0f565b6001600160e01b03198116811461109d575f80fd5b5f60208284031215612e63575f80fd5b8135610f9481612e3e565b5f5b83811015612e88578181015183820152602001612e70565b50505f910152565b5f8151808452612ea7816020860160208601612e6e565b601f01601f19169290920160200192915050565b602081525f610f946020830184612e90565b5f60208284031215612edd575f80fd5b5035919050565b5f8060408385031215612ef5575f80fd5b8235612f0081612e0f565b946020939093013593505050565b5f805f60608486031215612f20575f80fd5b8335612f2b81612e0f565b92506020840135612f3b81612e0f565b929592945050506040919091013590565b5f8060408385031215612f5d575f80fd5b8235612f6881612e0f565b915060208301358015158114612f7c575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612fc457612fc4612f87565b604052919050565b5f67ffffffffffffffff821115612fe557612fe5612f87565b50601f01601f191660200190565b5f61300561300084612fcc565b612f9b565b9050828152838383011115613018575f80fd5b828260208301375f602084830101529392505050565b5f805f8060808587031215613041575f80fd5b843561304c81612e0f565b9350602085013561305c81612e0f565b925060408501359150606085013567ffffffffffffffff81111561307e575f80fd5b8501601f8101871361308e575f80fd5b61309d87823560208401612ff3565b91505092959194509250565b5f602082840312156130b9575f80fd5b813567ffffffffffffffff8111156130cf575f80fd5b8201601f810184136130df575f80fd5b6121ae84823560208401612ff3565b5f805f805f8060c08789031215613103575f80fd5b863561310e81612e0f565b95506020870135945060408701359350606087013560ff81168114613131575f80fd5b9598949750929560808101359460a0909101359350915050565b5f806040838503121561315c575f80fd5b823561316781612e0f565b91506020830135612f7c81612e0f565b5f8060408385031215613188575f80fd5b823561319381612e0f565b9150602083013563ffffffff81168114612f7c575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806131f457607f821691505b60208210810361321257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601260045260245ffd5b5f8261323a5761323a613218565b500690565b634e487b7160e01b5f52601160045260245ffd5b5f600182016132645761326461323f565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b6020808252602b908201527f4e6f756e73546f6b656e3a2055524920717565727920666f72206e6f6e65786960408201526a39ba32b73a103a37b5b2b760a91b606082015260800190565b5f6020828403121561332b575f80fd5b815167ffffffffffffffff811115613341575f80fd5b8201601f81018413613351575f80fd5b805161335f61300082612fcc565b818152856020838501011115613373575f80fd5b613384826020830160208601612e6e565b95945050505050565b63ffffffff8281168282160390808211156133aa576133aa61323f565b5092915050565b5f63ffffffff808416806133c7576133c7613218565b92169190910492915050565b601f821115610bea57805f5260205f20601f840160051c810160208510156133f85750805b601f840160051c820191505b81811015613417575f8155600101613404565b5050505050565b815167ffffffffffffffff81111561343857613438612f87565b61344c8161344684546131e0565b846133d3565b602080601f83116001811461347f575f84156134685750858301515b5f19600386901b1c1916600185901b178555611a74565b5f85815260208120601f198616915b828110156134ad5788860151825594840194600190910190840161348e565b50858210156134ca57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b66697066733a2f2f60c81b81525f60075f84546134f6816131e0565b6001828116801561350e57600181146135295761355a565b60ff198416600789015260078315158402890101945061355a565b885f526020805f205f5b8581101561354e5781548b82018a0152908401908201613533565b50505060078389010194505b5092979650505050505050565b5f60208284031215613577575f80fd5b8151610f9481612e0f565b805165ffffffffffff81168114613597575f80fd5b919050565b5f608082840312156135ac575f80fd5b6040516080810181811067ffffffffffffffff821117156135cf576135cf612f87565b6040526135db83613582565b81526135e960208401613582565b60208201526135fa60408401613582565b604082015261360b60608401613582565b60608201529392505050565b8181038181111561090a5761090a61323f565b8082018082111561090a5761090a61323f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906136c190830184612e90565b9695505050505050565b5f602082840312156136db575f80fd5b8151610f9481612e3e565b6001600160601b038281168282160390808211156133aa576133aa61323f565b63ffffffff8181168382160190808211156133aa576133aa61323f565b6001600160601b038181168382160190808211156133aa576133aa61323f565b634e487b7160e01b5f52603160045260245ffdfe455243373231436865636b706f696e7461626c653a3a5f6d6f766544656c6567617465733a20616d6f756e74206f766572666c6f7773455243373231436865636b706f696e7461626c653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef455243373231436865636b706f696e7461626c653a3a766f746573546f44656c65676174653a20616d6f756e7420657863656564732039362062697473455243373231436865636b706f696e7461626c653a3a5f6d6f766544656c6567617465733a20616d6f756e7420756e646572666c6f7773a2646970667358221220ab55a100ce324eceef216a5bc99675ce5bbd8e8bb4cd2b12afd54c3dc42c013864736f6c63430008170033516d5a69316e3739467157743274544c7743716979366e4c4d36784c475273455051354a6d52654a514b4e4e7a580000000000000000000000001a90fbb6eb1f8d43d94f595c99df7a5081e479090000000000000000000000009c846ecac540d09c398a771c633acfc1e334536b000000000000000000000000317660f2ed0a48a55f13457bce7eee0f225a2695000000000000000000000000e5b2455c71dcd7d9df66a4686a67e005a316a08a0000000000000000000000000000000000000000000000000000000000000000