0x60806040526040516200100438038062001004833981810160405281019062000029919062000413565b82817f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c38060001b146200006157620000606200048e565b5b62000072826200014b60201b60201c565b600081511115620000f95760008273ffffffffffffffffffffffffffffffffffffffff1682604051620000a691906200050a565b600060405180830381855af49150503d8060008114620000e3576040519150601f19603f3d011682016040523d82523d6000602084013e620000e8565b606091505b5050905080620000f757600080fd5b505b50507f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b8060001b146200013157620001306200048e565b5b6200014282620001d260201b60201c565b505050620005cc565b62000161816200020160201b620004181760201c565b620001a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019a90620005aa565b60405180910390fd5b60007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b90508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b6000813b60008111915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002528262000225565b9050919050565b620002648162000245565b81146200027057600080fd5b50565b600081519050620002848162000259565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002df8262000294565b810181811067ffffffffffffffff82111715620003015762000300620002a5565b5b80604052505050565b60006200031662000211565b9050620003248282620002d4565b919050565b600067ffffffffffffffff821115620003475762000346620002a5565b5b620003528262000294565b9050602081019050919050565b60005b838110156200037f57808201518184015260208101905062000362565b838111156200038f576000848401525b50505050565b6000620003ac620003a68462000329565b6200030a565b905082815260208101848484011115620003cb57620003ca6200028f565b5b620003d88482856200035f565b509392505050565b600082601f830112620003f857620003f76200028a565b5b81516200040a84826020860162000395565b91505092915050565b6000806000606084860312156200042f576200042e6200021b565b5b60006200043f8682870162000273565b9350506020620004528682870162000273565b925050604084015167ffffffffffffffff81111562000476576200047562000220565b5b6200048486828701620003e0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600081519050919050565b600081905092915050565b6000620004e082620004bd565b620004ec8185620004c8565b9350620004fe8185602086016200035f565b80840191505092915050565b6000620005188284620004d3565b915081905092915050565b600082825260208201905092915050565b7f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60008201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000602082015250565b600062000592603b8362000523565b91506200059f8262000534565b604082019050919050565b60006020820190508181036000830152620005c58162000583565b9050919050565b610a2880620005dc6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100675780634f1ef286146100905780635c60da1b146100ac5780638f283970146100d7578063f851a440146101005761005d565b3661005d5761005b61012b565b005b61006561012b565b005b34801561007357600080fd5b5061008e6004803603810190610089919061068e565b610145565b005b6100aa60048036038101906100a59190610720565b610199565b005b3480156100b857600080fd5b506100c1610267565b6040516100ce919061078f565b60405180910390f35b3480156100e357600080fd5b506100fe60048036038101906100f9919061068e565b6102be565b005b34801561010c57600080fd5b506101156103c1565b604051610122919061078f565b60405180910390f35b610133610428565b61014361013e6104a7565b6104d8565b565b61014d6104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361018d576101888161052f565b610196565b61019561012b565b5b50565b6101a16104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610259576101dc8361052f565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516102059291906107e9565b600060405180830381855af49150503d8060008114610240576040519150601f19603f3d011682016040523d82523d6000602084013e610245565b606091505b505090508061025357600080fd5b50610262565b61026161012b565b5b505050565b60006102716104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102b2576102ab6104a7565b90506102bb565b6102ba61012b565b5b90565b6102c66104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036103b557600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035e90610885565b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103906104fe565b8260405161039f9291906108a5565b60405180910390a16103b08161057e565b6103be565b6103bd61012b565b5b50565b60006103cb6104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361040c576104056104fe565b9050610415565b61041461012b565b5b90565b6000813b60008111915050919050565b6104306104fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361049d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049490610940565b60405180910390fd5b6104a56105ad565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050805491505090565b3660008037600080366000845af43d6000803e80600081146104f9573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b9050805491505090565b610538816105af565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b565b6105b881610418565b6105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee906109d2565b60405180910390fd5b60007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b90508181555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061065b82610630565b9050919050565b61066b81610650565b811461067657600080fd5b50565b60008135905061068881610662565b92915050565b6000602082840312156106a4576106a3610626565b5b60006106b284828501610679565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126106e0576106df6106bb565b5b8235905067ffffffffffffffff8111156106fd576106fc6106c0565b5b602083019150836001820283011115610719576107186106c5565b5b9250929050565b60008060006040848603121561073957610738610626565b5b600061074786828701610679565b935050602084013567ffffffffffffffff8111156107685761076761062b565b5b610774868287016106ca565b92509250509250925092565b61078981610650565b82525050565b60006020820190506107a46000830184610780565b92915050565b600081905092915050565b82818337600083830152505050565b60006107d083856107aa565b93506107dd8385846107b5565b82840190509392505050565b60006107f68284866107c4565b91508190509392505050565b600082825260208201905092915050565b7f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f60008201527f787920746f20746865207a65726f206164647265737300000000000000000000602082015250565b600061086f603683610802565b915061087a82610813565b604082019050919050565b6000602082019050818103600083015261089e81610862565b9050919050565b60006040820190506108ba6000830185610780565b6108c76020830184610780565b9392505050565b7f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260008201527f6f6d207468652070726f78792061646d696e0000000000000000000000000000602082015250565b600061092a603283610802565b9150610935826108ce565b604082019050919050565b600060208201905081810360008301526109598161091d565b9050919050565b7f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60008201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000602082015250565b60006109bc603b83610802565b91506109c782610960565b604082019050919050565b600060208201905081810360008301526109eb816109af565b905091905056fea2646970667358221220ab3444f66c0db285be8caa47838dd16af308423795b96a78d1a3a1edfdaa12c364736f6c634300080e00330000000000000000000000003cd4ffde1ba493fdd7a2fc63b860f023731e422100000000000000000000000066acaf662822dbfd66a5240788ec528b743885e6000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000