0x608060405234801561001057600080fd5b5060405161127738038061127783398101604081905261002f916100ac565b60006100396100a8565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b0319166001600160a01b03929092169190911790556100da565b3390565b6000602082840312156100bd578081fd5b81516001600160a01b03811681146100d3578182fd5b9392505050565b61118e806100e96000396000f3fe60806040526004361061012e5760003560e01c80639038ede5116100ab578063bbdaa3c91161006f578063bbdaa3c914610399578063d4b83992146103ae578063da742228146103c3578063df463a66146103e3578063f2fde38b146103f8578063f9c002f714610418576101ca565b80639038ede5146102f2578063921276ea146103205780639687cb3514610342578063b039a88f14610362578063b90b41cf14610384576101ca565b806374e861d6116100f257806374e861d614610266578063776d1a01146102885780637bb05264146102a85780637da0a877146102c85780638da5cb5b146102dd576101ca565b80632afe31c1146101cf5780632d14c4b7146101fa5780632d1e29ac1461021c5780635c5e3db11461023c578063715018a614610251576101ca565b366101ca576001546001600160a01b03166101645760405162461bcd60e51b815260040161015b90610f84565b60405180910390fd5b60015460405163aa67c91960e01b81526001600160a01b039091169063aa67c919903490610196903090600401610e8b565b6000604051808303818588803b1580156101af57600080fd5b505af11580156101c3573d6000803e3d6000fd5b5050505050005b600080fd5b3480156101db57600080fd5b506101e461042d565b6040516101f19190611052565b60405180910390f35b34801561020657600080fd5b5061021a610215366004610e14565b6104b3565b005b34801561022857600080fd5b5061021a610237366004610c9c565b61057b565b34801561024857600080fd5b506101e4610582565b34801561025d57600080fd5b5061021a610588565b34801561027257600080fd5b5061027b610634565b6040516101f19190610e8b565b34801561029457600080fd5b5061021a6102a3366004610c5d565b610643565b3480156102b457600080fd5b5061021a6102c3366004610c5d565b61070e565b3480156102d457600080fd5b5061027b610792565b3480156102e957600080fd5b5061027b6107a1565b3480156102fe57600080fd5b5061031261030d366004610d63565b6107b0565b6040516101f1929190610eb9565b34801561032c57600080fd5b50610335610821565b6040516101f19190610edd565b34801561034e57600080fd5b5061021a61035d366004610d28565b610841565b34801561036e57600080fd5b50610377610898565b6040516101f19190611027565b34801561039057600080fd5b506101e46108d0565b3480156103a557600080fd5b506101e46108d6565b3480156103ba57600080fd5b5061027b6108dd565b3480156103cf57600080fd5b5061021a6103de366004610c5d565b6108ec565b3480156103ef57600080fd5b506101e4610970565b34801561040457600080fd5b5061021a610413366004610c5d565b610977565b34801561042457600080fd5b506101e4610a79565b6001546040516370a0823160e01b81526000916001600160a01b0316906370a082319061045e903090600401610e8b565b60206040518083038186803b15801561047657600080fd5b505afa15801561048a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ae9190610dfc565b905090565b6104bb610a80565b6001600160a01b03166104cc6107a1565b6001600160a01b031614610515576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b600154604051627b8a6760e11b81526001600160a01b039091169062f714ce90610545908590859060040161105b565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b505050505050565b5050505050565b61290481565b610590610a80565b6001600160a01b03166105a16107a1565b6001600160a01b0316146105ea576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001546001600160a01b031690565b61064b610a80565b6001600160a01b031661065c6107a1565b6001600160a01b0316146106a5576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b6003546040517f4d11d6210a5e807da812a693b5d341a870571b5fc31158172207a3d99c911ccd916106e4916001600160a01b03909116908490610e9f565b60405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b610716610a80565b6001600160a01b03166107276107a1565b6001600160a01b031614610770576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6000546001600160a01b031690565b6003546060906000906001600160a01b03166107cc8980611072565b6107dd906040810190602001610c5d565b6001600160a01b0316146108035760405162461bcd60e51b815260040161015b90610ef0565b50506040805160208101909152600081526001965096945050505050565b60606040518060600160405280602281526020016110f160229139905090565b61084e6020820182611087565b61085f9060e081019060c001610c5d565b6002546001600160a01b0390811691161461088c5760405162461bcd60e51b815260040161015b90610fbb565b61089581610a84565b50565b6108a0610bd7565b5060408051608081018252620249f08152620186a060208201526201adb091810191909152612904606082015290565b61c35081565b6201adb081565b6003546001600160a01b031681565b6108f4610a80565b6001600160a01b03166109056107a1565b6001600160a01b03161461094e576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b620249f081565b61097f610a80565b6001600160a01b03166109906107a1565b6001600160a01b0316146109d9576040805162461bcd60e51b81526020600482018190526024820152600080516020611139833981519152604482015290519081900360640190fd5b6001600160a01b038116610a1e5760405162461bcd60e51b81526004018080602001828103825260268152602001806111136026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b620186a081565b3390565b600080610a918380611072565b610aa2906040810190602001610c5d565b6001600160a01b031663572b6c0560e01b610ac06020860186611087565b610ad19060e081019060c001610c5d565b604051602401610ae19190610e8b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610b1f9190610e6f565b600060405180830381855afa9150503d8060008114610b5a576040519150601f19603f3d011682016040523d82523d6000602084013e610b5f565b606091505b509150915081610b815760405162461bcd60e51b815260040161015b90610f4d565b8051602014610ba25760405162461bcd60e51b815260040161015b90610ff2565b80806020019051810190610bb69190610c80565b610bd25760405162461bcd60e51b815260040161015b90610f16565b505050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b60008083601f840112610c10578182fd5b50813567ffffffffffffffff811115610c27578182fd5b602083019150836020828501011115610c3f57600080fd5b9250929050565b600060408284031215610c57578081fd5b50919050565b600060208284031215610c6e578081fd5b8135610c79816110cd565b9392505050565b600060208284031215610c91578081fd5b8151610c79816110e2565b600080600080600060808688031215610cb3578081fd5b853567ffffffffffffffff80821115610cca578283fd5b610cd689838a01610bff565b909750955060208801359150610ceb826110e2565b9093506040870135925060608701359080821115610d07578283fd5b5086016101208189031215610d1a578182fd5b809150509295509295909350565b600060208284031215610d39578081fd5b813567ffffffffffffffff811115610d4f578182fd5b610d5b84828501610c46565b949350505050565b60008060008060008060808789031215610d7b578081fd5b863567ffffffffffffffff80821115610d92578283fd5b610d9e8a838b01610c46565b97506020890135915080821115610db3578283fd5b610dbf8a838b01610bff565b90975095506040890135915080821115610dd7578283fd5b50610de489828a01610bff565b979a9699509497949695606090950135949350505050565b600060208284031215610e0d578081fd5b5051919050565b60008060408385031215610e26578182fd5b823591506020830135610e38816110cd565b809150509250929050565b60008151808452610e5b81602086016020860161109d565b601f01601f19169290920160200192915050565b60008251610e8181846020870161109d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b600060408252610ecc6040830185610e43565b905082151560208301529392505050565b600060208252610c796020830184610e43565b6020808252600c908201526b1ddc9bdb99c81d185c99d95d60a21b604082015260600190565b6020808252601f908201527f696e76616c696420666f7277617264657220666f7220726563697069656e7400604082015260600190565b6020808252601c908201527f697354727573746564466f727761726465723a20726576657274656400000000604082015260600190565b60208082526019908201527f72656c6179206875622061646472657373206e6f742073657400000000000000604082015260600190565b60208082526018908201527f466f72776172646572206973206e6f7420747275737465640000000000000000604082015260600190565b6020808252818101527f697354727573746564466f727761726465723a2062616420726573706f6e7365604082015260600190565b8151815260208083015190820152604080830151908201526060918201519181019190915260800190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6000823560de19833603018112610e81578182fd5b6000823561011e19833603018112610e81578182fd5b60005b838110156110b85781810151838201526020016110a0565b838111156110c7576000848401525b50505050565b6001600160a01b038116811461089557600080fd5b801515811461089557600080fdfe322e322e302b6f70656e67736e2e726563697069656e742e697061796d61737465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209a62c3f92906c5fc9d96863d62fc13784a889ce4527ced67a4068c5c737ffb8564736f6c634300070600330000000000000000000000002b139777178dc11516d3446367f5bef96ab29941