60806040523480156200001157600080fd5b50600380546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a362000073336b19d971e4fe8401e7400000006001600160e01b036200007a16565b506200018b565b600062000098826000546200012960201b6200143b1790919060201c565b60009081556001600160a01b038416815260016020908152604090912054620000cc9184906200143b62000129821b17901c565b6001600160a01b03841660008181526001602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60008282018381101562000184576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b611f87806200019b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806383cfab42116100f9578063d1c4691611610097578063e4cc18be11610071578063e4cc18be1461056a578063e583983614610572578063f2fde38b14610598578063f7b188a5146105be576101c4565b8063d1c46916146104f0578063d8fb933714610516578063dd62ed3e1461053c576101c4565b80638da5cb5b116100d35780638da5cb5b1461045357806395d89b4114610477578063a9059cbb1461047f578063b2520a7c146104ab576101c4565b806383cfab42146103ff5780638456cb59146104255780638d1fdf2f1461042d576101c4565b806340c10f191161016657806370a082311161014057806370a082311461039d578063715018a6146103c357806379cc6790146103cb5780637b352962146103f7576101c4565b806340c10f191461034c57806342966c68146103785780635c975abb14610395576101c4565b806323b872dd116101a257806323b872dd146102a05780632f6c493c146102d6578063313ce567146102fc57806338b820921461031a576101c4565b806306fdde03146101c9578063095ea7b31461024657806318160ddd14610286575b600080fd5b6101d16105c6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102726004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356105e4565b604080519115158252519081900360200190f35b61028e610640565b60408051918252519081900360200190f35b610272600480360360608110156102b657600080fd5b506001600160a01b03813581169160208101359091169060400135610646565b610272600480360360208110156102ec57600080fd5b50356001600160a01b0316610832565b6103046108b2565b6040805160ff9092168252519081900360200190f35b6102726004803603606081101561033057600080fd5b506001600160a01b0381351690602081013590604001356108b7565b6102726004803603604081101561036257600080fd5b506001600160a01b038135169060200135610920565b6102726004803603602081101561038e57600080fd5b5035610a8d565b610272610b1c565b61028e600480360360208110156103b357600080fd5b50356001600160a01b0316610b25565b610272610b40565b610272600480360360408110156103e157600080fd5b506001600160a01b038135169060200135610b9b565b610272610c84565b6102726004803603602081101561041557600080fd5b50356001600160a01b0316610c92565b610272610d2c565b6102726004803603602081101561044357600080fd5b50356001600160a01b0316610df6565b61045b610e93565b604080516001600160a01b039092168252519081900360200190f35b6101d1610ea2565b6102726004803603604081101561049557600080fd5b506001600160a01b038135169060200135610ebf565b6104d7600480360360408110156104c157600080fd5b506001600160a01b03813516906020013561103e565b6040805192835260208301919091528051918290030190f35b6102726004803603602081101561050657600080fd5b50356001600160a01b03166110a6565b6104d76004803603602081101561052c57600080fd5b50356001600160a01b0316611128565b61028e6004803603604081101561055257600080fd5b506001600160a01b0381358116916020013516611150565b61027261117b565b6102726004803603602081101561058857600080fd5b50356001600160a01b031661124c565b610272600480360360208110156105ae57600080fd5b50356001600160a01b031661126a565b61027261130a565b6040805180820190915260048152635142454560e01b602082015290565b60006001600160a01b03831661062b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e7b602e913960400191505060405180910390fd5b6106363384846113d0565b5060019392505050565b60005490565b6001600160a01b038316600090815260076020526040812054849060ff16156106b6576040805162461bcd60e51b815260206004820152601c60248201527f467265657a61626c65203a207461726765742069732066726f7a656e00000000604482015290519081900360640190fd5b60065460ff16156106f85760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b6001600160a01b03851660009081526005602052604090205485908490610725908263ffffffff61143b16565b6001600160a01b038316600090815260016020526040902054101561077b5760405162461bcd60e51b8152600401808060200182810382526033815260200180611e486033913960400191505060405180910390fd5b6001600160a01b0386166107c05760405162461bcd60e51b8152600401808060200182810382526033815260200180611c6a6033913960400191505060405180910390fd5b6107cb878787611495565b50610824873361081f88604051806060016040528060338152602001611da6603391396001600160a01b038d166000908152600260209081526040808320338452909152902054919063ffffffff61157016565b6113d0565b506001979650505050505050565b6000805b6001600160a01b0383166000908152600460205260409020548110156108a9576001600160a01b038316600090815260046020526040902080544291908390811061087d57fe5b90600052602060002090600202016001015410156108a15761089f8382611607565b505b600101610836565b50600192915050565b601290565b60006001600160a01b0384166108fe5760405162461bcd60e51b815260040180806020018281038252603e815260200180611b5b603e913960400191505060405180910390fd5b610909338585611495565b50610915848484611792565b506001949350505050565b6003546000906001600160a01b0316331461096c5760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b60065460ff16156109ae5760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b6001600160a01b0383166109f35760405162461bcd60e51b8152600401808060200182810382526034815260200180611c9d6034913960400191505060405180910390fd5b600654610100900460ff1615610a3a5760405162461bcd60e51b815260040180806020018281038252602f815260200180611d48602f913960400191505060405180910390fd5b610a448383611917565b506040805183815290516001600160a01b038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a250600192915050565b60065460009060ff1615610ad25760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b610adc33836119b3565b60408051848152905191925033917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59181900360200190a2506001919050565b60065460ff1690565b6001600160a01b031660009081526001602052604090205490565b6003546000906001600160a01b03163314610b8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b610b966000611a9b565b905090565b60065460009060ff1615610be05760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b610bea83836119b3565b506040805183815290516001600160a01b038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2610c7d833361081f85604051806060016040528060388152602001611c32603891396001600160a01b0389166000908152600260209081526040808320338452909152902054919063ffffffff61157016565b9392505050565b600654610100900460ff1690565b6003546000906001600160a01b03163314610cde5760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b6001600160a01b038216600081815260076020526040808220805460ff19169055517fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee9190a2506001919050565b6003546000906001600160a01b03163314610d785760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b60065460ff1615610dba5760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b6006805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a150600190565b6003546000906001600160a01b03163314610e425760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b6001600160a01b038216600081815260076020526040808220805460ff19166001179055517faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc3230499190a2506001919050565b6003546001600160a01b031690565b60408051808201909152600381526228a12d60e91b602082015290565b3360008181526007602052604081205490919060ff1615610f27576040805162461bcd60e51b815260206004820152601c60248201527f467265657a61626c65203a207461726765742069732066726f7a656e00000000604482015290519081900360640190fd5b60065460ff1615610f695760405162461bcd60e51b8152600401808060200182810382526039815260200180611cd16039913960400191505060405180910390fd5b336000818152600560205260409020548490610f8b908263ffffffff61143b16565b6001600160a01b0383166000908152600160205260409020541015610fe15760405162461bcd60e51b8152600401808060200182810382526033815260200180611e486033913960400191505060405180910390fd5b6001600160a01b0386166110265760405162461bcd60e51b815260040180806020018281038252602f815260200180611ea9602f913960400191505060405180910390fd5b611031338787611495565b5060019695505050505050565b600080611049611b40565b6001600160a01b038516600090815260046020526040902080548590811061106d57fe5b60009182526020918290206040805180820190915260029092020180548083526001909101549190920181905290969095509350505050565b6003546000906001600160a01b031633146110f25760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b60005b6001600160a01b0383166000908152600460205260409020548110156108a95761111f8382611607565b506001016110f5565b6001600160a01b03166000908152600560209081526040808320546004909252909120549091565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6003546000906001600160a01b031633146111c75760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b600654610100900460ff161561120e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b99602e913960400191505060405180910390fd5b6006805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b6001600160a01b031660009081526007602052604090205460ff1690565b6003546000906001600160a01b031633146112b65760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b6001600160a01b0382166112fb5760405162461bcd60e51b8152600401808060200182810382526045815260200180611f0d6045913960600191505060405180910390fd5b61130482611a9b565b92915050565b6003546000906001600160a01b031633146113565760405162461bcd60e51b815260040180806020018281038252602f815260200180611d77602f913960400191505060405180910390fd5b60065460ff166113975760405162461bcd60e51b8152600401808060200182810382526035815260200180611ed86035913960400191505060405180910390fd5b6006805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a150600190565b6001600160a01b03808416600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082820183811015610c7d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006114da826040518060600160405280603e8152602001611d0a603e91396001600160a01b038716600090815260016020526040902054919063ffffffff61157016565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461150f908363ffffffff61143b16565b6001600160a01b0380851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600081848411156115ff5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115c45781810151838201526020016115ac565b50505050905090810190601f1680156115f15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216600090815260046020526040812080548291908490811061162e57fe5b60009182526020808320600290920290910180546001600160a01b0388168452600590925260409092205491925061166c919063ffffffff611afe16565b6001600160a01b0385166000818152600560209081526040918290209390935583548151908152905191927f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f192918290030190a26001600160a01b0384166000908152600460205260409020805460001981019081106116e857fe5b906000526020600020906002020160046000866001600160a01b03166001600160a01b03168152602001908152602001600020848154811061172657fe5b60009182526020808320845460029093020191825560019384015493909101929092556001600160a01b038616815260049091526040902080548061176757fe5b6000828152602081206002600019909301928302018181556001908101919091559155949350505050565b60004282116117d25760405162461bcd60e51b815260040180806020018281038252602b815260200180611c07602b913960400191505060405180910390fd5b6001600160a01b0384166000908152600560205260409020546117fc90849063ffffffff61143b16565b6001600160a01b03851660009081526001602052604090205410156118525760405162461bcd60e51b8152600401808060200182810382526040815260200180611bc76040913960400191505060405180910390fd5b6001600160a01b03841660009081526005602052604090205461187b908463ffffffff61143b16565b6001600160a01b03851660008181526005602090815260408083209490945560048152838220845180860186528881528083018881528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b6000805461192b908363ffffffff61143b16565b60009081556001600160a01b038416815260016020526040902054611956908363ffffffff61143b16565b6001600160a01b03841660008181526001602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60006119f882604051806060016040528060398152602001611dd9603991396001600160a01b038616600090815260016020526040902054919063ffffffff61157016565b60016000856001600160a01b03166001600160a01b0316815260200190815260200160002081905550611a4e82604051806060016040528060368152602001611e1260369139600054919063ffffffff61157016565b60009081556040805184815290516001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a350600192915050565b6003546040516000916001600160a01b03808516929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908490a350600380546001600160a01b0319166001600160a01b0392909216919091179055600190565b6000610c7d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611570565b60405180604001604052806000815260200160008152509056fe45524332304c6f636b61626c652f7472616e73666572576974684c6f636b5570203a2043616e6e6f742073656e6420746f207a65726f206164647265737345524332304d696e7461626c652f66696e6973684d696e74696e67203a20416c72656164792066696e697368656445524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f74616c2073686f756c6420626520736d616c6c6572207468616e2062616c616e636545524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742064756520746f207061737445524332304275726e61626c652f6275726e46726f6d203a2043616e6e6f74206275726e206d6f7265207468616e20616c6c6f77616e6365514245452f7472616e7366657246726f6d203a2053686f756c64206e6f742073656e6420746f207a65726f206164647265737345524332304d696e7461626c652f6d696e74203a2053686f756c64206e6f74206d696e7420746f207a65726f2061646472657373506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c6564207768656e206e6f742070617573656445524332302f7472616e73666572203a2063616e6e6f74207472616e73666572206d6f7265207468616e20746f6b656e206f776e65722062616c616e636545524332304d696e7461626c652f6d696e74203a2043616e6e6f74206d696e742061667465722066696e69736865644f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e617574686f72697a656420757365722e514245452f7472616e7366657246726f6d203a2043616e6e6f742073656e64206d6f7265207468616e20616c6c6f77616e636545524332304275726e61626c652f6275726e203a2043616e6e6f74206275726e206d6f7265207468616e207573657227732062616c616e636545524332304275726e61626c652f6275726e203a2043616e6e6f74206275726e206d6f7265207468616e20746f74616c537570706c7945524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207468616e20756e6c6f636b656420616d6f756e74514245452f617070726f7665203a2053686f756c64206e6f7420617070726f7665207a65726f2061646472657373514245452f7472616e73666572203a2053686f756c64206e6f742073656e6420746f207a65726f2061646472657373506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c6564207768656e207061757365644f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e6f74207472616e73666572206f776e65727368697020746f207a65726f2061646472657373a26469706673582212208193ba9b2ec3668aa630a92f771b67b03ccbecaf3798890b6979302a142ade8c64736f6c63430006060033