0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063313ce56711610066578063313ce5671461015e57806370a082311461017857806395d89b411461018b578063a9059cbb14610193578063dd62ed3e146101a65761009e565b806306fdde03146100eb578063095ea7b3146101095780630c55699c1461012c57806318160ddd1461014357806323b872dd1461014b575b60405162461bcd60e51b815260206004820152601e60248201527f46616c6c6261636b2066756e6374696f6e20646f6573206e6f7468696e67000060448201526064015b60405180910390fd5b6100f36101df565b604051610100919061080d565b60405180910390f35b61011c610117366004610877565b610271565b6040519015158152602001610100565b61013560095481565b604051908152602001610100565b61013561028b565b61011c6101593660046108a1565b6102e4565b610166610308565b60405160ff9091168152602001610100565b6101356101863660046108de565b610375565b6100f361041d565b61011c6101a1366004610877565b61042c565b6101356101b4366004610900565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101ee90610933565b80601f016020809104026020016040519081016040528092919081815260200182805461021a90610933565b80156102675780601f1061023c57610100808354040283529160200191610267565b820191906000526020600020905b81548152906001019060200180831161024a57829003601f168201915b5050505050905090565b60003361027f81858561051e565b60019150505b92915050565b60006001606461029c603282610983565b9050600081116102db5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b50505060055490565b6000336102f2858285610530565b6102fd8585856105af565b506001949350505050565b6000600f6000600a6001606461031f603282610983565b90506000811161035e5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b5050600854600160a01b900460ff16949350505050565b62abcdef60009081526040516bffffffffffffffffffffffff19606084901b166020820152426034820152600f908290600a908290602d906054016040516020818303038152906040528051906020012060001c6103d391906109ac565b6103de906001610983565b600854909150600090600a906103fe90600160a01b900460ff1682610aa7565b6104089084610ab6565b6104129190610acd565b979650505050505050565b6060600480546101ee90610933565b6000613039600f82600a604436101561047f5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642063616c6c646174612073697a6560581b60448201526064016100e2565b60003660448260606104918385610ae1565b61049b9190610acd565b905060005b8181101561050c576040805160608302850191820135808252823592602090810135926001600160a01b0380851692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38360010193505050506104a0565b5060019b9a5050505050505050505050565b61052b838383600161060e565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198110156105a9578181101561059a57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016100e2565b6105a98484848403600061060e565b50505050565b6001600160a01b0383166105d957604051634b637e8f60e11b8152600060048201526024016100e2565b6001600160a01b0382166106035760405163ec442f0560e01b8152600060048201526024016100e2565b61052b8383836106e3565b6001600160a01b0384166106385760405163e602df0560e01b8152600060048201526024016100e2565b6001600160a01b03831661066257604051634a1406b160e11b8152600060048201526024016100e2565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156105a957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d591815260200190565b60405180910390a350505050565b6001600160a01b03831661070e5780600260008282546107039190610983565b909155506107809050565b6001600160a01b038316600090815260208190526040902054818110156107615760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e2565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661079c576002805482900390556107bb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161080091815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561083b576020818601810151604086840101520161081e565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461087257600080fd5b919050565b6000806040838503121561088a57600080fd5b6108938361085b565b946020939093013593505050565b6000806000606084860312156108b657600080fd5b6108bf8461085b565b92506108cd6020850161085b565b929592945050506040919091013590565b6000602082840312156108f057600080fd5b6108f98261085b565b9392505050565b6000806040838503121561091357600080fd5b61091c8361085b565b915061092a6020840161085b565b90509250929050565b600181811c9082168061094757607f821691505b60208210810361096757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102855761028561096d565b634e487b7160e01b600052601260045260246000fd5b6000826109bb576109bb610996565b500690565b6001815b60018411156109fb578085048111156109df576109df61096d565b60018416156109ed57908102905b60019390931c9280026109c4565b935093915050565b600082610a1257506001610285565b81610a1f57506000610285565b8160018114610a355760028114610a3f57610a5b565b6001915050610285565b60ff841115610a5057610a5061096d565b50506001821b610285565b5060208310610133831016604e8410600b8410161715610a7e575081810a610285565b610a8b60001984846109c0565b8060001904821115610a9f57610a9f61096d565b029392505050565b60006108f960ff841683610a03565b80820281158282048414176102855761028561096d565b600082610adc57610adc610996565b500490565b818103818111156102855761028561096d56fea2646970667358221220d049b4ceafc352d0fbdaae4aa19dfe6b53e5d84e21788da42199a7ce0d3cfb3c64736f6c634300081d0033
0x60806040526d14bdda60e3ea09c99004e980810e600555600880546001600160a81b03191674126982508145454ce325ddbe47a25d4ec3d231193317905534801561004957600080fd5b506040518060400160405280601a81526020017fefbbbfcea1efbbbfd0b5e2808dd180e281add0b5e2808ee281ab0000000000008152506040518060400160405280601a81526020017fe281a1cea1e281a4ce95e2808ccea1e281adce95e281abe2808b00000000000081525081600390816100c5919061018d565b5060046100d2828261018d565b505050604051428152426020820152506020600060803961024b565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061011857607f821691505b60208210810361013857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561018857806000526020600020601f840160051c810160208510156101655750805b601f840160051c820191505b818110156101855760008155600101610171565b50505b505050565b81516001600160401b038111156101a6576101a66100ee565b6101ba816101b48454610104565b8461013e565b6020601f8211600181146101ee57600083156101d65750848201515b600019600385901b1c1916600184901b178455610185565b600084815260208120601f198516915b8281101561021e57878501518255602094850194600190920191016101fe565b508482101561023c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610b2a8061025a6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063313ce56711610066578063313ce5671461015e57806370a082311461017857806395d89b411461018b578063a9059cbb14610193578063dd62ed3e146101a65761009e565b806306fdde03146100eb578063095ea7b3146101095780630c55699c1461012c57806318160ddd1461014357806323b872dd1461014b575b60405162461bcd60e51b815260206004820152601e60248201527f46616c6c6261636b2066756e6374696f6e20646f6573206e6f7468696e67000060448201526064015b60405180910390fd5b6100f36101df565b604051610100919061080d565b60405180910390f35b61011c610117366004610877565b610271565b6040519015158152602001610100565b61013560095481565b604051908152602001610100565b61013561028b565b61011c6101593660046108a1565b6102e4565b610166610308565b60405160ff9091168152602001610100565b6101356101863660046108de565b610375565b6100f361041d565b61011c6101a1366004610877565b61042c565b6101356101b4366004610900565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101ee90610933565b80601f016020809104026020016040519081016040528092919081815260200182805461021a90610933565b80156102675780601f1061023c57610100808354040283529160200191610267565b820191906000526020600020905b81548152906001019060200180831161024a57829003601f168201915b5050505050905090565b60003361027f81858561051e565b60019150505b92915050565b60006001606461029c603282610983565b9050600081116102db5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b50505060055490565b6000336102f2858285610530565b6102fd8585856105af565b506001949350505050565b6000600f6000600a6001606461031f603282610983565b90506000811161035e5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b5050600854600160a01b900460ff16949350505050565b62abcdef60009081526040516bffffffffffffffffffffffff19606084901b166020820152426034820152600f908290600a908290602d906054016040516020818303038152906040528051906020012060001c6103d391906109ac565b6103de906001610983565b600854909150600090600a906103fe90600160a01b900460ff1682610aa7565b6104089084610ab6565b6104129190610acd565b979650505050505050565b6060600480546101ee90610933565b6000613039600f82600a604436101561047f5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642063616c6c646174612073697a6560581b60448201526064016100e2565b60003660448260606104918385610ae1565b61049b9190610acd565b905060005b8181101561050c576040805160608302850191820135808252823592602090810135926001600160a01b0380851692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38360010193505050506104a0565b5060019b9a5050505050505050505050565b61052b838383600161060e565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198110156105a9578181101561059a57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016100e2565b6105a98484848403600061060e565b50505050565b6001600160a01b0383166105d957604051634b637e8f60e11b8152600060048201526024016100e2565b6001600160a01b0382166106035760405163ec442f0560e01b8152600060048201526024016100e2565b61052b8383836106e3565b6001600160a01b0384166106385760405163e602df0560e01b8152600060048201526024016100e2565b6001600160a01b03831661066257604051634a1406b160e11b8152600060048201526024016100e2565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156105a957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d591815260200190565b60405180910390a350505050565b6001600160a01b03831661070e5780600260008282546107039190610983565b909155506107809050565b6001600160a01b038316600090815260208190526040902054818110156107615760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e2565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661079c576002805482900390556107bb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161080091815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561083b576020818601810151604086840101520161081e565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461087257600080fd5b919050565b6000806040838503121561088a57600080fd5b6108938361085b565b946020939093013593505050565b6000806000606084860312156108b657600080fd5b6108bf8461085b565b92506108cd6020850161085b565b929592945050506040919091013590565b6000602082840312156108f057600080fd5b6108f98261085b565b9392505050565b6000806040838503121561091357600080fd5b61091c8361085b565b915061092a6020840161085b565b90509250929050565b600181811c9082168061094757607f821691505b60208210810361096757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102855761028561096d565b634e487b7160e01b600052601260045260246000fd5b6000826109bb576109bb610996565b500690565b6001815b60018411156109fb578085048111156109df576109df61096d565b60018416156109ed57908102905b60019390931c9280026109c4565b935093915050565b600082610a1257506001610285565b81610a1f57506000610285565b8160018114610a355760028114610a3f57610a5b565b6001915050610285565b60ff841115610a5057610a5061096d565b50506001821b610285565b5060208310610133831016604e8410600b8410161715610a7e575081810a610285565b610a8b60001984846109c0565b8060001904821115610a9f57610a9f61096d565b029392505050565b60006108f960ff841683610a03565b80820281158282048414176102855761028561096d565b600082610adc57610adc610996565b500490565b818103818111156102855761028561096d56fea2646970667358221220d049b4ceafc352d0fbdaae4aa19dfe6b53e5d84e21788da42199a7ce0d3cfb3c64736f6c634300081d0033