60806040523480156200001157600080fd5b5060405162000b7f38038062000b7f8339810160408190526200003491620001ef565b8181604051806020016040528060008152508281600160405162000058906200034f565b6040519081900390200360008051602062000b5f833981519152146200007a57fe5b6200008e826001600160e01b036200015816565b80511562000105576000826001600160a01b031682604051620000b291906200033a565b600060405180830381855af49150503d8060008114620000ef576040519150601f19603f3d011682016040523d82523d6000602084013e620000f4565b606091505b50509050806200010357600080fd5b505b5050600160405162000117906200035c565b6040519081900390200360008051602062000b3f833981519152146200013957fe5b6200014d826001600160e01b03620001c316565b5050505050620003ec565b6200016e81620001d660201b6200043f1760201c565b620001b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a79062000369565b60405180910390fd5b60008051602062000b5f83398151915255565b60008051602062000b3f83398151915255565b3b151590565b8051620001e981620003d2565b92915050565b600080604083850312156200020357600080fd5b6000620002118585620001dc565b92505060206200022485828601620001dc565b9150509250929050565b60006200023b826200037b565b6200024781856200037f565b9350620002598185602086016200039f565b9290920192915050565b600062000272601c836200037f565b7f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152601c0192915050565b6000620002ad603b8362000384565b7f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000602082015260400192915050565b60006200030e6013836200037f565b7f656970313936372e70726f78792e61646d696e00000000000000000000000000815260130192915050565b60006200034882846200022e565b9392505050565b6000620001e98262000263565b6000620001e982620002ff565b60208082528101620001e9816200029e565b5190565b919050565b90815260200190565b60006001600160a01b038216620001e9565b60005b83811015620003bc578181015183820152602001620003a2565b83811115620003cc576000848401525b50505050565b620003dd816200038d565b8114620003e957600080fd5b50565b61074380620003fc6000396000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100745780635c60da1b146100875780638f283970146100b2578063f851a440146100d2575b6100526100e7565b005b34801561006057600080fd5b5061005261006f36600461049f565b610101565b6100526100823660046104c5565b61013b565b34801561009357600080fd5b5061009c6101e2565b6040516100a99190610661565b60405180910390f35b3480156100be57600080fd5b506100526100cd36600461049f565b61021f565b3480156100de57600080fd5b5061009c6102b8565b6100ef6102e3565b6100ff6100fa610324565b610349565b565b61010961036d565b6001600160a01b0316336001600160a01b031614156101305761012b81610392565b610138565b6101386100e7565b50565b61014361036d565b6001600160a01b0316336001600160a01b031614156101d55761016583610392565b6000836001600160a01b03168383604051610181929190610654565b600060405180830381855af49150503d80600081146101bc576040519150601f19603f3d011682016040523d82523d6000602084013e6101c1565b606091505b50509050806101cf57600080fd5b506101dd565b6101dd6100e7565b505050565b60006101ec61036d565b6001600160a01b0316336001600160a01b031614156102145761020d610324565b905061021c565b61021c6100e7565b90565b61022761036d565b6001600160a01b0316336001600160a01b03161415610130576001600160a01b03811661026f5760405162461bcd60e51b8152600401610266906106a1565b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61029861036d565b826040516102a792919061066f565b60405180910390a161012b816103d2565b60006102c261036d565b6001600160a01b0316336001600160a01b031614156102145761020d61036d565b6102eb61036d565b6001600160a01b0316336001600160a01b0316141561031c5760405162461bcd60e51b815260040161026690610691565b6100ff6100ff565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610368573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61039b816103f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6103ff8161043f565b61041b5760405162461bcd60e51b8152600401610266906106b1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b8035610450816106ec565b92915050565b60008083601f84011261046857600080fd5b50813567ffffffffffffffff81111561048057600080fd5b60208301915083600182028301111561049857600080fd5b9250929050565b6000602082840312156104b157600080fd5b60006104bd8484610445565b949350505050565b6000806000604084860312156104da57600080fd5b60006104e68686610445565b935050602084013567ffffffffffffffff81111561050357600080fd5b61050f86828701610456565b92509250509250925092565b610524816106cf565b82525050565b600061053683856106c1565b93506105438385846106e0565b50500190565b60006105566032836106c6565b7f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281527137b6903a343290383937bc3c9030b236b4b760711b602082015260400192915050565b60006105aa6036836106c6565b7f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f815275787920746f20746865207a65726f206164647265737360501b602082015260400192915050565b6000610602603b836106c6565b7f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000602082015260400192915050565b60006104bd82848661052a565b60208101610450828461051b565b6040810161067d828561051b565b61068a602083018461051b565b9392505050565b6020808252810161045081610549565b602080825281016104508161059d565b60208082528101610450816105f5565b919050565b90815260200190565b60006001600160a01b038216610450565b82818337506000910152565b6106f5816106cf565b811461013857600080fdfea365627a7a7231582040d8afb478b230bad4e76a54cf8c0dcf7b6fe4b4a5fa565cef1bd6dfed6594ab6c6578706572696d656e74616cf564736f6c634300050c0040b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc000000000000000000000000f4f3d12e9df47cb3ba18ae426409e9925f6c5111000000000000000000000000a0b5eb5464fe4c5f4334a80267e784a961fdd865