0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a9059cbb11610071578063a9059cbb1461037c578063b9844d8d146103a8578063d93aef11146103ce578063dd62ed3e1461044e578063dde43cba1461047c5761012c565b806370a08231146102f25780638129fc1c146103185780638779588c1461032257806395d89b4114610348578063a457c2d7146103505761012c565b80632acbf823116100f45780632acbf8231461024657806330adf81f14610298578063313ce567146102a05780633644e515146102be57806339509351146102c65761012c565b806306fdde0314610131578063095ea7b3146101ae5780631316529d146101ee57806318160ddd1461020857806323b872dd14610210575b600080fd5b610139610484565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b03813516906020013561051b565b604080519115158252519081900360200190f35b6101f6610538565b60408051918252519081900360200190f35b6101f661055c565b6101da6004803603606081101561022657600080fd5b506001600160a01b03813581169160208101359091169060400135610562565b6102726004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356105ef565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b6101f6610620565b6102a861063b565b6040805160ff9092168252519081900360200190f35b6101f6610644565b6101da600480360360408110156102dc57600080fd5b506001600160a01b03813516906020013561064a565b6101f66004803603602081101561030857600080fd5b50356001600160a01b031661069e565b610320610748565b005b6101f66004803603602081101561033857600080fd5b50356001600160a01b03166108a0565b6101396108b2565b6101da6004803603604081101561036657600080fd5b506001600160a01b038135169060200135610913565b6101da6004803603604081101561039257600080fd5b506001600160a01b038135169060200135610981565b6101f6600480360360208110156103be57600080fd5b50356001600160a01b0316610995565b610320600480360360608110156103e457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561040f57600080fd5b82018360208201111561042157600080fd5b8035906020019184602083028401116401000000008311171561044357600080fd5b9193509150356109a7565b6101f66004803603604081101561046457600080fd5b506001600160a01b0381358116916020013516610aa0565b6101f6610acb565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505090505b90565b600061052f610528610aef565b8484610af3565b50600192915050565b7f000000000000000000000000000000000000000000000000000000000000000190565b60025490565b600061056f848484610c76565b6105e58461057b610aef565b6105e085604051806060016040528060288152602001611144602891396001600160a01b038a166000908152600160205260408120906105b9610aef565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610de716565b610af3565b5060019392505050565b603a6020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b6040518060526110a082396052019050604051809103902081565b60055460ff1690565b603c5481565b600061052f610657610aef565b846105e08560016000610668610aef565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610e7e16565b60007f000000000000000000000000b48d5f19d45d209cb4a9e714e868113a2fbfd4ff6001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561071657600080fd5b505afa15801561072a573d6000803e3d6000fd5b505050506040513d602081101561074057600080fd5b505192915050565b6000610752610538565b905060065481116107945760405162461bcd60e51b815260040180806020018281038252602e81526020018061116c602e913960400191505060405180910390fd5b600681905560405146908060526110f28239604080519182900360520182208282018252600f8084526e726174732028457468657265756d2960881b60209485018190528351808601939093527ffef6db13fbcddc7e453c5ab1888504d411c5fab3bcb42121c2932da64e570c9d8385015260608301879052306080808501919091528451808503909101815260a0840180865281519190960120603c5560e083019093529283905260c0019081526108509250600391610fe5565b50604080518082019091526004808252635261747360e01b602090920191825261087a9181610fe5565b506108856012610edf565b61089c336c0c9f2c9cd04674edea40000000610ef5565b5050565b603b6020526000908152604090205481565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105105780601f106104e557610100808354040283529160200191610510565b600061052f610920610aef565b846105e0856040518060600160405280602581526020016111be602591396001600061094a610aef565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610de716565b600061052f61098e610aef565b8484610c76565b60396020526000908152604090205481565b336001600160a01b037f000000000000000000000000b48d5f19d45d209cb4a9e714e868113a2fbfd4ff161480156109df5750600081115b610a20576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b60005b82811015610a9957838382818110610a3757fe5b905060200201356001600160a01b03166001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600101610a23565b5050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b7f000000000000000000000000000000000000000000000000000000000000000181565b3390565b6001600160a01b038316610b385760405162461bcd60e51b815260040180806020018281038252602481526020018061119a6024913960400191505060405180910390fd5b6001600160a01b038216610b7d5760405162461bcd60e51b815260040180806020018281038252602281526020018061107e6022913960400191505060405180910390fd5b336001600160a01b0384161415610c14577f000000000000000000000000b48d5f19d45d209cb4a9e714e868113a2fbfd4ff6001600160a01b0316631316529d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610be757600080fd5b505afa158015610bfb573d6000803e3d6000fd5b505050506040513d6020811015610c1157600080fd5b50505b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3604080516001600160a01b038581166024830152848116604483015260648201849052336084808401919091528351808403909101815260a490920183526020820180516001600160e01b031663526a59af60e11b178152925182516000947f000000000000000000000000b48d5f19d45d209cb4a9e714e868113a2fbfd4ff93909316939282918083835b60208310610d6c5780518252601f199092019160209182019101610d4d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610dce576040519150601f19603f3d011682016040523d82523d6000602084013e610dd3565b606091505b5050905080610de157600080fd5b50505050565b60008184841115610e765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3b578181015183820152602001610e23565b50505050905090810190601f168015610e685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610ed8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6005805460ff191660ff92909216919091179055565b6001600160a01b038216610f50576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610f63908263ffffffff610e7e16565b6002556001600160a01b038216600090815260208190526040902054610f8f908263ffffffff610e7e16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061102657805160ff1916838001178555611053565b82800160010185558215611053579182015b82811115611053578251825591602001919060010190611038565b5061105f929150611063565b5090565b61051891905b8082111561105f576000815560010161106956fe45524332303a20617070726f766520746f20746865207a65726f20616464726573735065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203c071942fc2f69c6879fbc8f8defecc18e3536b53bff4af7d0d6e631b28d8b5164736f6c634300060a0033
0x60c060405260006006553480156200001657600080fd5b50604080518082018252600f81526e726174732028457468657265756d2960881b6020808301918252835180850190945260048452635261747360e01b9084015281519192916200006a91600391620001a0565b50805162000080906004906020840190620001a0565b50506005805460ff191660121790555060408051600481526024810182526020810180516001600160e01b0316636c74fc6360e01b1781529151815160609373bbd1346120d44d6175faab7d08ce06db52017c419392918291908083835b60208310620000ff5780518252601f199092019160209182019101620000de565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811462000163576040519150601f19603f3d011682016040523d82523d6000602084013e62000168565b606091505b509150508080602001905160208110156200018257600080fd5b505160601b6001600160601b03191660a05250600160805262000245565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e357805160ff191683800117855562000213565b8280016001018555821562000213579182015b8281111562000213578251825591602001919060010190620001f6565b506200022192915062000225565b5090565b6200024291905b808211156200022157600081556001016200022c565b90565b60805160a05160601c61121862000280600039806106a252806109b25280610b905280610d2252508061053a5280610acd52506112186000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a9059cbb11610071578063a9059cbb1461037c578063b9844d8d146103a8578063d93aef11146103ce578063dd62ed3e1461044e578063dde43cba1461047c5761012c565b806370a08231146102f25780638129fc1c146103185780638779588c1461032257806395d89b4114610348578063a457c2d7146103505761012c565b80632acbf823116100f45780632acbf8231461024657806330adf81f14610298578063313ce567146102a05780633644e515146102be57806339509351146102c65761012c565b806306fdde0314610131578063095ea7b3146101ae5780631316529d146101ee57806318160ddd1461020857806323b872dd14610210575b600080fd5b610139610484565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b03813516906020013561051b565b604080519115158252519081900360200190f35b6101f6610538565b60408051918252519081900360200190f35b6101f661055c565b6101da6004803603606081101561022657600080fd5b506001600160a01b03813581169160208101359091169060400135610562565b6102726004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356105ef565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b6101f6610620565b6102a861063b565b6040805160ff9092168252519081900360200190f35b6101f6610644565b6101da600480360360408110156102dc57600080fd5b506001600160a01b03813516906020013561064a565b6101f66004803603602081101561030857600080fd5b50356001600160a01b031661069e565b610320610748565b005b6101f66004803603602081101561033857600080fd5b50356001600160a01b03166108a0565b6101396108b2565b6101da6004803603604081101561036657600080fd5b506001600160a01b038135169060200135610913565b6101da6004803603604081101561039257600080fd5b506001600160a01b038135169060200135610981565b6101f6600480360360208110156103be57600080fd5b50356001600160a01b0316610995565b610320600480360360608110156103e457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561040f57600080fd5b82018360208201111561042157600080fd5b8035906020019184602083028401116401000000008311171561044357600080fd5b9193509150356109a7565b6101f66004803603604081101561046457600080fd5b506001600160a01b0381358116916020013516610aa0565b6101f6610acb565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505090505b90565b600061052f610528610aef565b8484610af3565b50600192915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60025490565b600061056f848484610c76565b6105e58461057b610aef565b6105e085604051806060016040528060288152602001611144602891396001600160a01b038a166000908152600160205260408120906105b9610aef565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610de716565b610af3565b5060019392505050565b603a6020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b6040518060526110a082396052019050604051809103902081565b60055460ff1690565b603c5481565b600061052f610657610aef565b846105e08560016000610668610aef565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610e7e16565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561071657600080fd5b505afa15801561072a573d6000803e3d6000fd5b505050506040513d602081101561074057600080fd5b505192915050565b6000610752610538565b905060065481116107945760405162461bcd60e51b815260040180806020018281038252602e81526020018061116c602e913960400191505060405180910390fd5b600681905560405146908060526110f28239604080519182900360520182208282018252600f8084526e726174732028457468657265756d2960881b60209485018190528351808601939093527ffef6db13fbcddc7e453c5ab1888504d411c5fab3bcb42121c2932da64e570c9d8385015260608301879052306080808501919091528451808503909101815260a0840180865281519190960120603c5560e083019093529283905260c0019081526108509250600391610fe5565b50604080518082019091526004808252635261747360e01b602090920191825261087a9181610fe5565b506108856012610edf565b61089c336c0c9f2c9cd04674edea40000000610ef5565b5050565b603b6020526000908152604090205481565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105105780601f106104e557610100808354040283529160200191610510565b600061052f610920610aef565b846105e0856040518060600160405280602581526020016111be602591396001600061094a610aef565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610de716565b600061052f61098e610aef565b8484610c76565b60396020526000908152604090205481565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156109df5750600081115b610a20576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b60005b82811015610a9957838382818110610a3757fe5b905060200201356001600160a01b03166001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600101610a23565b5050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b3390565b6001600160a01b038316610b385760405162461bcd60e51b815260040180806020018281038252602481526020018061119a6024913960400191505060405180910390fd5b6001600160a01b038216610b7d5760405162461bcd60e51b815260040180806020018281038252602281526020018061107e6022913960400191505060405180910390fd5b336001600160a01b0384161415610c14577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631316529d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610be757600080fd5b505afa158015610bfb573d6000803e3d6000fd5b505050506040513d6020811015610c1157600080fd5b50505b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3604080516001600160a01b038581166024830152848116604483015260648201849052336084808401919091528351808403909101815260a490920183526020820180516001600160e01b031663526a59af60e11b178152925182516000947f000000000000000000000000000000000000000000000000000000000000000093909316939282918083835b60208310610d6c5780518252601f199092019160209182019101610d4d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610dce576040519150601f19603f3d011682016040523d82523d6000602084013e610dd3565b606091505b5050905080610de157600080fd5b50505050565b60008184841115610e765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3b578181015183820152602001610e23565b50505050905090810190601f168015610e685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610ed8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6005805460ff191660ff92909216919091179055565b6001600160a01b038216610f50576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610f63908263ffffffff610e7e16565b6002556001600160a01b038216600090815260208190526040902054610f8f908263ffffffff610e7e16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061102657805160ff1916838001178555611053565b82800160010185558215611053579182015b82811115611053578251825591602001919060010190611038565b5061105f929150611063565b5090565b61051891905b8082111561105f576000815560010161106956fe45524332303a20617070726f766520746f20746865207a65726f20616464726573735065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203c071942fc2f69c6879fbc8f8defecc18e3536b53bff4af7d0d6e631b28d8b5164736f6c634300060a0033