60806040523480156200001157600080fd5b5060405180604001604052806009815260200168135859da58cb5093d560ba1b81525060405180604001604052806006815260200165244d4147494360d01b815250816003908162000064919062000367565b50600462000073828262000367565b505050600062000088620001d260201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600c81526b18dbda5b9cdd5b1d0b9b995d60a21b602082015260079062000108908262000367565b50600160066000620001226005546001600160a01b031690565b6001600160a01b031681526020808201929092526040016000908120805493151560ff199485161790557371b5759d73262fbb223956913ecf4ecc510576419052600690527f91cf82735ad11faba8c476248d680ef8ce47b92116c1526250e8434207e3f0ee80549091166001179055620001cc620001a96005546001600160a01b031690565b620001b76012600a62000548565b620001c690620f424062000560565b620001d6565b62000590565b3390565b6001600160a01b038216620002315760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200024591906200057a565b90915550506001600160a01b03821660009081526020819052604081208054839290620002749084906200057a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002ee57607f821691505b6020821081036200030f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002be57600081815260208120601f850160051c810160208610156200033e5750805b601f850160051c820191505b818110156200035f578281556001016200034a565b505050505050565b81516001600160401b03811115620003835762000383620002c3565b6200039b81620003948454620002d9565b8462000315565b602080601f831160018114620003d35760008415620003ba5750858301515b600019600386901b1c1916600185901b1785556200035f565b600085815260208120601f198616915b828110156200040457888601518255948401946001909101908401620003e3565b5085821015620004235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048a5781600019048211156200046e576200046e62000433565b808516156200047c57918102915b93841c93908002906200044e565b509250929050565b600082620004a35750600162000542565b81620004b25750600062000542565b8160018114620004cb5760028114620004d657620004f6565b600191505062000542565b60ff841115620004ea57620004ea62000433565b50506001821b62000542565b5060208310610133831016604e8410600b84101617156200051b575081810a62000542565b62000527838362000449565b80600019048211156200053e576200053e62000433565b0290505b92915050565b60006200055960ff84168362000492565b9392505050565b808202811582820484141762000542576200054262000433565b8082018082111562000542576200054262000433565b61125c80620005a06000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb1461032c578063c02466681461034c578063dd62ed3e1461036c578063f2fde38b146103b2578063f9d0831a146103d257600080fd5b8063715018a6146102a35780638a8c523c146102ba5780638da5cb5b146102cf57806395d89b41146102f7578063a457c2d71461030c57600080fd5b8063313ce567116100e7578063313ce567146101de57806339509351146101fa5780634ada218b1461021a5780634fbee1931461023457806370a082311461026d57600080fd5b806302d05d3f1461012f57806306fdde031461015a578063095ea7b31461016f57806318160ddd1461019f57806323b872dd146101be57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b506101446103f2565b6040516101519190610f6e565b60405180910390f35b34801561016657600080fd5b50610144610480565b34801561017b57600080fd5b5061018f61018a366004610fd8565b610512565b6040519015158152602001610151565b3480156101ab57600080fd5b506002545b604051908152602001610151565b3480156101ca57600080fd5b5061018f6101d9366004611002565b610529565b3480156101ea57600080fd5b5060405160128152602001610151565b34801561020657600080fd5b5061018f610215366004610fd8565b6105df565b34801561022657600080fd5b5060085461018f9060ff1681565b34801561024057600080fd5b5061018f61024f36600461103e565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561027957600080fd5b506101b061028836600461103e565b6001600160a01b031660009081526020819052604090205490565b3480156102af57600080fd5b506102b861061b565b005b3480156102c657600080fd5b506102b861068f565b3480156102db57600080fd5b506005546040516001600160a01b039091168152602001610151565b34801561030357600080fd5b5061014461071b565b34801561031857600080fd5b5061018f610327366004610fd8565b61072a565b34801561033857600080fd5b5061018f610347366004610fd8565b6107c3565b34801561035857600080fd5b506102b861036736600461106e565b6107d0565b34801561037857600080fd5b506101b06103873660046110a5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156103be57600080fd5b506102b86103cd36600461103e565b6108a8565b3480156103de57600080fd5b506102b86103ed36600461103e565b610993565b600780546103ff906110d8565b80601f016020809104026020016040519081016040528092919081815260200182805461042b906110d8565b80156104785780601f1061044d57610100808354040283529160200191610478565b820191906000526020600020905b81548152906001019060200180831161045b57829003601f168201915b505050505081565b60606003805461048f906110d8565b80601f01602080910402602001604051908101604052809291908181526020018280546104bb906110d8565b80156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b5050505050905090565b600061051f338484610b3f565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146105c957828110156105bc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105c98533858403610b3f565b6105d4858585610c63565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161051f918590610616908690611112565b610b3f565b6005546001600160a01b031633146106455760405162461bcd60e51b81526004016105b390611133565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146106b95760405162461bcd60e51b81526004016105b390611133565b60085460ff161561070c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e000000000000000060448201526064016105b3565b6008805460ff19166001179055565b60606004805461048f906110d8565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156107ac5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105b3565b6107b93385858403610b3f565b5060019392505050565b600061051f338484610c63565b6005546001600160a01b031633146107fa5760405162461bcd60e51b81526004016105b390611133565b6001600160a01b03821660009081526006602052604090205481151560ff90911615150361087d5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016105b3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146108d25760405162461bcd60e51b81526004016105b390611133565b6001600160a01b0381166109375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b3565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109bd5760405162461bcd60e51b81526004016105b390611133565b306001600160a01b03821603610a3b5760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e7300000000000000000060648201526084016105b3565b6001600160a01b038116610a5757610a533347610d6b565b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac49190611168565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190611181565b5050505b50565b6001600160a01b038316610ba15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b3565b6001600160a01b038216610c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c895760405162461bcd60e51b81526004016105b39061119e565b6001600160a01b038216610caf5760405162461bcd60e51b81526004016105b3906111e3565b60085460ff1680610cd857506001600160a01b03831660009081526006602052604090205460ff165b80610cfb57506001600160a01b03821660009081526006602052604090205460ff165b610d475760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016105b3565b80600003610d6057610d5b83836000610e1a565b505050565b610d5b838383610e1a565b600081471015610dbd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016105b3565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610e0a576040519150601f19603f3d011682016040523d82523d6000602084013e610e0f565b606091505b509095945050505050565b6001600160a01b038316610e405760405162461bcd60e51b81526004016105b39061119e565b6001600160a01b038216610e665760405162461bcd60e51b81526004016105b3906111e3565b6001600160a01b03831660009081526020819052604090205481811015610ede5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105b3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f15908490611112565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f6191815260200190565b60405180910390a3610b38565b600060208083528351808285015260005b81811015610f9b57858101830151858201604001528201610f7f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610fd357600080fd5b919050565b60008060408385031215610feb57600080fd5b610ff483610fbc565b946020939093013593505050565b60008060006060848603121561101757600080fd5b61102084610fbc565b925061102e60208501610fbc565b9150604084013590509250925092565b60006020828403121561105057600080fd5b61105982610fbc565b9392505050565b8015158114610b3c57600080fd5b6000806040838503121561108157600080fd5b61108a83610fbc565b9150602083013561109a81611060565b809150509250929050565b600080604083850312156110b857600080fd5b6110c183610fbc565b91506110cf60208401610fbc565b90509250929050565b600181811c908216806110ec57607f821691505b60208210810361110c57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561052357634e487b7160e01b600052601160045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561117a57600080fd5b5051919050565b60006020828403121561119357600080fd5b815161105981611060565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea26469706673582212205e66f67ca5a6a7a1c3f6843da6c8c783f073efa6cd5083de5dc8fc216e91129464736f6c63430008130033