0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806370a082311161006e57806370a0823114610148578063715018a6146101705780638da5cb5b1461017a57806395d89b41146101a5578063a9059cbb146101ad578063dd62ed3e146101c0575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd1461010d57806327e235e314610120578063313ce5671461013f575b5f80fd5b6100bd6101ea565b6040516100ca91906105e3565b60405180910390f35b6100e66100e136600461064a565b610276565b60405190151581526020016100ca565b6100ff60025481565b6040519081526020016100ca565b6100e661011b366004610672565b6102e2565b6100ff61012e3660046106ab565b5f6020819052908152604090205481565b6100ff60055481565b6100ff6101563660046106ab565b6001600160a01b03165f9081526020819052604090205490565b610178610457565b005b60065461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100ca565b6100bd6104fa565b6100e66101bb36600461064a565b610507565b6100ff6101ce3660046106cb565b600160209081525f928352604080842090915290825290205481565b600380546101f7906106fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610223906106fc565b801561026e5780601f106102455761010080835404028352916020019161026e565b820191905f5260205f20905b81548152906001019060200180831161025157829003601f168201915b505050505081565b335f8181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102d09086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152602081905260408120548211156103405760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526001602090815260408083203384529091529020548211156103a65760405162461bcd60e51b8152602060048201526011602482015270616c6c6f77616e636520746f6f206c6f7760781b6044820152606401610337565b6001600160a01b0383165f90815260208190526040812080548492906103cd908490610748565b90915550506001600160a01b0384165f90815260208190526040812080548492906103f990849061075b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044591815260200190565b60405180910390a35060019392505050565b6006546001600160a01b031633146104b15760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610337565b6006546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820905f90a2600680546001600160a01b0319169055565b600480546101f7906106fc565b335f908152602081905260408120548211156105575760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b6044820152606401610337565b6001600160a01b0383165f908152602081905260408120805484929061057e908490610748565b9091555050335f90815260208190526040812080548492906105a190849061075b565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016102d0565b5f602080835283518060208501525f5b8181101561060f578581018301518582016040015282016105f3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610645575f80fd5b919050565b5f806040838503121561065b575f80fd5b6106648361062f565b946020939093013593505050565b5f805f60608486031215610684575f80fd5b61068d8461062f565b925061069b6020850161062f565b9150604084013590509250925092565b5f602082840312156106bb575f80fd5b6106c48261062f565b9392505050565b5f80604083850312156106dc575f80fd5b6106e58361062f565b91506106f36020840161062f565b90509250929050565b600181811c9082168061071057607f821691505b60208210810361072e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102dc576102dc610734565b818103818111156102dc576102dc61073456fea26469706673582212202d36d8ed238bb4486456d23e1bfe475fa5386e916f9791e5da5f10dba0cd647e64736f6c63430008180033
0x6c042a499a2602c54e831000000060025560c060405260066080908152654d454455534160d01b60a0526003906100369082610137565b506040805180820190915260068152654d454455534160d01b60208201526004906100619082610137565b506012600555348015610072575f80fd5b50600680546001600160a01b031916339081179091556002545f91825260208290526040909120556101f6565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806100c757607f821691505b6020821081036100e557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561013257805f5260205f20601f840160051c810160208510156101105750805b601f840160051c820191505b8181101561012f575f815560010161011c565b50505b505050565b81516001600160401b038111156101505761015061009f565b6101648161015e84546100b3565b846100eb565b602080601f831160018114610197575f84156101805750858301515b5f19600386901b1c1916600185901b1785556101ee565b5f85815260208120601f198616915b828110156101c5578886015182559484019460019091019084016101a6565b50858210156101e257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6107a4806102035f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806370a082311161006e57806370a0823114610148578063715018a6146101705780638da5cb5b1461017a57806395d89b41146101a5578063a9059cbb146101ad578063dd62ed3e146101c0575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd1461010d57806327e235e314610120578063313ce5671461013f575b5f80fd5b6100bd6101ea565b6040516100ca91906105e3565b60405180910390f35b6100e66100e136600461064a565b610276565b60405190151581526020016100ca565b6100ff60025481565b6040519081526020016100ca565b6100e661011b366004610672565b6102e2565b6100ff61012e3660046106ab565b5f6020819052908152604090205481565b6100ff60055481565b6100ff6101563660046106ab565b6001600160a01b03165f9081526020819052604090205490565b610178610457565b005b60065461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100ca565b6100bd6104fa565b6100e66101bb36600461064a565b610507565b6100ff6101ce3660046106cb565b600160209081525f928352604080842090915290825290205481565b600380546101f7906106fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610223906106fc565b801561026e5780601f106102455761010080835404028352916020019161026e565b820191905f5260205f20905b81548152906001019060200180831161025157829003601f168201915b505050505081565b335f8181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102d09086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152602081905260408120548211156103405760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526001602090815260408083203384529091529020548211156103a65760405162461bcd60e51b8152602060048201526011602482015270616c6c6f77616e636520746f6f206c6f7760781b6044820152606401610337565b6001600160a01b0383165f90815260208190526040812080548492906103cd908490610748565b90915550506001600160a01b0384165f90815260208190526040812080548492906103f990849061075b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044591815260200190565b60405180910390a35060019392505050565b6006546001600160a01b031633146104b15760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610337565b6006546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820905f90a2600680546001600160a01b0319169055565b600480546101f7906106fc565b335f908152602081905260408120548211156105575760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b6044820152606401610337565b6001600160a01b0383165f908152602081905260408120805484929061057e908490610748565b9091555050335f90815260208190526040812080548492906105a190849061075b565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016102d0565b5f602080835283518060208501525f5b8181101561060f578581018301518582016040015282016105f3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610645575f80fd5b919050565b5f806040838503121561065b575f80fd5b6106648361062f565b946020939093013593505050565b5f805f60608486031215610684575f80fd5b61068d8461062f565b925061069b6020850161062f565b9150604084013590509250925092565b5f602082840312156106bb575f80fd5b6106c48261062f565b9392505050565b5f80604083850312156106dc575f80fd5b6106e58361062f565b91506106f36020840161062f565b90509250929050565b600181811c9082168061071057607f821691505b60208210810361072e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102dc576102dc610734565b818103818111156102dc576102dc61073456fea26469706673582212202d36d8ed238bb4486456d23e1bfe475fa5386e916f9791e5da5f10dba0cd647e64736f6c63430008180033