0x60a06040523480156200001157600080fd5b506040516200107438038062001074833981016040819052620000349162000156565b6001600160a01b0381166200009d5760405162461bcd60e51b815260206004820152602560248201527f4d616470756d703a2041646d696e2063616e6e6f74206265207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b600380546001600160a01b031916331790556001600160a01b038116608052620000ca6012600a6200029d565b620000da906305f5e100620002ae565b600380546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200012e6012600a6200029d565b6200013e906305f5e100620002ae565b60405190815260200160405180910390a350620002c8565b6000602082840312156200016957600080fd5b81516001600160a01b03811681146200018157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001df578160001904821115620001c357620001c362000188565b80851615620001d157918102915b93841c9390800290620001a3565b509250929050565b600082620001f85750600162000297565b81620002075750600062000297565b81600181146200022057600281146200022b576200024b565b600191505062000297565b60ff8411156200023f576200023f62000188565b50506001821b62000297565b5060208310610133831016604e8410600b841016171562000270575081810a62000297565b6200027c83836200019e565b806000190482111562000293576200029362000188565b0290505b92915050565b60006200018160ff841683620001e7565b808202811582820484141762000297576200029762000188565b608051610d89620002eb600039600081816104a801526105d10152610d896000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610231578063dd62ed3e14610244578063f2fde38b1461027d578063f9f92be41461029057600080fd5b806370a08231146101c3578063715018a6146101ec5780638da5cb5b146101f457806395d89b411461020f57600080fd5b806323b872dd116100d357806323b872dd1461016e578063313ce5671461018157806344337ea11461019b578063537df3b6146101b057600080fd5b806306fdde03146100fa578063095ea7b31461013557806318160ddd14610158575b600080fd5b61011f6040518060400160405280600681526020016526a4a624a7a760d11b81525081565b60405161012c9190610ae7565b60405180910390f35b610148610143366004610b52565b6102b3565b604051901515815260200161012c565b6101606103a2565b60405190815260200161012c565b61014861017c366004610b7c565b6103bf565b610189601281565b60405160ff909116815260200161012c565b6101ae6101a9366004610bb8565b61049d565b005b6101ae6101be366004610bb8565b6105c6565b6101606101d1366004610bb8565b6001600160a01b031660009081526020819052604090205490565b6101ae6106f6565b6003546040516001600160a01b03909116815260200161012c565b61011f604051806040016040528060038152602001624f4e4560e81b81525081565b61014861023f366004610b52565b61079c565b610160610252366004610bda565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101ae61028b366004610bb8565b6107b2565b61014861029e366004610bb8565b60026020526000908152604090205460ff1681565b3360009081526002602052604081205460ff161580156102ec57506001600160a01b03831660009081526002602052604090205460ff16155b61033d5760405162461bcd60e51b815260206004820152601c60248201527f4d616470756d703a204461726b206d616769632064657465637465640000000060448201526064015b60405180910390fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6103ae6012600a610d07565b6103bc906305f5e100610d16565b81565b6001600160a01b03831660009081526001602090815260408083203384529091528120548211156104325760405162461bcd60e51b815260206004820152601c60248201527f4d616470756d703a205370656c6c20706f77657220746f6f206c6f77000000006044820152606401610334565b61043d8484846108ca565b6001600160a01b038416600090815260016020908152604080832033845290915290205461046c908390610d2d565b6001600160a01b03851660009081526001602081815260408084203385529091529091209190915590509392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806104de57506003546001600160a01b031633145b6105245760405162461bcd60e51b81526020600482015260176024820152761358591c1d5b5c0e88139bdd08185d5d1a1bdc9a5e9959604a1b6044820152606401610334565b6001600160a01b03811661057a5760405162461bcd60e51b815260206004820152601f60248201527f4d616470756d703a2043616e6e6f742062616e6973682074686520766f6964006044820152606401610334565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a250565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061060757506003546001600160a01b031633145b61064d5760405162461bcd60e51b81526020600482015260176024820152761358591c1d5b5c0e88139bdd08185d5d1a1bdc9a5e9959604a1b6044820152606401610334565b6001600160a01b0381166106ad5760405162461bcd60e51b815260206004820152602160248201527f4d616470756d703a2043616e6e6f7420756e62616e6973682074686520766f696044820152601960fa1b6064820152608401610334565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a250565b6003546001600160a01b031633146107505760405162461bcd60e51b815260206004820152601e60248201527f4d616470756d703a204e6f7420746865206772616e64204d616470756d7000006044820152606401610334565b600380546001600160a01b031981169091556040516001600160a01b039091169081907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a250565b60006107a93384846108ca565b50600192915050565b6003546001600160a01b0316331461080c5760405162461bcd60e51b815260206004820152601e60248201527f4d616470756d703a204e6f7420746865206772616e64204d616470756d7000006044820152606401610334565b6001600160a01b03811661086e5760405162461bcd60e51b8152602060048201526024808201527f4d616470756d703a2043616e6e6f74207472616e7366657220746f20746865206044820152631d9bda5960e21b6064820152608401610334565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906108ea57506001600160a01b03821615155b6109445760405162461bcd60e51b815260206004820152602560248201527f4d616470756d703a2043617374696e67207370656c6c7320696e746f20746865604482015264081d9bda5960da1b6064820152608401610334565b6001600160a01b0383166000908152602081905260409020548111156109ac5760405162461bcd60e51b815260206004820152601860248201527f4d616470756d703a204e6f7420656e6f756768206d616e6100000000000000006044820152606401610334565b6001600160a01b03831660009081526002602052604090205460ff161580156109ee57506001600160a01b03821660009081526002602052604090205460ff16155b610a3a5760405162461bcd60e51b815260206004820152601c60248201527f4d616470756d703a204461726b206d61676963206465746563746564000000006044820152606401610334565b6001600160a01b038316600090815260208190526040902054610a5e908290610d2d565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610a8e908290610d40565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006020808352835180602085015260005b81811015610b1557858101830151858201604001528201610af9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b4d57600080fd5b919050565b60008060408385031215610b6557600080fd5b610b6e83610b36565b946020939093013593505050565b600080600060608486031215610b9157600080fd5b610b9a84610b36565b9250610ba860208501610b36565b9150604084013590509250925092565b600060208284031215610bca57600080fd5b610bd382610b36565b9392505050565b60008060408385031215610bed57600080fd5b610bf683610b36565b9150610c0460208401610b36565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610c5e578160001904821115610c4457610c44610c0d565b80851615610c5157918102915b93841c9390800290610c28565b509250929050565b600082610c755750600161039c565b81610c825750600061039c565b8160018114610c985760028114610ca257610cbe565b600191505061039c565b60ff841115610cb357610cb3610c0d565b50506001821b61039c565b5060208310610133831016604e8410600b8410161715610ce1575081810a61039c565b610ceb8383610c23565b8060001904821115610cff57610cff610c0d565b029392505050565b6000610bd360ff841683610c66565b808202811582820484141761039c5761039c610c0d565b8181038181111561039c5761039c610c0d565b8082018082111561039c5761039c610c0d56fea26469706673582212203874b192ba10748e3a7b5217e2d86a627d08a644d846b923e61c6a4172e1021a64736f6c63430008180033000000000000000000000000bf6b986c6bdff99110a1039cf63d167aed9c8e21