0x60806040523480156200001157600080fd5b5060405162001193380380620011938339818101604052810190620000379190620001b2565b620000576200004b620000cf60201b60201c565b620000d760201b60201c565b60008060146101000a81548160ff02191690831515021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000237565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620001ac816200021d565b92915050565b600060208284031215620001cb57620001ca62000218565b5b6000620001db848285016200019b565b91505092915050565b6000620001f182620001f8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200022881620001e4565b81146200023457600080fd5b50565b610f4c80620002476000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637477ede0116100665780637477ede0146100e65780638456cb59146101025780638da5cb5b1461010c578063a21d93121461012a578063f2fde38b1461015a57610093565b8063378110e8146100985780633f4ba83a146100b45780635c975abb146100be578063715018a6146100dc575b600080fd5b6100b260048036038101906100ad91906108c3565b610176565b005b6100bc6103fd565b005b6100c6610417565b6040516100d39190610ba7565b60405180910390f35b6100e461042d565b005b61010060048036038101906100fb9190610965565b610441565b005b61010a6104a4565b005b6101146104be565b6040516101219190610b8c565b60405180910390f35b610144600480360381019061013f9190610896565b6104e7565b6040516101519190610ba7565b60405180910390f35b610174600480360381019061016f9190610896565b610507565b005b61017e61058b565b600033905060006001828a8a8a8a6040516020016101a0959493929190610b07565b604051602081830303815290604052805190602001206040516020016101c69190610b66565b60405160208183030381529060405280519060200120868686604051600081526020016040526040516101fc9493929190610bc2565b6020604051602081039080840390855afa15801561021e573d6000803e3d6000fd5b505050602060405103519050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166102b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ad90610c87565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff166342966c68886040518263ffffffff1660e01b81526004016102ef9190610ca7565b600060405180830381600087803b15801561030957600080fd5b505af115801561031d573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff166342966c68876040518263ffffffff1660e01b815260040161035a9190610ca7565b600060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b50505050868873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f2b006193bfed9bf2790dc6d5e7ba9fdd6304cd97bac77931d7a121e3e0336da5896040516103ea9190610ca7565b60405180910390a4505050505050505050565b6104056105d5565b61040d61061e565b61041561069c565b565b60008060149054906101000a900460ff16905090565b61043561061e565b61043f60006106fe565b565b61044961061e565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6104ac61058b565b6104b461061e565b6104bc6107c2565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b61050f61061e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561057f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057690610c27565b60405180910390fd5b610588816106fe565b50565b610593610417565b156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ca90610c47565b60405180910390fd5b565b6105dd610417565b61061c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061390610c07565b60405180910390fd5b565b610626610825565b73ffffffffffffffffffffffffffffffffffffffff166106446104be565b73ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190610c67565b60405180910390fd5b565b6106a46105d5565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6106e7610825565b6040516106f49190610b8c565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6107ca61058b565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861080e610825565b60405161081b9190610b8c565b60405180910390a1565b600033905090565b60008135905061083c81610ea3565b92915050565b60008135905061085181610eba565b92915050565b60008135905061086681610ed1565b92915050565b60008135905061087b81610ee8565b92915050565b60008135905061089081610eff565b92915050565b6000602082840312156108ac576108ab610d75565b5b60006108ba8482850161082d565b91505092915050565b600080600080600080600060e0888a0312156108e2576108e1610d75565b5b60006108f08a828b0161082d565b97505060206109018a828b0161082d565b96505060406109128a828b0161086c565b95505060606109238a828b0161086c565b94505060806109348a828b01610881565b93505060a06109458a828b01610857565b92505060c06109568a828b01610857565b91505092959891949750929550565b6000806040838503121561097c5761097b610d75565b5b600061098a8582860161082d565b925050602061099b85828601610842565b9150509250929050565b6109ae81610cde565b82525050565b6109c56109c082610cde565b610d3d565b82525050565b6109d481610cf0565b82525050565b6109e381610cfc565b82525050565b6109fa6109f582610cfc565b610d4f565b82525050565b6000610a0d601483610cc2565b9150610a1882610d87565b602082019050919050565b6000610a30601c83610cd3565b9150610a3b82610db0565b601c82019050919050565b6000610a53602683610cc2565b9150610a5e82610dd9565b604082019050919050565b6000610a76601083610cc2565b9150610a8182610e28565b602082019050919050565b6000610a99602083610cc2565b9150610aa482610e51565b602082019050919050565b6000610abc600f83610cc2565b9150610ac782610e7a565b602082019050919050565b610adb81610d26565b82525050565b610af2610aed82610d26565b610d6b565b82525050565b610b0181610d30565b82525050565b6000610b1382886109b4565b601482019150610b2382876109b4565b601482019150610b3382866109b4565b601482019150610b438285610ae1565b602082019150610b538284610ae1565b6020820191508190509695505050505050565b6000610b7182610a23565b9150610b7d82846109e9565b60208201915081905092915050565b6000602082019050610ba160008301846109a5565b92915050565b6000602082019050610bbc60008301846109cb565b92915050565b6000608082019050610bd760008301876109da565b610be46020830186610af8565b610bf160408301856109da565b610bfe60608301846109da565b95945050505050565b60006020820190508181036000830152610c2081610a00565b9050919050565b60006020820190508181036000830152610c4081610a46565b9050919050565b60006020820190508181036000830152610c6081610a69565b9050919050565b60006020820190508181036000830152610c8081610a8c565b9050919050565b60006020820190508181036000830152610ca081610aaf565b9050919050565b6000602082019050610cbc6000830184610ad2565b92915050565b600082825260208201905092915050565b600081905092915050565b6000610ce982610d06565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000610d4882610d59565b9050919050565b6000819050919050565b6000610d6482610d7a565b9050919050565b6000819050919050565b600080fd5b60008160601b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6f6e6c79207369676e2061646d696e0000000000000000000000000000000000600082015250565b610eac81610cde565b8114610eb757600080fd5b50565b610ec381610cf0565b8114610ece57600080fd5b50565b610eda81610cfc565b8114610ee557600080fd5b50565b610ef181610d26565b8114610efc57600080fd5b50565b610f0881610d30565b8114610f1357600080fd5b5056fea26469706673582212209c2893922906a70864791e0c733bd7399df1682ce86ac71397d3a01d490332a964736f6c63430008070033000000000000000000000000466194933a06708f8379e97516875ff5e8a87b60