0x6080604052600060025534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611358806100836000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a3d5b25511610071578063a3d5b25514610140578063ac84f7b014610153578063cb16864a146101a5578063eed88b8d146101bc578063f2fde38b146101cf578063f364c90c146101e257600080fd5b8063155f729d146100b9578063233c2039146100ce5780633b345a87146100e1578063715018a61461011d5780638da5cb5b14610125578063969fbf12146100cc575b600080fd5b6100cc6100c7366004610e77565b610205565b005b6100cc6100dc366004610fde565b61064d565b6100f46100ef36600461109e565b6107f2565b6040805182516001600160a01b0316815260209283015192810192909252015b60405180910390f35b6100cc610860565b6000546040516001600160a01b039091168152602001610114565b6100cc61014e3660046110b7565b610874565b61018661016136600461109e565b600160208190526000918252604090912080549101546001600160a01b039091169082565b604080516001600160a01b039093168352602083019190915201610114565b6101ae60025481565b604051908152602001610114565b6100cc6101ca3660046110f3565b610890565b6100cc6101dd36600461111d565b6108a6565b6101f56101f036600461113f565b61091f565b6040519015158152602001610114565b60005b818110156106485760025483838381811061022557610225611161565b90506020028101906102379190611177565b60600135106102615760405162461bcd60e51b815260040161025890611197565b60405180910390fd5b6102b683838381811061027657610276611161565b90506020028101906102889190611177565b3584848481811061029b5761029b611161565b90506020028101906102ad9190611177565b6060013561091f565b156103145760405162461bcd60e51b815260206004820152602860248201527f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060448201526731b630b4b6b2b21760c11b6064820152608401610258565b600083838381811061032857610328611161565b905060200281019061033a9190611177565b353385858581811061034e5761034e611161565b90506020028101906103609190611177565b602001356040516020016103999392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60405160208183030381529060405280519060200120905061045b8484848181106103c6576103c6611161565b90506020028101906103d89190611177565b6103e69060408101906111e1565b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250600193509150889050878781811061042d5761042d611161565b905060200281019061043f9190611177565b606001358152602001908152602001600020600101548361098f565b6104b15760405162461bcd60e51b815260206004820152602160248201527f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f666044820152601760f91b6064820152608401610258565b6105068484848181106104c6576104c6611161565b90506020028101906104d89190611177565b358585858181106104eb576104eb611161565b90506020028101906104fd9190611177565b606001356109a5565b61057f3385858581811061051c5761051c611161565b905060200281019061052e9190611177565b602001356001600088888881811061054857610548611161565b905060200281019061055a9190611177565b6060013581526020810191909152604001600020546001600160a01b031691906109f2565b83838381811061059157610591611161565b90506020028101906105a39190611177565b60600135337fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac8686868181106105db576105db611161565b90506020028101906105ed9190611177565b3587878781811061060057610600611161565b90506020028101906106129190611177565b6020013560405161062d929190918252602082015260400190565b60405180910390a3508061064081611232565b915050610208565b505050565b610655610a44565b80518251146106cc5760405162461bcd60e51b815260206004820152603c60248201527f4d65726b6c654469737472696275746f723a20746f6b656e73206e6f7420746860448201527f652073616d65206c656e677468206173206d65726b6c65526f6f7473000000006064820152608401610258565b60005b82518110156106485760025483518490839081106106ef576106ef611161565b60200260200101516001600083815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082828151811061074357610743611161565b60209081029190910181015160008381526001928390526040812090920155600280549161077083611232565b91905055508083838151811061078857610788611161565b60200260200101518584815181106107a2576107a2611161565b60200260200101516001600160a01b03167f9e8b584ed19ad497caf118c24f22b82fcc07eb52d2fc33028d21ccf2f89ada3560405160405180910390a450806107ea81611232565b9150506106cf565b604080518082019091526000808252602082015260025482106108275760405162461bcd60e51b815260040161025890611197565b5060408051808201825260008381526001602081815293822080546001600160a01b031684529490915280835292909201549082015290565b610868610a44565b6108726000610a9e565b565b61087c610a44565b6106486001600160a01b03841683836109f2565b610898610a44565b6108a28282610aee565b5050565b6108ae610a44565b6001600160a01b0381166109135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610258565b61091c81610a9e565b50565b600060025482106109425760405162461bcd60e51b815260040161025890611197565b60006109506101008561126f565b9050600061096061010086611283565b60009485526001602081815260408088209588526002909501905292909420549190931b908116149392505050565b60008261099c8584610ba1565b14949350505050565b60006109b36101008461126f565b905060006109c361010085611283565b6000938452600160208181526040808720958752600290950190529290932080549290931b9091179091555050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610648908490610c15565b6000546001600160a01b031633146108725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610258565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610b1891906112bb565b60006040518083038185875af1925050503d8060008114610b55576040519150601f19603f3d011682016040523d82523d6000602084013e610b5a565b606091505b50509050806106485760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610258565b600081815b8451811015610c0d576000858281518110610bc357610bc3611161565b60200260200101519050808311610be95760008381526020829052604090209250610bfa565b600081815260208490526040902092505b5080610c0581611232565b915050610ba6565b509392505050565b6000610c6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ce79092919063ffffffff16565b8051909150156106485780806020019051810190610c8891906112cd565b6106485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610258565b6060610cf68484600085610cfe565b949350505050565b606082471015610d5f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610258565b600080866001600160a01b03168587604051610d7b91906112bb565b60006040518083038185875af1925050503d8060008114610db8576040519150601f19603f3d011682016040523d82523d6000602084013e610dbd565b606091505b5091509150610dce87838387610dd9565b979650505050505050565b60608315610e48578251600003610e41576001600160a01b0385163b610e415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610258565b5081610cf6565b610cf68383815115610e5d5781518083602001fd5b8060405162461bcd60e51b815260040161025891906112ef565b60008060208385031215610e8a57600080fd5b823567ffffffffffffffff80821115610ea257600080fd5b818501915085601f830112610eb657600080fd5b813581811115610ec557600080fd5b8660208260051b8501011115610eda57600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f2b57610f2b610eec565b604052919050565b600067ffffffffffffffff821115610f4d57610f4d610eec565b5060051b60200190565b80356001600160a01b0381168114610f6e57600080fd5b919050565b600082601f830112610f8457600080fd5b81356020610f99610f9483610f33565b610f02565b82815260059290921b84018101918181019086841115610fb857600080fd5b8286015b84811015610fd35780358352918301918301610fbc565b509695505050505050565b60008060408385031215610ff157600080fd5b823567ffffffffffffffff8082111561100957600080fd5b818501915085601f83011261101d57600080fd5b8135602061102d610f9483610f33565b82815260059290921b8401810191818101908984111561104c57600080fd5b948201945b838610156110715761106286610f57565b82529482019490820190611051565b9650508601359250508082111561108757600080fd5b5061109485828601610f73565b9150509250929050565b6000602082840312156110b057600080fd5b5035919050565b6000806000606084860312156110cc57600080fd5b6110d584610f57565b92506110e360208501610f57565b9150604084013590509250925092565b6000806040838503121561110657600080fd5b61110f83610f57565b946020939093013593505050565b60006020828403121561112f57600080fd5b61113882610f57565b9392505050565b6000806040838503121561115257600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b60008235607e1983360301811261118d57600080fd5b9190910192915050565b6020808252602a908201527f4d65726b6c654469737472696275746f723a20446973747269627574696f6e20604082015269191bdb9d08195e1a5cdd60b21b606082015260800190565b6000808335601e198436030181126111f857600080fd5b83018035915067ffffffffffffffff82111561121357600080fd5b6020019150600581901b360382131561122b57600080fd5b9250929050565b60006001820161125257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261127e5761127e611259565b500490565b60008261129257611292611259565b500690565b60005b838110156112b257818101518382015260200161129a565b50506000910152565b6000825161118d818460208701611297565b6000602082840312156112df57600080fd5b8151801515811461113857600080fd5b602081526000825180602084015261130e816040850160208701611297565b601f01601f1916919091016040019291505056fea2646970667358221220abb781749b7e7c5c6ad98905addd81c975dfae696ccd4c6e1427c00353c7837664736f6c63430008110033