60806040526005805461ff00191690553480156200001c57600080fd5b506040518060400160405280601781526020017f5361696e742047656f72676520537461746520436f696e00000000000000000081525060405180604001604052806006815260200165293ab83832b960d11b8152508181818181600390805190602001906200008e9291906200032f565b508051620000a49060049060208401906200032f565b50506005805460ff1916601217905550620000c66301ffc9a760e01b62000194565b620000d8634bbee2df60e01b62000194565b620000ea637dcf646760e11b62000194565b5060009050620000f962000219565b600780546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200015d60006200015762000219565b6200021d565b6200018c7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc96200015762000219565b5050620003db565b6001600160e01b03198082161415620001f4576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152600660205260409020805460ff19166001179055565b3390565b6200022982826200022d565b5050565b600082815260086020908152604090912062000254918390620012dd620002a8821b17901c565b1562000229576200026462000219565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002bf836001600160a01b038416620002c8565b90505b92915050565b6000620002d6838362000317565b6200030e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002c2565b506000620002c2565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003675760008555620003b2565b82601f106200038257805160ff1916838001178555620003b2565b82800160010185558215620003b2579182015b82811115620003b257825182559160200191906001019062000395565b50620003c0929150620003c4565b5090565b5b80821115620003c05760008155600101620003c5565b6121b480620003eb6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806379cc679011610125578063a9059cbb116100ad578063d53913931161007c578063d539139314610881578063d547741f14610889578063d8fbe994146108b5578063dd62ed3e146108eb578063f2fde38b146109195761021c565b8063a9059cbb146106b7578063c1d34b89146106e3578063ca15c873146107a9578063cae9ca51146107c65761021c565b80639010d07c116100f45780639010d07c1461062c57806391d148541461064f57806395d89b411461067b578063a217fddf14610683578063a457c2d71461068b5761021c565b806379cc6790146105a85780637d64bcb4146105d45780638980f11f146105dc5780638da5cb5b146106085761021c565b8063313ce567116101a85780634000aea0116101775780634000aea01461047657806340c10f191461053157806342966c681461055d57806370a082311461057a578063715018a6146105a05761021c565b8063313ce567146103d45780633177029f146103f257806336568abe1461041e578063395093511461044a5761021c565b80631296ee62116101ef5780631296ee621461030d57806318160ddd1461033957806323b872dd14610353578063248a9ca3146103895780632f2ff15d146103a65761021c565b806301ffc9a71461022157806305d2035b1461025c57806306fdde0314610264578063095ea7b3146102e1575b600080fd5b6102486004803603602081101561023757600080fd5b50356001600160e01b03191661093f565b604080519115158252519081900360200190f35b61024861095e565b61026c61096c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a657818101518382015260200161028e565b50505050905090810190601f1680156102d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610248600480360360408110156102f757600080fd5b506001600160a01b038135169060200135610a02565b6102486004803603604081101561032357600080fd5b506001600160a01b038135169060200135610a20565b610341610a43565b60408051918252519081900360200190f35b6102486004803603606081101561036957600080fd5b506001600160a01b03813581169160208101359091169060400135610a49565b6103416004803603602081101561039f57600080fd5b5035610ad0565b6103d2600480360360408110156103bc57600080fd5b50803590602001356001600160a01b0316610ae5565b005b6103dc610b51565b6040805160ff9092168252519081900360200190f35b6102486004803603604081101561040857600080fd5b506001600160a01b038135169060200135610b5a565b6103d26004803603604081101561043457600080fd5b50803590602001356001600160a01b0316610b76565b6102486004803603604081101561046057600080fd5b506001600160a01b038135169060200135610bd7565b6102486004803603606081101561048c57600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104bc57600080fd5b8201836020820111156104ce57600080fd5b803590602001918460018302840111640100000000831117156104f057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c25945050505050565b6103d26004803603604081101561054757600080fd5b506001600160a01b038135169060200135610c80565b6103d26004803603602081101561057357600080fd5b5035610cd1565b6103416004803603602081101561059057600080fd5b50356001600160a01b0316610ce5565b6103d2610d00565b6103d2600480360360408110156105be57600080fd5b506001600160a01b038135169060200135610da2565b6103d2610dfc565b6103d2600480360360408110156105f257600080fd5b506001600160a01b038135169060200135610e4d565b610610610f33565b604080516001600160a01b039092168252519081900360200190f35b6106106004803603604081101561064257600080fd5b5080359060200135610f42565b6102486004803603604081101561066557600080fd5b50803590602001356001600160a01b0316610f5a565b61026c610f72565b610341610fd3565b610248600480360360408110156106a157600080fd5b506001600160a01b038135169060200135610fd8565b610248600480360360408110156106cd57600080fd5b506001600160a01b038135169060200135611040565b610248600480360360808110156106f957600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561073457600080fd5b82018360208201111561074657600080fd5b8035906020019184600183028401116401000000008311171561076857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611054945050505050565b610341600480360360208110156107bf57600080fd5b50356110b5565b610248600480360360608110156107dc57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561080c57600080fd5b82018360208201111561081e57600080fd5b8035906020019184600183028401116401000000008311171561084057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110cc945050505050565b61034161111f565b6103d26004803603604081101561089f57600080fd5b50803590602001356001600160a01b0316611143565b610248600480360360608110156108cb57600080fd5b506001600160a01b0381358116916020810135909116906040013561119c565b6103416004803603604081101561090157600080fd5b506001600160a01b03813581169160200135166111b9565b6103d26004803603602081101561092f57600080fd5b50356001600160a01b03166111e4565b6001600160e01b03191660009081526006602052604090205460ff1690565b600554610100900460ff1690565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109f85780601f106109cd576101008083540402835291602001916109f8565b820191906000526020600020905b8154815290600101906020018083116109db57829003601f168201915b5050505050905090565b6000610a16610a0f6112f2565b84846112f6565b5060015b92915050565b6000610a3c838360405180602001604052806000815250610c25565b9392505050565b60025490565b6000610a568484846113e2565b610ac684610a626112f2565b610ac185604051806060016040528060288152602001612033602891396001600160a01b038a16600090815260016020526040812090610aa06112f2565b6001600160a01b03168152602081019190915260400160002054919061153d565b6112f6565b5060019392505050565b60009081526008602052604090206002015490565b600082815260086020526040902060020154610b0890610b036112f2565b610f5a565b610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180611ece602f913960400191505060405180910390fd5b610b4d82826115d4565b5050565b60055460ff1690565b6000610a3c8383604051806020016040528060008152506110cc565b610b7e6112f2565b6001600160a01b0316816001600160a01b031614610bcd5760405162461bcd60e51b815260040180806020018281038252602f815260200180612150602f913960400191505060405180910390fd5b610b4d828261163d565b6000610a16610be46112f2565b84610ac18560016000610bf56112f2565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906116a6565b6000610c318484611040565b50610c45610c3d6112f2565b858585611700565b610ac65760405162461bcd60e51b815260040180806020018281038252602681526020018061200d6026913960400191505060405180910390fd5b600554610100900460ff1615610cc75760405162461bcd60e51b81526004018080602001828103825260228152602001806121096022913960400191505060405180910390fd5b610b4d8282611845565b610ce2610cdc6112f2565b826118b6565b50565b6001600160a01b031660009081526020819052604090205490565b610d086112f2565b6007546001600160a01b03908116911614610d58576040805162461bcd60e51b8152602060048201819052602482015260008051602061205b833981519152604482015290519081900360640190fd5b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600780546001600160a01b0319169055565b6000610dd98260405180606001604052806024815260200161207b60249139610dd286610dcd6112f2565b6111b9565b919061153d565b9050610ded83610de76112f2565b836112f6565b610df783836118b6565b505050565b600554610100900460ff1615610e435760405162461bcd60e51b81526004018080602001828103825260228152602001806121096022913960400191505060405180910390fd5b610e4b6119b2565b565b610e556112f2565b6007546001600160a01b03908116911614610ea5576040805162461bcd60e51b8152602060048201819052602482015260008051602061205b833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb610ebc610f33565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610f0357600080fd5b505af1158015610f17573d6000803e3d6000fd5b505050506040513d6020811015610f2d57600080fd5b50505050565b6007546001600160a01b031690565b6000828152600860205260408120610a3c9083611a12565b6000828152600860205260408120610a3c9083611a1e565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109f85780601f106109cd576101008083540402835291602001916109f8565b600081565b6000610a16610fe56112f2565b84610ac18560405180606001604052806025815260200161212b602591396001600061100f6112f2565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061153d565b6000610a1661104d6112f2565b84846113e2565b6000611061858585610a49565b5061106e85858585611700565b6110a95760405162461bcd60e51b815260040180806020018281038252602681526020018061200d6026913960400191505060405180910390fd5b5060015b949350505050565b6000818152600860205260408120610a1a90611a33565b60006110d88484610a02565b506110e4848484611a3e565b610ac65760405162461bcd60e51b8152600401808060200182810382526025815260200180611f676025913960400191505060405180910390fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b60008281526008602052604090206002015461116190610b036112f2565b610bcd5760405162461bcd60e51b8152600401808060200182810382526030815260200180611fb26030913960400191505060405180910390fd5b60006110ad84848460405180602001604052806000815250611054565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6111ec6112f2565b6007546001600160a01b0390811691161461123c576040805162461bcd60e51b8152602060048201819052602482015260008051602061205b833981519152604482015290519081900360640190fd5b6001600160a01b0381166112815760405162461bcd60e51b8152600401808060200182810382526026815260200180611f1f6026913960400191505060405180910390fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a3c836001600160a01b038416611b71565b3390565b6001600160a01b03831661133b5760405162461bcd60e51b81526004018080602001828103825260248152602001806120e56024913960400191505060405180910390fd5b6001600160a01b0382166113805760405162461bcd60e51b8152600401808060200182810382526022815260200180611f456022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166114275760405162461bcd60e51b81526004018080602001828103825260258152602001806120c06025913960400191505060405180910390fd5b6001600160a01b03821661146c5760405162461bcd60e51b8152600401808060200182810382526023815260200180611eab6023913960400191505060405180910390fd5b611477838383610df7565b6114b481604051806060016040528060268152602001611f8c602691396001600160a01b038616600090815260208190526040902054919061153d565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546114e390826116a6565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156115cc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611591578181015183820152602001611579565b50505050905090810190601f1680156115be5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008281526008602052604090206115ec90826112dd565b15610b4d576115f96112f2565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526008602052604090206116559082611bbb565b15610b4d576116626112f2565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610a3c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611714846001600160a01b0316611bd0565b611720575060006110ad565b6000846001600160a01b03166388a7ca5c6117396112f2565b8887876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117ac578181015183820152602001611794565b50505050905090810190601f1680156117d95780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b505050506040513d602081101561182557600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b6118717ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9610b036112f2565b6118ac5760405162461bcd60e51b815260040180806020018281038252602b815260200180611fe2602b913960400191505060405180910390fd5b610b4d8282611bd6565b6001600160a01b0382166118fb5760405162461bcd60e51b815260040180806020018281038252602181526020018061209f6021913960400191505060405180910390fd5b61190782600083610df7565b61194481604051806060016040528060228152602001611efd602291396001600160a01b038516600090815260208190526040902054919061153d565b6001600160a01b03831660009081526020819052604090205560025461196a9082611cc6565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6119ba6112f2565b6007546001600160a01b03908116911614611a0a576040805162461bcd60e51b8152602060048201819052602482015260008051602061205b833981519152604482015290519081900360640190fd5b610e4b611d08565b6000610a3c8383611d42565b6000610a3c836001600160a01b038416611da6565b6000610a1a82611dbe565b6000611a52846001600160a01b0316611bd0565b611a5e57506000610a3c565b6000846001600160a01b0316637b04a2d0611a776112f2565b86866040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ada578181015183820152602001611ac2565b50505050905090810190601f168015611b075780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b505050506040513d6020811015611b5257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b6000611b7d8383611da6565b611bb357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a1a565b506000610a1a565b6000610a3c836001600160a01b038416611dc2565b3b151590565b6001600160a01b038216611c31576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611c3d60008383610df7565b600254611c4a90826116a6565b6002556001600160a01b038216600090815260208190526040902054611c7090826116a6565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000610a3c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061153d565b6005805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b81546000908210611d845760405162461bcd60e51b8152600401808060200182810382526022815260200180611e896022913960400191505060405180910390fd5b826000018281548110611d9357fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015611e7e5783546000198083019190810190600090879083908110611df557fe5b9060005260206000200154905080876000018481548110611e1257fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611e4257fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610a1a565b6000915050610a1a56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373455243313336333a205f636865636b416e6443616c6c417070726f7665207265766572747345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c65455243313336333a205f636865636b416e6443616c6c5472616e73666572207265766572747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332304d696e7461626c653a206d696e74696e672069732066696e697368656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a264697066735822122028a8c12fe792584d05dddbab5e86fb8595d9d652727b5f41a5b3da708b83372f64736f6c63430007060033