solc-0.8.35 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 optimized

1835 bytes

60806040526004361061009a575f3560e01c8063313ce56711610062578063313ce5671461015357806370a082311461017e57806395d89b41146101a9578063a9059cbb146101bd578063d0e30db0146101dc578063dd62ed3e146101e4575f5ffd5b806306fdde031461009e578063095ea7b3146100c857806318160ddd146100f757806323b872dd146101135780632e1a7d4d14610132575b5f5ffd5b3480156100a9575f5ffd5b506100b261021a565b6040516100bf91906105a6565b60405180910390f35b3480156100d3575f5ffd5b506100e76100e23660046105f6565b6102a5565b60405190151581526020016100bf565b348015610102575f5ffd5b50475b6040519081526020016100bf565b34801561011e575f5ffd5b506100e761012d36600461061e565b610311565b34801561013d575f5ffd5b5061015161014c366004610658565b61048c565b005b34801561015e575f5ffd5b5060025461016c9060ff1681565b60405160ff90911681526020016100bf565b348015610189575f5ffd5b5061010561019836600461066f565b60036020525f908152604090205481565b3480156101b4575f5ffd5b506100b261052c565b3480156101c8575f5ffd5b506100e76101d73660046105f6565b610539565b61015161054c565b3480156101ef575f5ffd5b506101056101fe366004610688565b600460209081525f928352604080842090915290825290205481565b5f8054610226906106b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610252906106b9565b801561029d5780601f106102745761010080835404028352916020019161029d565b820191905f5260205f20905b81548152906001019060200180831161028057829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ff9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f90815260036020526040812054821115610334575f5ffd5b6001600160a01b038416331480159061037057506001600160a01b0384165f9081526004602090815260408083203384529091529020545f1914155b156103db576001600160a01b0384165f9081526004602090815260408083203384529091529020548211156103a3575f5ffd5b6001600160a01b0384165f908152600460209081526040808320338452909152812080548492906103d5908490610705565b90915550505b6001600160a01b0384165f9081526003602052604081208054849290610402908490610705565b90915550506001600160a01b0383165f908152600360205260408120805484929061042e908490610718565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161047a91815260200190565b60405180910390a35060019392505050565b335f908152600360205260409020548111156104a6575f5ffd5b335f90815260036020526040812080548392906104c4908490610705565b9091555050604051339082156108fc029083905f818181858888f193505050501580156104f3573d5f5f3e3d5ffd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b60018054610226906106b9565b5f610545338484610311565b9392505050565b335f908152600360205260408120805434929061056a908490610718565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105f1575f5ffd5b919050565b5f5f60408385031215610607575f5ffd5b610610836105db565b946020939093013593505050565b5f5f5f60608486031215610630575f5ffd5b610639846105db565b9250610647602085016105db565b929592945050506040919091013590565b5f60208284031215610668575f5ffd5b5035919050565b5f6020828403121561067f575f5ffd5b610545826105db565b5f5f60408385031215610699575f5ffd5b6106a2836105db565b91506106b0602084016105db565b90509250929050565b600181811c908216806106cd57607f821691505b6020821081036106eb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561030b5761030b6106f1565b8082018082111561030b5761030b6106f156