0x60806040526040516200128938038062001289833981016040819052620000269162000337565b6200003133620000fc565b60046200003f868262000475565b5060056200004e858262000475565b506006805460ff191660ff8516179055600380546001600160a01b0319166001600160a01b03841617905562000097620000906000546001600160a01b031690565b826200014c565b30620000ab6000546001600160a01b031690565b6001600160a01b03167f56358b41df5fa59f5639228f0930994cbdde383c8a8fd74e06c04e1deebe356260006001604051620000e992919062000541565b60405180910390a3505050505062000590565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001a75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620001c3816007546200025b60201b620005971790919060201c565b6007556001600160a01b038216600090815260016020908152604090912054620001f8918390620005976200025b821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200024a9085815260200190565b60405180910390a35050565b505050565b60006200026982846200056e565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029a57600080fd5b81516001600160401b0380821115620002b757620002b762000272565b604051601f8301601f19908116603f01168101908282118183101715620002e257620002e262000272565b81604052838152602092508683858801011115620002ff57600080fd5b600091505b8382101562000323578582018301518183018401529082019062000304565b600093810190920192909252949350505050565b600080600080600060a086880312156200035057600080fd5b85516001600160401b03808211156200036857600080fd5b6200037689838a0162000288565b965060208801519150808211156200038d57600080fd5b506200039c8882890162000288565b945050604086015160ff81168114620003b457600080fd5b60608701519093506001600160a01b0381168114620003d257600080fd5b80925050608086015190509295509295909350565b600181811c90821680620003fc57607f821691505b6020821081036200041d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025657600081815260208120601f850160051c810160208610156200044c5750805b601f850160051c820191505b818110156200046d5782815560010162000458565b505050505050565b81516001600160401b0381111562000491576200049162000272565b620004a981620004a28454620003e7565b8462000423565b602080601f831160018114620004e15760008415620004c85750858301515b600019600386901b1c1916600185901b1785556200046d565b600085815260208120601f198616915b828110156200051257888601518255948401946001909101908401620004f1565b5085821015620005315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408101600184106200056457634e487b7160e01b600052602160045260246000fd5b9281526020015290565b808201808211156200026c57634e487b7160e01b600052601160045260246000fd5b610ce980620005a06000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101f1578063a9059cbb14610204578063dd62ed3e14610217578063f2fde38b1461025057600080fd5b806370a082311461019d578063715018a6146101c65780638da5cb5b146101ce57806395d89b41146101e957600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce567146101605780633950935114610175578063490a3b471461018857600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b610102610263565b60405161010f91906108d1565b60405180910390f35b61012b61012636600461093b565b6102f5565b604051901515815260200161010f565b6007545b60405190815260200161010f565b61012b61015b366004610965565b61030c565b60065460405160ff909116815260200161010f565b61012b61018336600461093b565b610375565b61019b6101963660046109b5565b6103ab565b005b61013f6101ab366004610a13565b6001600160a01b031660009081526001602052604090205490565b61019b61045b565b6000546040516001600160a01b03909116815260200161010f565b610102610491565b61012b6101ff36600461093b565b6104a0565b61012b61021236600461093b565b6104ef565b61013f610225366004610a2e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019b61025e366004610a13565b6104fc565b60606004805461027290610a61565b80601f016020809104026020016040519081016040528092919081815260200182805461029e90610a61565b80156102eb5780601f106102c0576101008083540402835291602001916102eb565b820191906000526020600020905b8154815290600101906020018083116102ce57829003601f168201915b5050505050905090565b60006103023384846105aa565b5060015b92915050565b60006103198484846106cf565b61036b843361036685604051806060016040528060288152602001610c67602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610855565b6105aa565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103029185906103669086610597565b6003546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d590610a9b565b60405180910390fd5b826066036103eb57600080fd5b6103f58183610bf9565b6104059063ffffffff1684610c16565b6001600160a01b0386166000908152600160205260409020556104288183610bf9565b6104389063ffffffff1684610c16565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000546001600160a01b031633146104855760405162461bcd60e51b81526004016103d590610a9b565b61048f6000610881565b565b60606005805461027290610a61565b6000610302338461036685604051806060016040528060258152602001610c8f602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610855565b60006103023384846106cf565b6000546001600160a01b031633146105265760405162461bcd60e51b81526004016103d590610a9b565b6001600160a01b03811661058b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d5565b61059481610881565b50565b60006105a38284610c2d565b9392505050565b6001600160a01b03831661060c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d5565b6001600160a01b0382166107955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d5565b6107d281604051806060016040528060268152602001610c41602691396001600160a01b0386166000908152600160205260409020549190610855565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108019082610597565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106c29085815260200190565b600081848411156108795760405162461bcd60e51b81526004016103d591906108d1565b505050900390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b818110156108fe578581018301518582016040015282016108e2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461093657600080fd5b919050565b6000806040838503121561094e57600080fd5b6109578361091f565b946020939093013593505050565b60008060006060848603121561097a57600080fd5b6109838461091f565b92506109916020850161091f565b9150604084013590509250925092565b803563ffffffff8116811461093657600080fd5b600080600080600060a086880312156109cd57600080fd5b6109d68661091f565b94506109e46020870161091f565b9350604086013592506109f9606087016109a1565b9150610a07608087016109a1565b90509295509295909350565b600060208284031215610a2557600080fd5b6105a38261091f565b60008060408385031215610a4157600080fd5b610a4a8361091f565b9150610a586020840161091f565b90509250929050565b600181811c90821680610a7557607f821691505b602082108103610a9557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60018163ffffffff825b80861115610b2457828204831115610b0a57610b0a610ad0565b80861615610b1757928202925b94851c9491800291610af0565b50509250929050565b600082610b3c57506001610306565b81610b4957506000610306565b8160018114610b5f5760028114610b6957610b9a565b6001915050610306565b60ff841115610b7a57610b7a610ad0565b6001841b915063ffffffff821115610b9457610b94610ad0565b50610306565b5060208310610133831016604e8410600b8410161715610bd1575081810a63ffffffff811115610bcc57610bcc610ad0565b610306565b610bdb8383610ae6565b8063ffffffff04821115610bf157610bf1610ad0565b029392505050565b600063ffffffff610c0e818516828516610b2d565b949350505050565b808202811582820484141761030657610306610ad0565b8082018082111561030657610306610ad056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208e98c86b2708571162ec2987a81b75dd1774e766fb3a86f28bc5ff415b5cc9be64736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000009000000000000000000000000c688f622d061b39ad62181cce49e45ca99998bdf000000000000000000000000000000000000000000005915a68d88da6a0800000000000000000000000000000000000000000000000000000000000000000003425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034254430000000000000000000000000000000000000000000000000000000000