[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "_baseURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "AllowListChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "_nft_count", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "isInAllowlist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setAllowList", "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": "string", "name": "newURI", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60a060405234801561000f575f80fd5b50604051612a2c380380612a2c83398101604081905261002e9161031f565b82825f6001338061005957604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610062816100d6565b50600561006f8582610424565b50600661007c8482610424565b506080819052335f818152600860205260409020805460ff191660011790556100ba906100ab6012600a6105d9565b6100b590856105ee565b610125565b5050505080600990816100cd9190610424565b50505050610618565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661014e57604051639cfea58360e01b81525f6004820152602401610050565b6101595f838361015d565b5050565b6001600160a01b038316610187578060075f82825461017c9190610605565b909155506101f79050565b6001600160a01b0383165f90815260016020526040902054818110156101d95760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610050565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b03821661021357600780548290039055610231565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161027691815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126102a6575f80fd5b81516001600160401b03808211156102c0576102c0610283565b604051601f8301601f19908116603f011681019082821181831017156102e8576102e8610283565b81604052838152866020858801011115610300575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f805f60608486031215610331575f80fd5b83516001600160401b0380821115610347575f80fd5b61035387838801610297565b94506020860151915080821115610368575f80fd5b61037487838801610297565b93506040860151915080821115610389575f80fd5b5061039686828701610297565b9150509250925092565b600181811c908216806103b457607f821691505b6020821081036103d257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561041f57805f5260205f20601f840160051c810160208510156103fd5750805b601f840160051c820191505b8181101561041c575f8155600101610409565b50505b505050565b81516001600160401b0381111561043d5761043d610283565b6104518161044b84546103a0565b846103d8565b602080601f831160018114610484575f841561046d5750858301515b5f19600386901b1c1916600185901b1785556104db565b5f85815260208120601f198616915b828110156104b257888601518255948401946001909101908401610493565b50858210156104cf57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561053157815f1904821115610517576105176104e3565b8085161561052457918102915b93841c93908002906104fc565b509250929050565b5f82610547575060016105d3565b8161055357505f6105d3565b816001811461056957600281146105735761058f565b60019150506105d3565b60ff841115610584576105846104e3565b50506001821b6105d3565b5060208310610133831016604e8410600b84101617156105b2575081810a6105d3565b6105bc83836104f7565b805f19048211156105cf576105cf6104e3565b0290505b92915050565b5f6105e760ff841683610539565b9392505050565b80820281158282048414176105d3576105d36104e3565b808201808211156105d3576105d36104e3565b6080516123f56106375f395f81816102f2015261042e01526123f55ff3fe608060405234801561000f575f80fd5b50600436106101ba575f3560e01c80634f5dd7a0116100f3578063a22cb46511610093578063dd62ed3e1161006e578063dd62ed3e146103ba578063e985e9c5146103f2578063f242432a14610405578063f2fde38b14610418575f80fd5b8063a22cb46514610381578063a457c2d714610394578063a9059cbb146103a7575f80fd5b8063715018a6116100ce578063715018a6146103445780637666f1251461034c5780638da5cb5b1461035f57806395d89b4114610379575f80fd5b80634f5dd7a0146102ed5780636c0360eb1461031457806370a082311461031c575f80fd5b806329d0fdc01161015e5780633950935111610139578063395093511461029457806340c10f19146102a757806342966c68146102ba5780634e1273f4146102cd575f80fd5b806329d0fdc01461025f5780632eb2c2d614610272578063313ce56714610285575f80fd5b8063095ea7b311610199578063095ea7b31461020e5780630e89341c1461023157806318160ddd1461024457806323b872dd1461024c575f80fd5b8062fdd58e146101be57806302fe5305146101e457806306fdde03146101f9575b5f80fd5b6101d16101cc366004611b20565b61042b565b6040519081526020015b60405180910390f35b6101f76101f2366004611b5c565b6104bd565b005b6102016104d5565b6040516101db9190611c35565b61022161021c366004611b20565b610565565b60405190151581526020016101db565b61020161023f366004611c47565b61057c565b6007546101d1565b61022161025a366004611c5e565b6105b0565b61022161026d366004611c97565b6105d3565b6101f7610280366004611d36565b6105f0565b604051601281526020016101db565b6102216102a2366004611b20565b6106be565b6101f76102b5366004611b20565b610701565b6101f76102c8366004611c47565b610848565b6102e06102db366004611de9565b6108a4565b6040516101db9190611e8a565b6101d17f000000000000000000000000000000000000000000000000000000000000000081565b610201610997565b6101d161032a366004611c97565b6001600160a01b03165f9081526001602052604090205490565b6101f7610a23565b6101f761035a366004611e9c565b610a36565b5f546040516001600160a01b0390911681526020016101db565b610201610b9c565b6101f761038f366004611e9c565b610bab565b6102216103a2366004611b20565b610c40565b6102216103b5366004611b20565b610cc2565b6101d16103c8366004611ed5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b610221610400366004611ed5565b610ccf565b6101f7610413366004611f06565b610cfc565b6101f7610426366004611c97565b610d65565b5f7f000000000000000000000000000000000000000000000000000000000000000082106104935760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081d1bdad95b881a5960821b60448201526064015b60405180910390fd5b505f8181526003602090815260408083206001600160a01b03861684529091529020545b92915050565b6104c5610da2565b60096104d18282611ff5565b5050565b6060600580546104e490611f79565b80601f016020809104026020016040519081016040528092919081815260200182805461051090611f79565b801561055b5780601f106105325761010080835404028352916020019161055b565b820191905f5260205f20905b81548152906001019060200180831161053e57829003601f168201915b5050505050905090565b5f33610572818585610ddd565b5060019392505050565b6060600961058983610dea565b60405160200161059a9291906120b1565b6040516020818303038152906040529050919050565b5f336105bd858285610e7a565b6105c8858585610eef565b506001949350505050565b6001600160a01b03165f9081526008602052604090205460ff1690565b336001600160a01b0389168114801590610611575061060f8982610ccf565b155b1561064257604051634843fdfb60e01b81526001600160a01b0380831660048301528a16602482015260440161048a565b6106b389898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808d0282810182019093528c82529093508c92508b9182918501908490808284375f920191909152508a925089915061104b9050565b505050505050505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106f89185906106f3908661116d565b610ddd565b50600192915050565b60648111156107785760405162461bcd60e51b815260206004820152603e60248201527f4d696e74696e672076616c7565206578636565647320746865206d6178696d7560448201527f6d206f662031303020746f6b656e73206d696e746564207065722074782e0000606482015260840161048a565b6001600160a01b0382166107a157604051639cfea58360e01b81525f600482015260240161048a565b6001600160a01b0382165f908152600160205260409020546107d8836107c96012600a612241565b6107d3908561224f565b61118a565b6107e1836105d3565b610843575f6107f26012600a612241565b6107fc9083612266565b6108086012600a612241565b6001600160a01b0386165f9081526001602052604090205461082a9190612266565b6108349190612285565b9050610841845f836111be565b505b505050565b3380610869576040516313053d9360e21b81525f600482015260240161048a565b610872816105d3565b61089a576040516313053d9360e21b81526001600160a01b038216600482015260240161048a565b6104d18183611218565b60608382146108d057604051633b5cfc6960e21b8152600481018390526024810185905260440161048a565b5f8467ffffffffffffffff8111156108ea576108ea611b48565b604051908082528060200260200182016040528015610913578160200160208202803683370190505b5090505f5b8581101561098d5761096887878381811061093557610935612298565b905060200201602081019061094a9190611c97565b86868481811061095c5761095c612298565b9050602002013561042b565b82828151811061097a5761097a612298565b6020908102919091010152600101610918565b5095945050505050565b600980546109a490611f79565b80601f01602080910402602001604051908101604052809291908181526020018280546109d090611f79565b8015610a1b5780601f106109f257610100808354040283529160200191610a1b565b820191905f5260205f20905b8154815290600101906020018083116109fe57829003601f168201915b505050505081565b610a2b610da2565b610a345f61124c565b565b610a3e610da2565b6001600160a01b0382165f9081526008602052604090205481151560ff909116151503610abd5760405162461bcd60e51b815260206004820152602760248201527f41737369676e696e67207468652073616d65207374617465206973206e6f7420604482015266185b1b1bddd95960ca1b606482015260840161048a565b6001600160a01b0382165f908152600860209081526040808320805460ff1916851580159190911790915560019092529091205490610b26575f610b036012600a612241565b610b0d9083612266565b90508015610b2057610b20845f8361129b565b50610b52565b5f610b336012600a612241565b610b3d9083612266565b90508015610b5057610b50845f836111be565b505b826001600160a01b03167fd003311099c643a28802147fdbc087dd026e2850e364b69a16513a29f4aa2b4983604051610b8f911515815260200190565b60405180910390a2505050565b6060600680546104e490611f79565b6001600160a01b038216610bd457604051633eaa03e360e01b81525f600482015260240161048a565b335f8181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155905190815283917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191015b60405180910390a3505050565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610cb35760405162461bcd60e51b815260206004820152601e60248201527f4445435245415345445f414c4c4f57414e43455f42454c4f575f5a45524f0000604482015260640161048a565b61057233856106f384876112f4565b5f33610572818585610eef565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205460ff1690565b336001600160a01b0387168114801590610d1d5750610d1b8782610ccf565b155b15610d4e57604051634843fdfb60e01b81526001600160a01b0380831660048301528816602482015260440161048a565b610d5c878787878787611316565b50505050505050565b610d6d610da2565b6001600160a01b038116610d9657604051631e4fbdf760e01b81525f600482015260240161048a565b610d9f8161124c565b50565b33610db45f546001600160a01b031690565b6001600160a01b031614610a345760405163118cdaa760e01b815233600482015260240161048a565b6108438383836001611426565b60605f610df6836114f8565b60010190505f8167ffffffffffffffff811115610e1557610e15611b48565b6040519080825280601f01601f191660200182016040528015610e3f576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610e4957509392505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f1981146108415781811015610ee157604051630c95cf2760e11b81526001600160a01b0384166004820152602481018290526044810183905260640161048a565b61084184848484035f611426565b6001600160a01b038316610f18576040516313053d9360e21b81525f600482015260240161048a565b6001600160a01b038216610f4157604051639cfea58360e01b81525f600482015260240161048a565b6001600160a01b038084165f90815260016020526040808220549285168252902054610f6e8585856115cf565b610f77856105d3565b610fd9575f610f886012600a612241565b6001600160a01b0387165f90815260016020526040902054610faa9190612266565b610fb66012600a612241565b610fc09085612266565b610fca9190612285565b9050610fd7865f8361129b565b505b610fe2846105d3565b611044575f610ff36012600a612241565b610ffd9083612266565b6110096012600a612241565b6001600160a01b0387165f9081526001602052604090205461102b9190612266565b6110359190612285565b9050611042855f836111be565b505b5050505050565b6001600160a01b03851661107457604051639cfea58360e01b81525f600482015260240161048a565b6001600160a01b03861661109d576040516313053d9360e21b81525f600482015260240161048a565b5f805b85518110156110d8578481815181106110bb576110bb612298565b6020026020010151826110ce91906122ac565b91506001016110a0565b506110f987876110ea6012600a612241565b6110f4908561224f565b6115cf565b611102876105d3565b61111257611112875f87876116e8565b61111b866105d3565b610d5c5761112a865f836111be565b610d5c335f88888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506118fd92505050565b5f61117882846122ac565b9050828110156104b7576104b76122bf565b6001600160a01b0382166111b357604051639cfea58360e01b81525f600482015260240161048a565b6104d15f83836115cf565b6001600160a01b0383166111e757604051632bfa23e760e11b81525f600482015260240161048a565b604080516001808252602082018590528183019081526060820184905260808201909252906110445f8684846116e8565b6001600160a01b038216611241576040516313053d9360e21b81525f600482015260240161048a565b6104d1825f836115cf565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166112c357604051626a0d4560e21b81525f600482015260240161048a565b60408051600180825260208201859052818301908152606082018490526080820190925290611044855f84846116e8565b5f82821115611305576113056122bf565b61130f8284612285565b9392505050565b6001600160a01b03851661133f57604051639cfea58360e01b81525f600482015260240161048a565b6001600160a01b038616611368576040516313053d9360e21b81525f600482015260240161048a565b604080516001808252602082018790528183019081526060820186905260808201909252906113a8888861139e6012600a612241565b6110f4908961224f565b6113b1886105d3565b6113c1576113c1885f84846116e8565b6113ca876105d3565b61141c576113d9875f876111be565b61141c335f89898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611a1e92505050565b5050505050505050565b6001600160a01b03841661144f576040516322f051b160e21b81525f600482015260240161048a565b6001600160a01b0383166114785760405163270af7ed60e11b81525f600482015260240161048a565b6001600160a01b038085165f908152600260209081526040808320938716835292905220829055801561084157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516114ea91815260200190565b60405180910390a350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106115365772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611562576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061158057662386f26fc10000830492506010015b6305f5e1008310611598576305f5e100830492506008015b61271083106115ac57612710830492506004015b606483106115be576064830492506002015b600a83106104b75760010192915050565b6001600160a01b0383166115f9578060075f8282546115ee91906122ac565b909155506116699050565b6001600160a01b0383165f908152600160205260409020548181101561164b5760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161048a565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b038216611685576007805482900390556116a3565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c3391815260200190565b80518251146117175781518151604051633b5cfc6960e21b81526004810192909252602482015260440161048a565b335f5b835181101561181f576020818102858101820151908501909101516001600160a01b038816156117cf575f8281526003602090815260408083206001600160a01b038c168452909152902054818110156117a7576040516303dee4c560e01b81526001600160a01b038a16600482015260248101829052604481018390526064810184905260840161048a565b5f8381526003602090815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615611815575f8281526003602090815260408083206001600160a01b038b1684529091528120805483929061180f9084906122ac565b90915550505b505060010161171a565b50825160010361189f5760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611890929190918252602082015260400190565b60405180910390a45050611044565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516118ee9291906122d3565b60405180910390a45050505050565b6001600160a01b0384163b156110425760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061194190899089908890889088906004016122f7565b6020604051808303815f875af192505050801561197b575060408051601f3d908101601f1916820190925261197891810190612354565b60015b6119e2573d8080156119a8576040519150601f19603f3d011682016040523d82523d5f602084013e6119ad565b606091505b5080515f036119da57604051632bfa23e760e11b81526001600160a01b038616600482015260240161048a565b805181602001fd5b6001600160e01b0319811663bc197c8160e01b14610d5c57604051632bfa23e760e11b81526001600160a01b038616600482015260240161048a565b6001600160a01b0384163b156110425760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611a62908990899088908890889060040161237b565b6020604051808303815f875af1925050508015611a9c575060408051601f3d908101601f19168201909252611a9991810190612354565b60015b611ac9573d8080156119a8576040519150601f19603f3d011682016040523d82523d5f602084013e6119ad565b6001600160e01b0319811663f23a6e6160e01b14610d5c57604051632bfa23e760e11b81526001600160a01b038616600482015260240161048a565b80356001600160a01b0381168114611b1b575f80fd5b919050565b5f8060408385031215611b31575f80fd5b611b3a83611b05565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611b6c575f80fd5b813567ffffffffffffffff80821115611b83575f80fd5b818401915084601f830112611b96575f80fd5b813581811115611ba857611ba8611b48565b604051601f8201601f19908116603f01168101908382118183101715611bd057611bd0611b48565b81604052828152876020848701011115611be8575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61130f6020830184611c07565b5f60208284031215611c57575f80fd5b5035919050565b5f805f60608486031215611c70575f80fd5b611c7984611b05565b9250611c8760208501611b05565b9150604084013590509250925092565b5f60208284031215611ca7575f80fd5b61130f82611b05565b5f8083601f840112611cc0575f80fd5b50813567ffffffffffffffff811115611cd7575f80fd5b6020830191508360208260051b8501011115611cf1575f80fd5b9250929050565b5f8083601f840112611d08575f80fd5b50813567ffffffffffffffff811115611d1f575f80fd5b602083019150836020828501011115611cf1575f80fd5b5f805f805f805f8060a0898b031215611d4d575f80fd5b611d5689611b05565b9750611d6460208a01611b05565b9650604089013567ffffffffffffffff80821115611d80575f80fd5b611d8c8c838d01611cb0565b909850965060608b0135915080821115611da4575f80fd5b611db08c838d01611cb0565b909650945060808b0135915080821115611dc8575f80fd5b50611dd58b828c01611cf8565b999c989b5096995094979396929594505050565b5f805f8060408587031215611dfc575f80fd5b843567ffffffffffffffff80821115611e13575f80fd5b611e1f88838901611cb0565b90965094506020870135915080821115611e37575f80fd5b50611e4487828801611cb0565b95989497509550505050565b5f815180845260208085019450602084015f5b83811015611e7f57815187529582019590820190600101611e63565b509495945050505050565b602081525f61130f6020830184611e50565b5f8060408385031215611ead575f80fd5b611eb683611b05565b915060208301358015158114611eca575f80fd5b809150509250929050565b5f8060408385031215611ee6575f80fd5b611eef83611b05565b9150611efd60208401611b05565b90509250929050565b5f805f805f8060a08789031215611f1b575f80fd5b611f2487611b05565b9550611f3260208801611b05565b94506040870135935060608701359250608087013567ffffffffffffffff811115611f5b575f80fd5b611f6789828a01611cf8565b979a9699509497509295939492505050565b600181811c90821680611f8d57607f821691505b602082108103611fab57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561084357805f5260205f20601f840160051c81016020851015611fd65750805b601f840160051c820191505b81811015611044575f8155600101611fe2565b815167ffffffffffffffff81111561200f5761200f611b48565b6120238161201d8454611f79565b84611fb1565b602080601f831160018114612056575f841561203f5750858301515b5f19600386901b1c1916600185901b178555611042565b5f85815260208120601f198616915b8281101561208457888601518255948401946001909101908401612065565b50858210156120a157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f8084546120be81611f79565b600182811680156120d657600181146120eb57612117565b60ff1984168752821515830287019450612117565b885f526020805f205f5b8581101561210e5781548a8201529084019082016120f5565b50505082870194505b50505050602f60f81b815283518060208601600184015e64173539b7b760d91b9101600181019182526006015b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561219b57815f19048211156121815761218161214d565b8085161561218e57918102915b93841c9390800290612166565b509250929050565b5f826121b1575060016104b7565b816121bd57505f6104b7565b81600181146121d357600281146121dd576121f9565b60019150506104b7565b60ff8411156121ee576121ee61214d565b50506001821b6104b7565b5060208310610133831016604e8410600b841016171561221c575081810a6104b7565b6122268383612161565b805f19048211156122395761223961214d565b029392505050565b5f61130f60ff8416836121a3565b80820281158282048414176104b7576104b761214d565b5f8261228057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104b7576104b761214d565b634e487b7160e01b5f52603260045260245ffd5b808201808211156104b7576104b761214d565b634e487b7160e01b5f52600160045260245ffd5b604081525f6122e56040830185611e50565b82810360208401526121448185611e50565b6001600160a01b0386811682528516602082015260a0604082018190525f9061232290830186611e50565b82810360608401526123348186611e50565b905082810360808401526123488185611c07565b98975050505050505050565b5f60208284031215612364575f80fd5b81516001600160e01b03198116811461130f575f80fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906123b490830184611c07565b97965050505050505056fea26469706673582212204930b2dbc69c3c6bccd43b0b710381f0813d13bf70f1a6928a4d0168b4170c2764736f6c63430008190033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000094772617920446f67650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000547524f4745000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004368747470733a2f2f697066732e696f2f697066732f516d665773387875536a5a636847686932586e3858526f4d39317a42736f53456d566842515063555946716878420000000000000000000000000000000000000000000000000000000000
0xa26469706673582212204930b2dbc69c3c6bccd43b0b710381f0813d13bf70f1a6928a4d0168b4170c2764736f6c63430008190033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000094772617920446f67650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000547524f4745000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004368747470733a2f2f697066732e696f2f697066732f516d665773387875536a5a636847686932586e3858526f4d39317a42736f53456d566842515063555946716878420000000000000000000000000000000000000000000000000000000000