608060405234801562000010575f80fd5b506040518060400160405280600981526020016854657374205553444360b81b815250604051806040016040528060048152602001635553444360e01b8152508160039081620000619190620002da565b506004620000708282620002da565b505050620000ae3362000088620000c660201b60201c565b620000989060ff16600a620004b1565b620000a8906377359400620004c5565b620000cb565b600580546001600160a01b03191633179055620004f5565b600690565b6001600160a01b038216620000fa5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620001075f83836200010b565b5050565b6001600160a01b03831662000139578060025f8282546200012d9190620004df565b90915550620001ab9050565b6001600160a01b0383165f90815260208190526040902054818110156200018d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f1565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216620001c957600280548290039055620001e7565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022d91815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200026357607f821691505b6020821081036200028257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002d5575f81815260208120601f850160051c81016020861015620002b05750805b601f850160051c820191505b81811015620002d157828155600101620002bc565b5050505b505050565b81516001600160401b03811115620002f657620002f66200023a565b6200030e816200030784546200024e565b8462000288565b602080601f83116001811462000344575f84156200032c5750858301515b5f19600386901b1c1916600185901b178555620002d1565b5f85815260208120601f198616915b82811015620003745788860151825594840194600190910190840162000353565b50858210156200039257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f657815f1904821115620003da57620003da620003a2565b80851615620003e857918102915b93841c9390800290620003bb565b509250929050565b5f826200040e57506001620004ab565b816200041c57505f620004ab565b8160018114620004355760028114620004405762000460565b6001915050620004ab565b60ff841115620004545762000454620003a2565b50506001821b620004ab565b5060208310610133831016604e8410600b841016171562000485575081810a620004ab565b620004918383620003b6565b805f1904821115620004a757620004a7620003a2565b0290505b92915050565b5f620004be8383620003fe565b9392505050565b8082028115828204841417620004ab57620004ab620003a2565b80820180821115620004ab57620004ab620003a2565b6107f180620005035f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806340c10f191161006e57806340c10f191461011f5780635c16e15e1461013457806370a082311461015357806395d89b411461017b578063a9059cbb14610183578063dd62ed3e14610196575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b26101ce565b6040516100bf919061064c565b60405180910390f35b6100db6100d63660046106b2565b61025e565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b3660046106da565b610277565b604051600681526020016100bf565b61013261012d3660046106b2565b61029a565b005b6100ef610142366004610713565b60066020525f908152604090205481565b6100ef610161366004610713565b6001600160a01b03165f9081526020819052604090205490565b6100b261031a565b6100db6101913660046106b2565b610329565b6100ef6101a4366004610733565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101dd90610764565b80601f016020809104026020016040519081016040528092919081815260200182805461020990610764565b80156102545780601f1061022b57610100808354040283529160200191610254565b820191905f5260205f20905b81548152906001019060200180831161023757829003601f168201915b5050505050905090565b5f3361026b818585610336565b60019150505b92915050565b5f33610284858285610348565b61028f8585856103c3565b506001949350505050565b6005546001600160a01b0316331461030c5760405162461bcd60e51b815260206004820152602a60248201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696044820152693990333ab731ba34b7b760b11b60648201526084015b60405180910390fd5b6103168282610420565b5050565b6060600480546101dd90610764565b5f3361026b8185856103c3565b6103438383836001610454565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146103bd57818110156103af57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610303565b6103bd84848484035f610454565b50505050565b6001600160a01b0383166103ec57604051634b637e8f60e11b81525f6004820152602401610303565b6001600160a01b0382166104155760405163ec442f0560e01b81525f6004820152602401610303565b610343838383610526565b6001600160a01b0382166104495760405163ec442f0560e01b81525f6004820152602401610303565b6103165f8383610526565b6001600160a01b03841661047d5760405163e602df0560e01b81525f6004820152602401610303565b6001600160a01b0383166104a657604051634a1406b160e11b81525f6004820152602401610303565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103bd57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161051891815260200190565b60405180910390a350505050565b6001600160a01b038316610550578060025f828254610545919061079c565b909155506105c09050565b6001600160a01b0383165f90815260208190526040902054818110156105a25760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610303565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105dc576002805482900390556105fa565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161063f91815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b818110156106775785810183015185820160400152820161065b565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106ad575f80fd5b919050565b5f80604083850312156106c3575f80fd5b6106cc83610697565b946020939093013593505050565b5f805f606084860312156106ec575f80fd5b6106f584610697565b925061070360208501610697565b9150604084013590509250925092565b5f60208284031215610723575f80fd5b61072c82610697565b9392505050565b5f8060408385031215610744575f80fd5b61074d83610697565b915061075b60208401610697565b90509250929050565b600181811c9082168061077857607f821691505b60208210810361079657634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561027157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220cfbf55296f65e411a4aaef0108cef0549d55c34cbdb52ffa360a18a588bfc77e64736f6c63430008140033