//
0x60806040523480156200001157600080fd5b50604051620013c4380380620013c4833981016040819052620000349162000219565b6200003f33620000b9565b600180546001600160a01b03808a166001600160a01b031992831617909255600280548984169083161790556003805492881692909116919091179055600484905560058390556006805460ff8381166101000261ffff1990921690851617179055620000ac3362000109565b505050505050506200029c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001136200018c565b6001600160a01b0381166200017e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200018981620000b9565b50565b6000546001600160a01b03163314620001e85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000175565b565b80516001600160a01b03811681146200020257600080fd5b919050565b805160ff811681146200020257600080fd5b600080600080600080600060e0888a0312156200023557600080fd5b6200024088620001ea565b96506200025060208901620001ea565b95506200026060408901620001ea565b945060608801519350608088015192506200027e60a0890162000207565b91506200028e60c0890162000207565b905092959891949750929550565b61111880620002ac6000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c806382aa1c88116100ad578063c5c4744c11610071578063c5c4744c14610219578063d944392314610222578063f2d657c41461023f578063f2fde38b14610252578063fc0c546a1461026557600080fd5b806382aa1c88146101bf5780638afbf669146101d15780638da5cb5b146101d9578063a0a6e940146101fe578063c55dae631461020657600080fd5b80633cd2bb5c116100f45780633cd2bb5c1461017d57806342e94c9014610185578063518ab2a8146101a5578063715018a6146101ae57806381d136cb146101b657600080fd5b80620e7fa81461012557806304c98b2b146101415780633610724e1461014b5780633b97e8561461015e575b600080fd5b61012e60055481565b6040519081526020015b60405180910390f35b610149610278565b005b610149610159366004610ee1565b610348565b60065461016b9060ff1681565b60405160ff9091168152602001610138565b6101496107fc565b61012e610193366004610f0f565b600a6020526000908152604090205481565b61012e60075481565b610149610964565b61012e60045481565b60065461016b90610100900460ff1681565b610149610978565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610138565b610149610a6a565b6002546101e6906001600160a01b031681565b61012e60085481565b60095461022f9060ff1681565b6040519015158152602001610138565b6003546101e6906001600160a01b031681565b610149610260366004610f0f565b610dc1565b6001546101e6906001600160a01b031681565b610280610e37565b600154600480546040516323b872dd60e01b8152339281019290925230602483015260448201526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156102db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ff9190610f33565b507f884f0ecd854b5bcb742f0156e594094458bddc3f2cc8c9e4048a7cedfa6f01cc60045460055460405161033e929190918252602082015260400190565b60405180910390a1565b60026004546103579190610f6b565b600754106103a05760405162461bcd60e51b8152602060048201526011602482015270141c995cd85b194e8814dbdb19081bdd5d607a1b60448201526064015b60405180910390fd5b6002546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040d9190610f8d565b600254604051636eb1769f60e11b81523360048201523060248201529192506000916001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015610461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104859190610f8d565b9050818311156104e85760405162461bcd60e51b815260206004820152602860248201527f50726573616c653a20496e73756666696369656e74206261736520746f6b656e6044820152672062616c616e636560c01b6064820152608401610397565b808311156105385760405162461bcd60e51b815260206004820152601a60248201527f50726573616c653a20416c6c6f77616e636520746f6f206c6f770000000000006044820152606401610397565b60065460009061055190610100900460ff16600a61108c565b60055461055e919061109b565b60065461056f9060ff16600a61108c565b610579908661109b565b6105839190610f6b565b9050600081116105e35760405162461bcd60e51b815260206004820152602560248201527f50726573616c653a20496e73756666696369656e7420707572636861736520616044820152641b5bdd5b9d60da1b6064820152608401610397565b60026004546105f29190610f6b565b8160075461060091906110b2565b111561065a5760405162461bcd60e51b815260206004820152602360248201527f50726573616c653a20457863656564732070726573616c6520616c6c6f63617460448201526234b7b760e91b6064820152608401610397565b6002546040516323b872dd60e01b8152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156106b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d59190610f33565b5060015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b9190610f33565b50336000908152600a60205260408120805486929061076b9084906110b2565b92505081905550806007600082825461078491906110b2565b92505081905550836008600082825461079d91906110b2565b909155505060405181815233907f8f28852646c20cc973d3a8218f7eefed58c25c909f78f0265af4818c3d4dc2719060200160405180910390a260026004546107e69190610f6b565b600754106107f6576107f6610a6a565b50505050565b610804610e37565b60095460ff166108565760405162461bcd60e51b815260206004820152601c60248201527f50726573616c653a20416464206c6971756964697479206669727374000000006044820152606401610397565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c39190610f8d565b90508015610961576002546001600160a01b031663a9059cbb6108ee6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190610f33565b505b50565b61096c610e37565b6109766000610e91565b565b610980610e37565b60095460ff166109d25760405162461bcd60e51b815260206004820152601c60248201527f50726573616c653a20416464206c6971756964697479206669727374000000006044820152606401610397565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610f8d565b90508015610961576001546001600160a01b031663a9059cbb6108ee6000546001600160a01b031690565b610a72610e37565b60095460ff1615610ac55760405162461bcd60e51b815260206004820181905260248201527f50726573616c653a204c697175696469747920616c72656164792061646465646044820152606401610397565b60006002600854610ad69190610f6b565b905060006002600454610ae99190610f6b565b60035460015460025460405163e6a4390560e01b81526001600160a01b03928316600482015290821660248201529293501690600090829063e6a4390590604401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b91906110c5565b90506001600160a01b038116610bf9576001546002546040516364e329cb60e11b81526001600160a01b03928316600482015290821660248201529083169063c9c65396906044016020604051808303816000875af1158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf691906110c5565b90505b60015460405163095ea7b360e01b81526001600160a01b038381166004830152602482018690529091169063095ea7b3906044016020604051808303816000875af1158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c709190610f33565b5060025460405163095ea7b360e01b81526001600160a01b038381166004830152602482018790529091169063095ea7b3906044016020604051808303816000875af1158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190610f33565b50806001600160a01b0316636a627842610d0a6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190610f8d565b506009805460ff1916600117905560408051848152602081018690527f38f8a0c92f4c5b0b6877f878cb4c0c8d348a47b76d716c8e78f425043df9515b910160405180910390a150505050565b610dc9610e37565b6001600160a01b038116610e2e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610397565b61096181610e91565b6000546001600160a01b031633146109765760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610ef357600080fd5b5035919050565b6001600160a01b038116811461096157600080fd5b600060208284031215610f2157600080fd5b8135610f2c81610efa565b9392505050565b600060208284031215610f4557600080fd5b81518015158114610f2c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082610f8857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610f9f57600080fd5b5051919050565b600181815b80851115610fe1578160001904821115610fc757610fc7610f55565b80851615610fd457918102915b93841c9390800290610fab565b509250929050565b600082610ff857506001611086565b8161100557506000611086565b816001811461101b576002811461102557611041565b6001915050611086565b60ff84111561103657611036610f55565b50506001821b611086565b5060208310610133831016604e8410600b8410161715611064575081810a611086565b61106e8383610fa6565b806000190482111561108257611082610f55565b0290505b92915050565b6000610f2c60ff841683610fe9565b808202811582820484141761108657611086610f55565b8082018082111561108657611086610f55565b6000602082840312156110d757600080fd5b8151610f2c81610efa56fea2646970667358221220bd7241a3c82605786a53d53299e879b1bdb2df80f03bb74be14c750b9eed039464736f6c6343000812003300000000000000000000000059e97bf693f05fa0ac4cab91b01108c2871cf4ec000000000000000000000000a00744882684c3e4747faefd68d283ea44099d03000000000000000000000000da257cbe968202dea212bbb65ab49f174da58b9d00000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012