0x60806040526004361061004a5760003560e01c806302c3a65b1461004f5780630a9d0315146100645780631e0b78b5146100a0578063b5928171146100b3578063cf68d88d146100d3575b600080fd5b61006261005d366004610527565b6100e6565b005b34801561007057600080fd5b5061008461007f366004610585565b6101a7565b6040516001600160a01b03909116815260200160405180910390f35b6100626100ae3660046105f3565b6101d5565b3480156100bf57600080fd5b506100846100ce3660046106d5565b610292565b6100626100e136600461070d565b6102c4565b806000806100f38761037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061012d610391565b604051630477840f60e31b81526004810186905265ffffffffffff851660248201526001600160a01b03848116604483015291909116906323bc20789034906064016000604051808303818588803b15801561018857600080fd5b505af115801561019c573d6000803e3d6000fd5b505050505050505050565b60008060006101b58461037e565b81526020810191909152604001600020546001600160a01b031692915050565b806000806101e78a610140013561037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610221610391565b6001600160a01b0316636c1b7abd348989898989896040518863ffffffff1660e01b81526004016102579695949392919061082d565b6000604051808303818588803b15801561027057600080fd5b505af1158015610284573d6000803e3d6000fd5b505050505050505050505050565b60008060006102a28686866104bb565b81526020810191909152604001600020546001600160a01b0316949350505050565b806000806102d689610160013561037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610310610391565b6001600160a01b0316637ced595c3488888888886040518763ffffffff1660e01b8152600401610344959493929190610962565b6000604051808303818588803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b5050505050505050505050565b600061038b8232436104bb565b92915050565b600046600114156103b55750731bf979282181f2b7a640d17ab5d2e25125f2de5e90565b4661210514156103d85750738087039152c472fa74f47398628ff002994056ea90565b46600a14156103fa575073fafd47bb399d570b5ac95694c5d2a1fb5ea030bb90565b466276adf1141561041e5750733ad45858a983d193d98bd4e6c14852a4cadcdbea90565b4661a4b1141561044157507341cbab1028984a34c1338f437c726de791695ae890565b4660891415610463575073fbb65c52f439b762f712026cf6dd7d8e82f81eb990565b4662014a34141561048757507341cbab1028984a34c1338f437c726de791695ae890565b4662aa36a714156104ab575073d698911b1bb2a9c849bf5e2604af110766f396b690565b506001546001600160a01b031690565b6040805160208082019590955260609390931b6001600160601b03191683820152605480840192909252805180840390920182526074909201909152805191012090565b6001600160a01b038116811461051457600080fd5b50565b8035610522816104ff565b919050565b6000806000806080858703121561053d57600080fd5b84359350602085013565ffffffffffff8116811461055a57600080fd5b9250604085013561056a816104ff565b9150606085013561057a816104ff565b939692955090935050565b60006020828403121561059757600080fd5b5035919050565b6001600160a01b03169052565b60008083601f8401126105bd57600080fd5b5081356001600160401b038111156105d457600080fd5b6020830191508360208285010111156105ec57600080fd5b9250929050565b60008060008060008060008789036101e081121561061057600080fd5b6101608082121561062057600080fd5b89985088013590506001600160401b038082111561063d57600080fd5b6106498b838c016105ab565b90985096506101808a0135915061065f826104ff565b9094506101a0890135908082111561067657600080fd5b818a0191508a601f83011261068a57600080fd5b81358181111561069957600080fd5b8b60208260051b85010111156106ae57600080fd5b6020830195508094505050506106c76101c08901610517565b905092959891949750929550565b6000806000606084860312156106ea57600080fd5b8335925060208401356106fc816104ff565b929592945050506040919091013590565b60008060008060008086880361020081121561072857600080fd5b6101808082121561073857600080fd5b88975087013590506001600160401b0381111561075457600080fd5b61076089828a016105ab565b9096509450506101a0870135610775816104ff565b92506101c0870135801515811461078b57600080fd5b91506101e087013561079c816104ff565b809150509295509295509295565b80356001600160401b038116811461052257600080fd5b6001600160401b03169052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006001600160fb1b0383111561081057600080fd5b8260051b8083602087013760009401602001938452509192915050565b60006101c06108448361083f8b610517565b61059e565b61085060208a01610517565b61085d602085018261059e565b5061086a60408a01610517565b610877604085018261059e565b5061088460608a01610517565b610891606085018261059e565b50608089013560808401526108a860a08a016107aa565b6108b560a08501826107c1565b506108c260c08a016107aa565b6108cf60c08501826107c1565b506108dc60e08a016107aa565b6108e960e08501826107c1565b506101006108f8818b016107aa565b610904828601826107c1565b50506101208981013590840152610140808a0135908401526101608301819052610931818401888a6107ce565b905061094161018084018761059e565b8281036101a08401526109558185876107f7565b9998505050505050505050565b60006101e06109748361083f8a610517565b61098060208901610517565b61098d602085018261059e565b5061099a60408901610517565b6109a7604085018261059e565b506109b460608901610517565b6109c1606085018261059e565b50608088013560808401526109d860a089016107aa565b6109e560a08501826107c1565b5060c0888101359084015260e0808901359084015261010080890135908401526101208089013590840152610140808901359084015261016080890135908401526101808301819052610a3b81840187896107ce565b915050610a4c6101a083018561059e565b8215156101c0830152969550505050505056fea164736f6c634300080a000a
0x608060405234801561001057600080fd5b50604051610aff380380610aff83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610a6c806100936000396000f3fe60806040526004361061004a5760003560e01c806302c3a65b1461004f5780630a9d0315146100645780631e0b78b5146100a0578063b5928171146100b3578063cf68d88d146100d3575b600080fd5b61006261005d366004610527565b6100e6565b005b34801561007057600080fd5b5061008461007f366004610585565b6101a7565b6040516001600160a01b03909116815260200160405180910390f35b6100626100ae3660046105f3565b6101d5565b3480156100bf57600080fd5b506100846100ce3660046106d5565b610292565b6100626100e136600461070d565b6102c4565b806000806100f38761037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061012d610391565b604051630477840f60e31b81526004810186905265ffffffffffff851660248201526001600160a01b03848116604483015291909116906323bc20789034906064016000604051808303818588803b15801561018857600080fd5b505af115801561019c573d6000803e3d6000fd5b505050505050505050565b60008060006101b58461037e565b81526020810191909152604001600020546001600160a01b031692915050565b806000806101e78a610140013561037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610221610391565b6001600160a01b0316636c1b7abd348989898989896040518863ffffffff1660e01b81526004016102579695949392919061082d565b6000604051808303818588803b15801561027057600080fd5b505af1158015610284573d6000803e3d6000fd5b505050505050505050505050565b60008060006102a28686866104bb565b81526020810191909152604001600020546001600160a01b0316949350505050565b806000806102d689610160013561037e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610310610391565b6001600160a01b0316637ced595c3488888888886040518763ffffffff1660e01b8152600401610344959493929190610962565b6000604051808303818588803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b5050505050505050505050565b600061038b8232436104bb565b92915050565b600046600114156103b55750731bf979282181f2b7a640d17ab5d2e25125f2de5e90565b4661210514156103d85750738087039152c472fa74f47398628ff002994056ea90565b46600a14156103fa575073fafd47bb399d570b5ac95694c5d2a1fb5ea030bb90565b466276adf1141561041e5750733ad45858a983d193d98bd4e6c14852a4cadcdbea90565b4661a4b1141561044157507341cbab1028984a34c1338f437c726de791695ae890565b4660891415610463575073fbb65c52f439b762f712026cf6dd7d8e82f81eb990565b4662014a34141561048757507341cbab1028984a34c1338f437c726de791695ae890565b4662aa36a714156104ab575073d698911b1bb2a9c849bf5e2604af110766f396b690565b506001546001600160a01b031690565b6040805160208082019590955260609390931b6001600160601b03191683820152605480840192909252805180840390920182526074909201909152805191012090565b6001600160a01b038116811461051457600080fd5b50565b8035610522816104ff565b919050565b6000806000806080858703121561053d57600080fd5b84359350602085013565ffffffffffff8116811461055a57600080fd5b9250604085013561056a816104ff565b9150606085013561057a816104ff565b939692955090935050565b60006020828403121561059757600080fd5b5035919050565b6001600160a01b03169052565b60008083601f8401126105bd57600080fd5b5081356001600160401b038111156105d457600080fd5b6020830191508360208285010111156105ec57600080fd5b9250929050565b60008060008060008060008789036101e081121561061057600080fd5b6101608082121561062057600080fd5b89985088013590506001600160401b038082111561063d57600080fd5b6106498b838c016105ab565b90985096506101808a0135915061065f826104ff565b9094506101a0890135908082111561067657600080fd5b818a0191508a601f83011261068a57600080fd5b81358181111561069957600080fd5b8b60208260051b85010111156106ae57600080fd5b6020830195508094505050506106c76101c08901610517565b905092959891949750929550565b6000806000606084860312156106ea57600080fd5b8335925060208401356106fc816104ff565b929592945050506040919091013590565b60008060008060008086880361020081121561072857600080fd5b6101808082121561073857600080fd5b88975087013590506001600160401b0381111561075457600080fd5b61076089828a016105ab565b9096509450506101a0870135610775816104ff565b92506101c0870135801515811461078b57600080fd5b91506101e087013561079c816104ff565b809150509295509295509295565b80356001600160401b038116811461052257600080fd5b6001600160401b03169052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006001600160fb1b0383111561081057600080fd5b8260051b8083602087013760009401602001938452509192915050565b60006101c06108448361083f8b610517565b61059e565b61085060208a01610517565b61085d602085018261059e565b5061086a60408a01610517565b610877604085018261059e565b5061088460608a01610517565b610891606085018261059e565b50608089013560808401526108a860a08a016107aa565b6108b560a08501826107c1565b506108c260c08a016107aa565b6108cf60c08501826107c1565b506108dc60e08a016107aa565b6108e960e08501826107c1565b506101006108f8818b016107aa565b610904828601826107c1565b50506101208981013590840152610140808a0135908401526101608301819052610931818401888a6107ce565b905061094161018084018761059e565b8281036101a08401526109558185876107f7565b9998505050505050505050565b60006101e06109748361083f8a610517565b61098060208901610517565b61098d602085018261059e565b5061099a60408901610517565b6109a7604085018261059e565b506109b460608901610517565b6109c1606085018261059e565b50608088013560808401526109d860a089016107aa565b6109e560a08501826107c1565b5060c0888101359084015260e0808901359084015261010080890135908401526101208089013590840152610140808901359084015261016080890135908401526101808301819052610a3b81840187896107ce565b915050610a4c6101a083018561059e565b8215156101c0830152969550505050505056fea164736f6c634300080a000a0000000000000000000000001bf979282181f2b7a640d17ab5d2e25125f2de5e