0x60806040523480156200001157600080fd5b50604051620017833803806200178383398181016040528101906200003791906200043d565b620000576200004b620002cc60201b60201c565b620002d460201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620000c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c09062000526565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200013b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001329062000598565b60405180910390fd5b4283101562000181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001789062000630565b60405180910390fd5b60008211620001c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001be90620006c8565b60405180910390fd5b600081116200020d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002049062000760565b60405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260038190555081600481905550670de0b6b3a764000081620002b39190620007b1565b60058190555060006006819055505050505050620007fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003ca826200039d565b9050919050565b620003dc81620003bd565b8114620003e857600080fd5b50565b600081519050620003fc81620003d1565b92915050565b6000819050919050565b620004178162000402565b81146200042357600080fd5b50565b60008151905062000437816200040c565b92915050565b600080600080600060a086880312156200045c576200045b62000398565b5b60006200046c88828901620003eb565b95505060206200047f88828901620003eb565b9450506040620004928882890162000426565b9350506060620004a58882890162000426565b9250506080620004b88882890162000426565b9150509295509295909350565b600082825260208201905092915050565b7f496e76616c696420746f6b656e20636f6e747261637420616464726573732e00600082015250565b60006200050e601f83620004c5565b91506200051b82620004d6565b602082019050919050565b600060208201905081810360008301526200054181620004ff565b9050919050565b7f496e76616c69642062656e656669636961727920616464726573732e00000000600082015250565b600062000580601c83620004c5565b91506200058d8262000548565b602082019050919050565b60006020820190508181036000830152620005b38162000571565b9050919050565b7f537461727420646174652073686f756c6420626520696e20746865206675747560008201527f72652e0000000000000000000000000000000000000000000000000000000000602082015250565b600062000618602383620004c5565b91506200062582620005ba565b604082019050919050565b600060208201905081810360008301526200064b8162000609565b9050919050565b7f506572696f6420636f756e74206d75737420626520677265617465722074686160008201527f6e20302e00000000000000000000000000000000000000000000000000000000602082015250565b6000620006b0602483620004c5565b9150620006bd8262000652565b604082019050919050565b60006020820190508181036000830152620006e381620006a1565b9050919050565b7f556e6c6f636b656420616d6f756e742070657220706572696f64206d7573742060008201527f62652067726561746572207468616e20302e0000000000000000000000000000602082015250565b600062000748603283620004c5565b91506200075582620006ea565b604082019050919050565b600060208201905081810360008301526200077b8162000739565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007be8262000402565b9150620007cb8362000402565b9250828202620007db8162000402565b91508282048414831517620007f557620007f462000782565b5b5092915050565b610f77806200080c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637f197519116100715780637f1975191461014357806382edaf94146101615780638da5cb5b1461017f578063dce4c9fa1461019d578063f2fde38b146101bb578063f68e5218146101d7576100b4565b80630b97bc86146100b95780631c31f710146100d757806324ea3626146100f357806338af3eed146101115780634e71d92d1461012f578063715018a614610139575b600080fd5b6100c16101f5565b6040516100ce919061092f565b60405180910390f35b6100f160048036038101906100ec91906109ad565b6101fb565b005b6100fb6102b6565b604051610108919061092f565b60405180910390f35b6101196102c5565b60405161012691906109e9565b60405180910390f35b6101376102eb565b005b610141610641565b005b61014b610655565b604051610158919061092f565b60405180910390f35b61016961065b565b60405161017691906109e9565b60405180910390f35b610187610681565b60405161019491906109e9565b60405180910390f35b6101a56106aa565b6040516101b2919061092f565b60405180910390f35b6101d560048036038101906101d091906109ad565b6106b0565b005b6101df610733565b6040516101ec919061092f565b60405180910390f35b60035481565b610203610739565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026990610a61565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006102c06107b7565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037290610af3565b60405180910390fd5b60006103856107b7565b9050600081116103ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c190610b5f565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161042c91906109e9565b602060405180830381865afa158015610449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046d9190610bab565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016104cc929190610bd8565b6020604051808303816000875af11580156104eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050f9190610c39565b61054e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054590610cb2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058991906109e9565b602060405180830381865afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610bab565b905083826105d89190610d01565b8114610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610d81565b60405180910390fd5b62278d006003544261062b9190610d01565b6106359190610dd0565b60068190555050505050565b610649610739565b610653600061084a565b565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6106b8610739565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90610e73565b60405180910390fd5b6107308161084a565b50565b60065481565b61074161090e565b73ffffffffffffffffffffffffffffffffffffffff1661075f610681565b73ffffffffffffffffffffffffffffffffffffffff16146107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac90610edf565b60405180910390fd5b565b600060035442116107cb5760009050610847565b600062278d00600354426107df9190610d01565b6107e99190610dd0565b90506000600554826107fb9190610eff565b905060055460045461080d9190610eff565b811115610827576005546004546108249190610eff565b90505b6005546006546108379190610eff565b816108429190610d01565b925050505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b61092981610916565b82525050565b60006020820190506109446000830184610920565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061097a8261094f565b9050919050565b61098a8161096f565b811461099557600080fd5b50565b6000813590506109a781610981565b92915050565b6000602082840312156109c3576109c261094a565b5b60006109d184828501610998565b91505092915050565b6109e38161096f565b82525050565b60006020820190506109fe60008301846109da565b92915050565b600082825260208201905092915050565b7f496e76616c69642062656e656669636961727920616464726573732e00000000600082015250565b6000610a4b601c83610a04565b9150610a5682610a15565b602082019050919050565b60006020820190508181036000830152610a7a81610a3e565b9050919050565b7f4f6e6c79207468652062656e65666963696172792063616e2063616c6c20746860008201527f69732066756e6374696f6e2e0000000000000000000000000000000000000000602082015250565b6000610add602c83610a04565b9150610ae882610a81565b604082019050919050565b60006020820190508181036000830152610b0c81610ad0565b9050919050565b7f4e6f20746f6b656e7320617661696c61626c6520666f7220636c61696d2e0000600082015250565b6000610b49601e83610a04565b9150610b5482610b13565b602082019050919050565b60006020820190508181036000830152610b7881610b3c565b9050919050565b610b8881610916565b8114610b9357600080fd5b50565b600081519050610ba581610b7f565b92915050565b600060208284031215610bc157610bc061094a565b5b6000610bcf84828501610b96565b91505092915050565b6000604082019050610bed60008301856109da565b610bfa6020830184610920565b9392505050565b60008115159050919050565b610c1681610c01565b8114610c2157600080fd5b50565b600081519050610c3381610c0d565b92915050565b600060208284031215610c4f57610c4e61094a565b5b6000610c5d84828501610c24565b91505092915050565b7f546f6b656e207472616e73666572206661696c65642e00000000000000000000600082015250565b6000610c9c601683610a04565b9150610ca782610c66565b602082019050919050565b60006020820190508181036000830152610ccb81610c8f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d0c82610916565b9150610d1783610916565b9250828203905081811115610d2f57610d2e610cd2565b5b92915050565b7f546f6b656e207472616e7366657220616d6f756e74206d69736d617463682e00600082015250565b6000610d6b601f83610a04565b9150610d7682610d35565b602082019050919050565b60006020820190508181036000830152610d9a81610d5e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610ddb82610916565b9150610de683610916565b925082610df657610df5610da1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610e5d602683610a04565b9150610e6882610e01565b604082019050919050565b60006020820190508181036000830152610e8c81610e50565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610ec9602083610a04565b9150610ed482610e93565b602082019050919050565b60006020820190508181036000830152610ef881610ebc565b9050919050565b6000610f0a82610916565b9150610f1583610916565b9250828202610f2381610916565b91508282048414831517610f3a57610f39610cd2565b5b509291505056fea26469706673582212209ee79abc250e46b66248ed7790b74ba666ef59d949b6b5c59a3f11d5394a4b0d64736f6c63430008120033000000000000000000000000ba1cbed391b341217424272eda5458d32b8bc2460000000000000000000000007797ca13b9535d09d8dc5297345212c03d137b280000000000000000000000000000000000000000000000000000000064cfc4b700000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000006dac2c0