60806040526008805461ffff60a01b191690553480156200001f57600080fd5b506040516200286438038062002864833981810160405260e08110156200004557600080fd5b81019080805160405193929190846401000000008211156200006657600080fd5b9083019060208201858111156200007c57600080fd5b82516401000000008111828201881017156200009757600080fd5b82525081516020918201929091019080838360005b83811015620000c6578181015183820152602001620000ac565b50505050905090810190601f168015620000f45780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011857600080fd5b9083019060208201858111156200012e57600080fd5b82516401000000008111828201881017156200014957600080fd5b82525081516020918201929091019080838360005b83811015620001785781810151838201526020016200015e565b50505050905090810190601f168015620001a65780820380516001836020036101000a031916815260200191505b506040908152602082810151918301516060840151608085015160a090950151895194975091955093929091859189918991620001ea916003919085019062000957565b5080516200020090600490602084019062000957565b50506005805460ff19166012179055508062000263576040805162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b6006556200028e60006200027f6001600160e01b036200042616565b6001600160e01b036200042b16565b604080516526a4a72a22a960d11b81529051908190036006019020620002c1906200027f6001600160e01b036200042616565b604080516727a822a920aa27a960c11b81529051908190036008019020620002f6906200027f6001600160e01b036200042616565b60006200030b6001600160e01b036200042616565b600880546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015806200036657508284145b620003a35760405162461bcd60e51b8152600401808060200182810382526046815260200180620027da6046913960600191505060405180910390fd5b620003b7856001600160e01b036200044416565b8215620003e557620003e5620003d56001600160e01b036200045a16565b846001600160e01b036200046916565b8015620003ff57620003ff6001600160e01b036200058116565b81156200041957620004196001600160e01b036200066f16565b50505050505050620009f9565b335b90565b6200044082826001600160e01b036200071216565b5050565b6005805460ff191660ff92909216919091179055565b6008546001600160a01b031690565b6001600160a01b038216620004c5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620004dc600083836001600160e01b036200079616565b620004f881600254620007b360201b620013741790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200052b91839062001374620007b3821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600854600160a01b900460ff1615620005cc5760405162461bcd60e51b8152600401808060200182810382526024815260200180620028406024913960400191505060405180910390fd5b620005df6001600160e01b036200042616565b6008546001600160a01b0390811691161462000631576040805162461bcd60e51b8152602060048201819052602482015260008051602062002820833981519152604482015290519081900360640190fd5b6008805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b620006826001600160e01b036200042616565b6008546001600160a01b03908116911614620006d4576040805162461bcd60e51b8152602060048201819052602482015260008051602062002820833981519152604482015290519081900360640190fd5b6008805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b6000828152600760209081526040909120620007399183906200181062000817821b17901c565b156200044057620007526001600160e01b036200042616565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b620007ae8383836200083760201b62001a171760201c565b505050565b6000828201838110156200080e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60006200080e836001600160a01b0384166001600160e01b03620008e116565b6200084f838383620007ae60201b62000b2c1760201c565b6001600160a01b038316620007ae576006546200088d82620008796001600160e01b036200093916565b620007b360201b620013741790919060201c565b1115620007ae576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6000620008f883836001600160e01b036200093f16565b620009305750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000811565b50600062000811565b60025490565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200099a57805160ff1916838001178555620009ca565b82800160010185558215620009ca579182015b82811115620009ca578251825591602001919060010190620009ad565b50620009d8929150620009dc565b5090565b6200042891905b80821115620009d85760008155600101620009e3565b611dd18062000a096000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806379cc67901161011a578063a457c2d7116100ad578063d547741f1161007c578063d547741f146105d0578063dd62ed3e146105fc578063f1b50c1d1461062a578063f2fde38b14610632578063f5b541a61461065857610206565b8063a457c2d714610553578063a9059cbb1461057f578063ca15c873146105ab578063d5391393146105c857610206565b80639010d07c116100e95780639010d07c146104f457806391d148541461051757806395d89b4114610543578063a217fddf1461054b57610206565b806379cc6790146104705780637d64bcb41461049c5780638980f11f146104a45780638da5cb5b146104d057610206565b8063355274ea1161019d57806342966c681161016c57806342966c681461041557806346b38ea2146104325780634cd412d51461043a57806370a0823114610442578063715018a61461046857610206565b8063355274ea1461038957806336568abe1461039157806339509351146103bd57806340c10f19146103e957610206565b806323b872dd116101d957806323b872dd146102ea578063248a9ca3146103205780632f2ff15d1461033d578063313ce5671461036b57610206565b806305d2035b1461020b57806306fdde0314610227578063095ea7b3146102a457806318160ddd146102d0575b600080fd5b610213610660565b604080519115158252519081900360200190f35b61022f610670565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610269578181015183820152602001610251565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610213600480360360408110156102ba57600080fd5b506001600160a01b038135169060200135610706565b6102d8610724565b60408051918252519081900360200190f35b6102136004803603606081101561030057600080fd5b506001600160a01b0381358116916020810135909116906040013561072a565b6102d86004803603602081101561033657600080fd5b50356107b8565b6103696004803603604081101561035357600080fd5b50803590602001356001600160a01b03166107cd565b005b610373610839565b6040805160ff9092168252519081900360200190f35b6102d8610842565b610369600480360360408110156103a757600080fd5b50803590602001356001600160a01b0316610848565b610213600480360360408110156103d357600080fd5b506001600160a01b0381351690602001356108a9565b610369600480360360408110156103ff57600080fd5b506001600160a01b038135169060200135610902565b6103696004803603602081101561042b57600080fd5b50356109b7565b61022f6109cb565b610213610a04565b6102d86004803603602081101561045857600080fd5b50356001600160a01b0316610a14565b610369610a2f565b6103696004803603604081101561048657600080fd5b506001600160a01b038135169060200135610ad1565b610369610b31565b610369600480360360408110156104ba57600080fd5b506001600160a01b038135169060200135610c10565b6104d8610cff565b604080516001600160a01b039092168252519081900360200190f35b6104d86004803603604081101561050a57600080fd5b5080359060200135610d0e565b6102136004803603604081101561052d57600080fd5b50803590602001356001600160a01b0316610d33565b61022f610d51565b6102d8610db2565b6102136004803603604081101561056957600080fd5b506001600160a01b038135169060200135610db7565b6102136004803603604081101561059557600080fd5b506001600160a01b038135169060200135610e25565b6102d8600480360360208110156105c157600080fd5b5035610eb6565b6102d8610ecd565b610369600480360360408110156105e657600080fd5b50803590602001356001600160a01b0316610eeb565b6102d86004803603604081101561061257600080fd5b506001600160a01b0381358116916020013516610f44565b610369610f6f565b6103696004803603602081101561064857600080fd5b50356001600160a01b0316611005565b6102d86110fe565b600854600160a01b900460ff1690565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106fc5780601f106106d1576101008083540402835291602001916106fc565b820191906000526020600020905b8154815290600101906020018083116106df57829003601f168201915b5050505050905090565b600061071a61071361111e565b8484611122565b5060015b92915050565b60025490565b6008546000908490600160a81b900460ff16806107695750604080516727a822a920aa27a960c11b815290519081900360080190206107699082610d33565b6107a45760405162461bcd60e51b8152600401808060200182810382526050815260200180611cd46050913960600191505060405180910390fd5b6107af85858561120e565b95945050505050565b60009081526007602052604090206002015490565b6000828152600760205260409020600201546107f0906107eb61111e565b610d33565b61082b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611ae4602f913960400191505060405180910390fd5b6108358282611296565b5050565b60055460ff1690565b60065490565b61085061111e565b6001600160a01b0316816001600160a01b03161461089f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611d6d602f913960400191505060405180910390fd5b6108358282611305565b600061071a6108b661111e565b846108fd85600160006108c761111e565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61137416565b611122565b600854600160a01b900460ff161561094b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611d246024913960400191505060405180910390fd5b604080516526a4a72a22a960d11b81529051908190036006019020610972906107eb61111e565b6109ad5760405162461bcd60e51b815260040180806020018281038252602b815260200180611bd3602b913960400191505060405180910390fd5b61083582826113ce565b6109c86109c261111e565b826114ca565b50565b6040518060400160405280601f81526020017f636f6e746578742d6d616368696e653a207472656e646572696e672e636f6d0081525081565b600854600160a81b900460ff1690565b6001600160a01b031660009081526020819052604090205490565b610a3761111e565b6008546001600160a01b03908116911614610a87576040805162461bcd60e51b81526020600482018190526024820152600080516020611c26833981519152604482015290519081900360640190fd5b6008546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880546001600160a01b0319169055565b6000610b0e82604051806060016040528060248152602001611c4660249139610b0186610afc61111e565b610f44565b919063ffffffff6115d216565b9050610b2283610b1c61111e565b83611122565b610b2c83836114ca565b505050565b600854600160a01b900460ff1615610b7a5760405162461bcd60e51b8152600401808060200182810382526024815260200180611d246024913960400191505060405180910390fd5b610b8261111e565b6008546001600160a01b03908116911614610bd2576040805162461bcd60e51b81526020600482018190526024820152600080516020611c26833981519152604482015290519081900360640190fd5b6008805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b610c1861111e565b6008546001600160a01b03908116911614610c68576040805162461bcd60e51b81526020600482018190526024820152600080516020611c26833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb610c7f610cff565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b50505050565b6008546001600160a01b031690565b6000828152600760205260408120610d2c908363ffffffff61166916565b9392505050565b6000828152600760205260408120610d2c908363ffffffff61167516565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106fc5780601f106106d1576101008083540402835291602001916106fc565b600081565b600061071a610dc461111e565b846108fd85604051806060016040528060258152602001611d486025913960016000610dee61111e565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6115d216565b6000610e2f61111e565b600854600160a81b900460ff1680610e695750604080516727a822a920aa27a960c11b81529051908190036008019020610e699082610d33565b610ea45760405162461bcd60e51b8152600401808060200182810382526050815260200180611cd46050913960600191505060405180910390fd5b610eae848461168a565b949350505050565b600081815260076020526040812061071e9061169e565b604080516526a4a72a22a960d11b8152905190819003600601902081565b600082815260076020526040902060020154610f09906107eb61111e565b61089f5760405162461bcd60e51b8152600401808060200182810382526030815260200180611ba36030913960400191505060405180910390fd5b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610f7761111e565b6008546001600160a01b03908116911614610fc7576040805162461bcd60e51b81526020600482018190526024820152600080516020611c26833981519152604482015290519081900360640190fd5b6008805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b61100d61111e565b6008546001600160a01b0390811691161461105d576040805162461bcd60e51b81526020600482018190526024820152600080516020611c26833981519152604482015290519081900360640190fd5b6001600160a01b0381166110a25760405162461bcd60e51b8152600401808060200182810382526026815260200180611b356026913960400191505060405180910390fd5b6008546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b604080516727a822a920aa27a960c11b8152905190819003600801902081565b3390565b6001600160a01b0383166111675760405162461bcd60e51b8152600401808060200182810382526024815260200180611cb06024913960400191505060405180910390fd5b6001600160a01b0382166111ac5760405162461bcd60e51b8152600401808060200182810382526022815260200180611b5b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061121b8484846116a9565b61128c8461122761111e565b6108fd85604051806060016040528060288152602001611bfe602891396001600160a01b038a1660009081526001602052604081209061126561111e565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6115d216565b5060019392505050565b60008281526007602052604090206112b4908263ffffffff61181016565b15610835576112c161111e565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152600760205260409020611323908263ffffffff61182516565b156108355761133061111e565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610d2c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611429576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6114356000838361183a565b600254611448908263ffffffff61137416565b6002556001600160a01b038216600090815260208190526040902054611474908263ffffffff61137416565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661150f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c6a6021913960400191505060405180910390fd5b61151b8260008361183a565b61155e81604051806060016040528060228152602001611b13602291396001600160a01b038516600090815260208190526040902054919063ffffffff6115d216565b6001600160a01b03831660009081526020819052604090205560025461158a908263ffffffff61184516565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081848411156116615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561162657818101518382015260200161160e565b50505050905090810190601f1680156116535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000610d2c8383611887565b6000610d2c836001600160a01b0384166118eb565b600061071a61169761111e565b84846116a9565b600061071e82611903565b6001600160a01b0383166116ee5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c8b6025913960400191505060405180910390fd5b6001600160a01b0382166117335760405162461bcd60e51b8152600401808060200182810382526023815260200180611ac16023913960400191505060405180910390fd5b61173e83838361183a565b61178181604051806060016040528060268152602001611b7d602691396001600160a01b038616600090815260208190526040902054919063ffffffff6115d216565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b6908263ffffffff61137416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000610d2c836001600160a01b038416611907565b6000610d2c836001600160a01b038416611951565b610b2c838383611a17565b6000610d2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d2565b815460009082106118c95760405162461bcd60e51b8152600401808060200182810382526022815260200180611a9f6022913960400191505060405180910390fd5b8260000182815481106118d857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600061191383836118eb565b6119495750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561071e565b50600061071e565b60008181526001830160205260408120548015611a0d578354600019808301919081019060009087908390811061198457fe5b90600052602060002001549050808760000184815481106119a157fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806119d157fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061071e565b600091505061071e565b611a22838383610b2c565b6001600160a01b038316610b2c57600654611a4b82611a3f610724565b9063ffffffff61137416565b1115610b2c576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735472656e646572696e67546f6b656e3a207472616e73666572206973206e6f7420656e61626c6564206f722066726f6d20646f6573206e6f74206861766520746865204f50455241544f5220726f6c655472656e646572696e67546f6b656e3a206d696e74696e672069732066696e697368656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220ecd9f816ebbda58ba7be4965b4276759e563e212779189f20a1f75b5b0e819d564736f6c634300060600335472656e646572696e67546f6b656e3a2069662066696e697368206d696e74696e672c20636170206d75737420626520657175616c20746f20696e697469616c537570706c794f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472656e646572696e67546f6b656e3a206d696e74696e672069732066696e697368656400000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000084595161401484a00000000000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5472656e646572696e6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000454524e4400000000000000000000000000000000000000000000000000000000