0x608060405234801561001057600080fd5b506040516110ca3803806110ca8339818101604052604081101561003357600080fd5b50805160209091015160006100466100b9565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0393909316929092179091556004556100bd565b3390565b610ffe806100cc6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806399efa5761161008c578063c744656511610066578063c74465651461027d578063e1af9a9514610285578063f2fde38b1461028d578063f3a133a9146102b3576100ea565b806399efa5761461022a578063b781360714610247578063bd86c6f61461024f576100ea565b8063715018a6116100c8578063715018a61461016557806373cf8b531461016d5780638a19c8bc146101fe5780638da5cb5b14610206576100ea565b806318712c21146100ef5780632eb4a7ab146101145780632fb7ceee1461012e575b600080fd5b6101126004803603604081101561010557600080fd5b50803590602001356102d0565b005b61011c61033d565b60408051918252519081900360200190f35b6101516004803603604081101561014457600080fd5b5080359060200135610343565b604080519115158252519081900360200190f35b610112610363565b610112600480360360a081101561018357600080fd5b8135916020810135916040820135916001600160a01b036060820135169181019060a0810160808201356401000000008111156101bf57600080fd5b8201836020820111156101d157600080fd5b803590602001918460208302840111640100000000831117156101f357600080fd5b50909250905061040f565b61011c610659565b61020e61065f565b604080516001600160a01b039092168252519081900360200190f35b61011c6004803603602081101561024057600080fd5b503561066e565b61020e610680565b6101126004803603604081101561026557600080fd5b506001600160a01b038135811691602001351661068f565b61011c610892565b61011c610898565b610112600480360360208110156102a357600080fd5b50356001600160a01b031661089e565b610112600480360360208110156102c957600080fd5b50356109a0565b6102d8610a07565b6001600160a01b03166102e961065f565b6001600160a01b031614610332576040805162461bcd60e51b81526020600482018190526024820152600080516020610f7f833981519152604482015290519081900360640190fd5b600591909155600255565b60025481565b600660209081526000928352604080842090915290825290205460ff1681565b61036b610a07565b6001600160a01b031661037c61065f565b6001600160a01b0316146103c5576040805162461bcd60e51b81526020600482018190526024820152600080516020610f7f833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b8560055414610456576040805162461bcd60e51b815260206004820152600e60248201526d0a4deeadcc840dad2e6dac2e8c6d60931b604482015290519081900360640190fd5b600086815260066020908152604080832088845290915290205460ff16156104b3576040805162461bcd60e51b815260206004820152600b60248201526a1218590818db185a5b595960aa1b604482015290519081900360640190fd5b6004544210156104f6576040805162461bcd60e51b8152602060048201526009602482015268139bdd081cdd185c9d60ba1b604482015290519081900360640190fd5b60008686868660405160200180858152602001848152602001838152602001826001600160a01b03168152602001945050505050604051602081830303815290604052805190602001209050610583838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610a0b565b6105cc576040805162461bcd60e51b815260206004820152601560248201527426b2b935b6329d1024b73b30b634b210383937b7b360591b604482015290519081900360640190fd5b60008781526006602090815260408083208984529091529020805460ff1916600190811790915554610608906001600160a01b03168587610ab6565b6003805486019055604080518881526020810188905280820187905290517fe630ca519fedafd2bd9bd35ad65e198e08398f47c88ca063c406740992bcd1a49181900360600190a150505050505050565b60055481565b6000546001600160a01b031690565b60076020526000908152604090205481565b6001546001600160a01b031681565b610697610a07565b6001600160a01b03166106a861065f565b6001600160a01b0316146106f1576040805162461bcd60e51b81526020600482018190526024820152600080516020610f7f833981519152604482015290519081900360640190fd5b6001600160a01b0382166108045760408051600080825260208201928390528151479391926001600160a01b038616928592819081908082805b6020831061074a5780518252601f19909201916020918201910161072b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146107ac576040519150601f19603f3d011682016040523d82523d6000602084013e6107b1565b606091505b50509050806107fd576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505061088e565b6000826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561085357600080fd5b505afa158015610867573d6000803e3d6000fd5b505050506040513d602081101561087d57600080fd5b5051905061088c838383610b08565b505b5050565b60045481565b60035481565b6108a6610a07565b6001600160a01b03166108b761065f565b6001600160a01b031614610900576040805162461bcd60e51b81526020600482018190526024820152600080516020610f7f833981519152604482015290519081900360640190fd5b6001600160a01b0381166109455760405162461bcd60e51b8152600401808060200182810382526026815260200180610f336026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6109a8610a07565b6001600160a01b03166109b961065f565b6001600160a01b031614610a02576040805162461bcd60e51b81526020600482018190526024820152600080516020610f7f833981519152604482015290519081900360640190fd5b600455565b3390565b600081815b8551811015610aa9576000868281518110610a2757fe5b60200260200101519050808311610a6e5782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610aa0565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610a10565b50831490505b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261088c908490610c64565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b60208310610b855780518252601f199092019160209182019101610b66565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610be7576040519150601f19603f3d011682016040523d82523d6000602084013e610bec565b606091505b5091509150818015610c1a575080511580610c1a5750808060200190516020811015610c1757600080fd5b50515b610c5d576040805162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015290519081900360640190fd5b5050505050565b6060610cb9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d159092919063ffffffff16565b80519091501561088c57808060200190516020811015610cd857600080fd5b505161088c5760405162461bcd60e51b815260040180806020018281038252602a815260200180610f9f602a913960400191505060405180910390fd5b6060610d248484600085610d2c565b949350505050565b606082471015610d6d5760405162461bcd60e51b8152600401808060200182810382526026815260200180610f596026913960400191505060405180910390fd5b610d7685610e88565b610dc7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610e065780518252601f199092019160209182019101610de7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610e68576040519150601f19603f3d011682016040523d82523d6000602084013e610e6d565b606091505b5091509150610e7d828286610e8e565b979650505050505050565b3b151590565b60608315610e9d575081610aaf565b825115610ead5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ef7578181015183820152602001610edf565b50505050905090810190601f168015610f245780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122036b9f58f376e911f61966745b996569c4ddb3eb4ac18f614e367fb23c134a08a64736f6c634300060c0033000000000000000000000000be59baad09b07086ee6c39bd0fc234c157c31ccc0000000000000000000000000000000000000000000000000000000065cc3af5