0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb1461028e578063a9128ff0146102a1578063cc1776d3146102b4578063dd62ed3e146102c8578063f2fde38b14610301578063f65e14c01461031457600080fd5b8063715018a61461024757806375f0a8741461024f5780638da5cb5b1461026257806395d89b4114610273578063a457c2d71461027b57600080fd5b8063313ce567116100ff578063313ce567146101cd57806339509351146101e25780634f7041a5146101f557806360d1259e1461020957806370a082311461021e57600080fd5b806306fdde031461013c578063095ea7b31461015a57806316f0115b1461017d57806318160ddd146101a857806323b872dd146101ba575b600080fd5b610144610327565b6040516101519190610d38565b60405180910390f35b61016d610168366004610da2565b6103b9565b6040519015158152602001610151565b600754610190906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b6002545b604051908152602001610151565b61016d6101c8366004610dcc565b6103d0565b60095b60405160ff9091168152602001610151565b61016d6101f0366004610da2565b61047f565b6008546101d090600160a01b900460ff1681565b61021c610217366004610e08565b6104bb565b005b6101ac61022c366004610e08565b6001600160a01b031660009081526020819052604090205490565b61021c610509565b600854610190906001600160a01b031681565b6005546001600160a01b0316610190565b61014461053f565b61016d610289366004610da2565b61054e565b61016d61029c366004610da2565b6105e7565b61021c6102af366004610e3b565b6105f4565b6008546101d090600160a81b900460ff1681565b6101ac6102d6366004610e6e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61021c61030f366004610e08565b6106de565b61021c610322366004610e98565b610779565b60606003805461033690610edb565b80601f016020809104026020016040519081016040528092919081815260200182805461036290610edb565b80156103af5780601f10610384576101008083540402835291602001916103af565b820191906000526020600020905b81548152906001019060200180831161039257829003601f168201915b5050505050905090565b60006103c63384846107f7565b5060015b92915050565b60006103dd84848461091b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156104675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61047485338584036107f7565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916103c69185906104b6908690610f2b565b6107f7565b6005546001600160a01b031633146104e55760405162461bcd60e51b815260040161045e90610f3e565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6005546001600160a01b031633146105335760405162461bcd60e51b815260040161045e90610f3e565b61053d6000610a20565b565b60606004805461033690610edb565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156105d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161045e565b6105dd33858584036107f7565b5060019392505050565b60006103c633848461091b565b6005546001600160a01b0316331461061e5760405162461bcd60e51b815260040161045e90610f3e565b60198260ff1611156106645760405162461bcd60e51b815260206004820152600f60248201526e0a8c2f040d2e640e8dede40d0d2ced608b1b604482015260640161045e565b60198160ff1611156106aa5760405162461bcd60e51b815260206004820152600f60248201526e0a8c2f040d2e640e8dede40d0d2ced608b1b604482015260640161045e565b6008805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6005546001600160a01b031633146107085760405162461bcd60e51b815260040161045e90610f3e565b6001600160a01b03811661076d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a204e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161045e565b61077681610a20565b50565b6005546001600160a01b031633146107a35760405162461bcd60e51b815260040161045e90610f3e565b6008805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045e565b6001600160a01b0382166108ba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526009602052604081205460ff168061095a57506001600160a01b03831660009081526009602052604090205460ff165b905080610a0f576007546000906001600160a01b03908116908516036109a55760085460649061099490600160a81b900460ff1685610f73565b61099e9190610f8a565b90506109e2565b6007546001600160a01b03908116908616036109e2576008546064906109d590600160a01b900460ff1685610f73565b6109df9190610f8a565b90505b8015610a0d57600854610a009086906001600160a01b031683610a72565b610a0a8184610fac565b92505b505b610a1a848484610a72565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045e565b6001600160a01b038216610b385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045e565b610b43838383610c4b565b6001600160a01b03831660009081526020819052604090205481811015610bbb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161045e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610bf2908490610f2b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a1a565b6007546001600160a01b0316610cd5576005546001600160a01b0384811691161480610c8457506005546001600160a01b038381169116145b610cd05760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f74207374617274656420796574210000000000604482015260640161045e565b505050565b80610cf5846001600160a01b031660009081526020819052604090205490565b1015610cd05760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161045e565b600060208083528351808285015260005b81811015610d6557858101830151858201604001528201610d49565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d9d57600080fd5b919050565b60008060408385031215610db557600080fd5b610dbe83610d86565b946020939093013593505050565b600080600060608486031215610de157600080fd5b610dea84610d86565b9250610df860208501610d86565b9150604084013590509250925092565b600060208284031215610e1a57600080fd5b610e2382610d86565b9392505050565b803560ff81168114610d9d57600080fd5b60008060408385031215610e4e57600080fd5b610e5783610e2a565b9150610e6560208401610e2a565b90509250929050565b60008060408385031215610e8157600080fd5b610e8a83610d86565b9150610e6560208401610d86565b600080600060608486031215610ead57600080fd5b610eb684610d86565b9250610ec460208501610e2a565b9150610ed260408501610e2a565b90509250925092565b600181811c90821680610eef57607f821691505b602082108103610f0f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103ca576103ca610f15565b6020808252818101527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176103ca576103ca610f15565b600082610fa757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156103ca576103ca610f1556fea26469706673582212205369c46fff4f6ad4838f837508b1c42509a864c23573df5a278b3eb897582fda64736f6c63430008120033
0x608060405262989680600655600880546001600160a01b031916730e80b65c1d68b2cc7d0e3b8981487e98d030b9581790553480156200003e57600080fd5b50604051806040016040528060048152602001634c4d414f60e01b81525060405180604001604052806005815260200164244c4d414f60d81b81525081600390816200008b919062000443565b5060046200009a828262000443565b505050620000b7620000b16200015e60201b60201c565b62000162565b620000df33620000ca6009600a62000624565b600654620000d991906200063c565b620001b4565b6008805461ffff60a01b1916600160a81b179055600160096000620001013390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560085490911681526009909252808220805484166001908117909155308352912080549092161790556200066c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002105760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200021e60008383620002ab565b806002600082825462000232919062000656565b90915550506001600160a01b038216600090815260208190526040812080548392906200026190849062000656565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6007546001600160a01b031662000339576005546001600160a01b0384811691161480620002e657506005546001600160a01b038381169116145b620003345760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f74207374617274656420796574210000000000604482015260640162000207565b505050565b806200035a846001600160a01b031660009081526020819052604090205490565b1015620003345760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640162000207565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003ca57607f821691505b602082108103620003eb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033457600081815260208120601f850160051c810160208610156200041a5750805b601f850160051c820191505b818110156200043b5782815560010162000426565b505050505050565b81516001600160401b038111156200045f576200045f6200039f565b6200047781620004708454620003b5565b84620003f1565b602080601f831160018114620004af5760008415620004965750858301515b600019600386901b1c1916600185901b1785556200043b565b600085815260208120601f198616915b82811015620004e057888601518255948401946001909101908401620004bf565b5085821015620004ff5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005665781600019048211156200054a576200054a6200050f565b808516156200055857918102915b93841c93908002906200052a565b509250929050565b6000826200057f575060016200061e565b816200058e575060006200061e565b8160018114620005a75760028114620005b257620005d2565b60019150506200061e565b60ff841115620005c657620005c66200050f565b50506001821b6200061e565b5060208310610133831016604e8410600b8410161715620005f7575081810a6200061e565b62000603838362000525565b80600019048211156200061a576200061a6200050f565b0290505b92915050565b60006200063560ff8416836200056e565b9392505050565b80820281158282048414176200061e576200061e6200050f565b808201808211156200061e576200061e6200050f565b610ff5806200067c6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb1461028e578063a9128ff0146102a1578063cc1776d3146102b4578063dd62ed3e146102c8578063f2fde38b14610301578063f65e14c01461031457600080fd5b8063715018a61461024757806375f0a8741461024f5780638da5cb5b1461026257806395d89b4114610273578063a457c2d71461027b57600080fd5b8063313ce567116100ff578063313ce567146101cd57806339509351146101e25780634f7041a5146101f557806360d1259e1461020957806370a082311461021e57600080fd5b806306fdde031461013c578063095ea7b31461015a57806316f0115b1461017d57806318160ddd146101a857806323b872dd146101ba575b600080fd5b610144610327565b6040516101519190610d38565b60405180910390f35b61016d610168366004610da2565b6103b9565b6040519015158152602001610151565b600754610190906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b6002545b604051908152602001610151565b61016d6101c8366004610dcc565b6103d0565b60095b60405160ff9091168152602001610151565b61016d6101f0366004610da2565b61047f565b6008546101d090600160a01b900460ff1681565b61021c610217366004610e08565b6104bb565b005b6101ac61022c366004610e08565b6001600160a01b031660009081526020819052604090205490565b61021c610509565b600854610190906001600160a01b031681565b6005546001600160a01b0316610190565b61014461053f565b61016d610289366004610da2565b61054e565b61016d61029c366004610da2565b6105e7565b61021c6102af366004610e3b565b6105f4565b6008546101d090600160a81b900460ff1681565b6101ac6102d6366004610e6e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61021c61030f366004610e08565b6106de565b61021c610322366004610e98565b610779565b60606003805461033690610edb565b80601f016020809104026020016040519081016040528092919081815260200182805461036290610edb565b80156103af5780601f10610384576101008083540402835291602001916103af565b820191906000526020600020905b81548152906001019060200180831161039257829003601f168201915b5050505050905090565b60006103c63384846107f7565b5060015b92915050565b60006103dd84848461091b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156104675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61047485338584036107f7565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916103c69185906104b6908690610f2b565b6107f7565b6005546001600160a01b031633146104e55760405162461bcd60e51b815260040161045e90610f3e565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6005546001600160a01b031633146105335760405162461bcd60e51b815260040161045e90610f3e565b61053d6000610a20565b565b60606004805461033690610edb565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156105d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161045e565b6105dd33858584036107f7565b5060019392505050565b60006103c633848461091b565b6005546001600160a01b0316331461061e5760405162461bcd60e51b815260040161045e90610f3e565b60198260ff1611156106645760405162461bcd60e51b815260206004820152600f60248201526e0a8c2f040d2e640e8dede40d0d2ced608b1b604482015260640161045e565b60198160ff1611156106aa5760405162461bcd60e51b815260206004820152600f60248201526e0a8c2f040d2e640e8dede40d0d2ced608b1b604482015260640161045e565b6008805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6005546001600160a01b031633146107085760405162461bcd60e51b815260040161045e90610f3e565b6001600160a01b03811661076d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a204e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161045e565b61077681610a20565b50565b6005546001600160a01b031633146107a35760405162461bcd60e51b815260040161045e90610f3e565b6008805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045e565b6001600160a01b0382166108ba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526009602052604081205460ff168061095a57506001600160a01b03831660009081526009602052604090205460ff165b905080610a0f576007546000906001600160a01b03908116908516036109a55760085460649061099490600160a81b900460ff1685610f73565b61099e9190610f8a565b90506109e2565b6007546001600160a01b03908116908616036109e2576008546064906109d590600160a01b900460ff1685610f73565b6109df9190610f8a565b90505b8015610a0d57600854610a009086906001600160a01b031683610a72565b610a0a8184610fac565b92505b505b610a1a848484610a72565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045e565b6001600160a01b038216610b385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045e565b610b43838383610c4b565b6001600160a01b03831660009081526020819052604090205481811015610bbb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161045e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610bf2908490610f2b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a1a565b6007546001600160a01b0316610cd5576005546001600160a01b0384811691161480610c8457506005546001600160a01b038381169116145b610cd05760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f74207374617274656420796574210000000000604482015260640161045e565b505050565b80610cf5846001600160a01b031660009081526020819052604090205490565b1015610cd05760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161045e565b600060208083528351808285015260005b81811015610d6557858101830151858201604001528201610d49565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d9d57600080fd5b919050565b60008060408385031215610db557600080fd5b610dbe83610d86565b946020939093013593505050565b600080600060608486031215610de157600080fd5b610dea84610d86565b9250610df860208501610d86565b9150604084013590509250925092565b600060208284031215610e1a57600080fd5b610e2382610d86565b9392505050565b803560ff81168114610d9d57600080fd5b60008060408385031215610e4e57600080fd5b610e5783610e2a565b9150610e6560208401610e2a565b90509250929050565b60008060408385031215610e8157600080fd5b610e8a83610d86565b9150610e6560208401610d86565b600080600060608486031215610ead57600080fd5b610eb684610d86565b9250610ec460208501610e2a565b9150610ed260408501610e2a565b90509250925092565b600181811c90821680610eef57607f821691505b602082108103610f0f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103ca576103ca610f15565b6020808252818101527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176103ca576103ca610f15565b600082610fa757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156103ca576103ca610f1556fea26469706673582212205369c46fff4f6ad4838f837508b1c42509a864c23573df5a278b3eb897582fda64736f6c63430008120033