0x60806040523480156200001157600080fd5b50604051620013f6380380620013f68339818101604052810190620000379190620002d1565b620000476200007260201b60201c565b62000058816200007a60201b60201c565b5080600190816200006a91906200056d565b505062000654565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001a7826200015c565b810181811067ffffffffffffffff82111715620001c957620001c86200016d565b5b80604052505050565b6000620001de6200013e565b9050620001ec82826200019c565b919050565b600067ffffffffffffffff8211156200020f576200020e6200016d565b5b6200021a826200015c565b9050602081019050919050565b60005b83811015620002475780820151818401526020810190506200022a565b60008484015250505050565b60006200026a6200026484620001f1565b620001d2565b90508281526020810184848401111562000289576200028862000157565b5b6200029684828562000227565b509392505050565b600082601f830112620002b657620002b562000152565b5b8151620002c884826020860162000253565b91505092915050565b600060208284031215620002ea57620002e962000148565b5b600082015167ffffffffffffffff8111156200030b576200030a6200014d565b5b62000319848285016200029e565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200037557607f821691505b6020821081036200038b576200038a6200032d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003b6565b620004018683620003b6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200044e62000448620004428462000419565b62000423565b62000419565b9050919050565b6000819050919050565b6200046a836200042d565b62000482620004798262000455565b848454620003c3565b825550505050565b600090565b620004996200048a565b620004a68184846200045f565b505050565b5b81811015620004ce57620004c26000826200048f565b600181019050620004ac565b5050565b601f8211156200051d57620004e78162000391565b620004f284620003a6565b8101602085101562000502578190505b6200051a6200051185620003a6565b830182620004ab565b50505b505050565b600082821c905092915050565b6000620005426000198460080262000522565b1980831691505092915050565b60006200055d83836200052f565b9150826002028217905092915050565b620005788262000322565b67ffffffffffffffff8111156200059457620005936200016d565b5b620005a082546200035c565b620005ad828285620004d2565b600060209050601f831160018114620005e55760008415620005d0578287015190505b620005dc85826200054f565b8655506200064c565b601f198416620005f58662000391565b60005b828110156200061f57848901518255600182019150602085019450602081019050620005f8565b868310156200063f57848901516200063b601f8916826200052f565b8355505b6001600288020188555050505b505050505050565b610d9280620006646000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461016f5780637284e416146101795780638da5cb5b14610197578063b0a3e500146101b5578063f2fde38b146101d15761009e565b806301d5e135146100a357806301ffc9a7146100d357806306fdde031461010357806313d9863f146101215780634f2bbb6314610151575b600080fd5b6100bd60048036038101906100b89190610797565b6101ed565b6040516100ca91906107d3565b60405180910390f35b6100ed60048036038101906100e89190610846565b610248565b6040516100fa919061088e565b60405180910390f35b61010b61031a565b6040516101189190610939565b60405180910390f35b61013b60048036038101906101369190610797565b610353565b6040516101489190610939565b60405180910390f35b610159610446565b60405161016691906107d3565b60405180910390f35b61017761044f565b005b610181610463565b60405161018e9190610939565b60405180910390f35b61019f61047f565b6040516101ac919061099c565b60405180910390f35b6101cf60048036038101906101ca9190610a19565b6104a8565b005b6101eb60048036038101906101e69190610a6c565b610581565b005b600080826bffffffffffffffffffffffff161461023f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023690610ae5565b60405180910390fd5b60019050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061031357507fed843969000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6040518060400160405280600a81526020017f4561726c7920626972640000000000000000000000000000000000000000000081525081565b606060016bffffffffffffffffffffffff16826bffffffffffffffffffffffff16146103b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ab90610b51565b60405180910390fd5b600180546103c190610ba0565b80601f01602080910402602001604051908101604052809291908181526020018280546103ed90610ba0565b801561043a5780601f1061040f5761010080835404028352916020019161043a565b820191906000526020600020905b81548152906001019060200180831161041d57829003601f168201915b50505050509050919050565b60006001905090565b610457610604565b6104616000610682565b565b604051806060016040528060218152602001610d3c6021913981565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104b061047f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461051d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051490610c1d565b60405180910390fd5b60016bffffffffffffffffffffffff16816bffffffffffffffffffffffff161461057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390610b51565b60405180910390fd5b505050565b610589610604565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90610caf565b60405180910390fd5b61060181610682565b50565b61060c610746565b73ffffffffffffffffffffffffffffffffffffffff1661062a61047f565b73ffffffffffffffffffffffffffffffffffffffff1614610680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067790610d1b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b60006bffffffffffffffffffffffff82169050919050565b61077481610753565b811461077f57600080fd5b50565b6000813590506107918161076b565b92915050565b6000602082840312156107ad576107ac61074e565b5b60006107bb84828501610782565b91505092915050565b6107cd81610753565b82525050565b60006020820190506107e860008301846107c4565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610823816107ee565b811461082e57600080fd5b50565b6000813590506108408161081a565b92915050565b60006020828403121561085c5761085b61074e565b5b600061086a84828501610831565b91505092915050565b60008115159050919050565b61088881610873565b82525050565b60006020820190506108a3600083018461087f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156108e35780820151818401526020810190506108c8565b60008484015250505050565b6000601f19601f8301169050919050565b600061090b826108a9565b61091581856108b4565b93506109258185602086016108c5565b61092e816108ef565b840191505092915050565b600060208201905081810360008301526109538184610900565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109868261095b565b9050919050565b6109968161097b565b82525050565b60006020820190506109b1600083018461098d565b92915050565b6109c08161097b565b81146109cb57600080fd5b50565b6000813590506109dd816109b7565b92915050565b6000819050919050565b6109f6816109e3565b8114610a0157600080fd5b50565b600081359050610a13816109ed565b92915050565b600080600060608486031215610a3257610a3161074e565b5b6000610a40868287016109ce565b9350506020610a5186828701610a04565b9250506040610a6286828701610782565b9150509250925092565b600060208284031215610a8257610a8161074e565b5b6000610a90848285016109ce565b91505092915050565b7f4561726c79426972643a206f7574206f6620626f756e64730000000000000000600082015250565b6000610acf6018836108b4565b9150610ada82610a99565b602082019050919050565b60006020820190508181036000830152610afe81610ac2565b9050919050565b7f4561726c79426972643a20746f6b656e20646f6573206e6f7420657869737400600082015250565b6000610b3b601f836108b4565b9150610b4682610b05565b602082019050919050565b60006020820190508181036000830152610b6a81610b2e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610bb857607f821691505b602082108103610bcb57610bca610b71565b5b50919050565b7f4561726c79426972643a207065726d697373696f6e2064656e69656400000000600082015250565b6000610c07601c836108b4565b9150610c1282610bd1565b602082019050919050565b60006020820190508181036000830152610c3681610bfa565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610c996026836108b4565b9150610ca482610c3d565b604082019050919050565b60006020820190508181036000830152610cc881610c8c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610d056020836108b4565b9150610d1082610ccf565b602082019050919050565b60006020820190508181036000830152610d3481610cf8565b905091905056fe49737375656420666f72206561726c79205742204e6574776f726b207573657273a26469706673582212205b361de738f6f1a746ff46016286c4d3a398ef37e5523051ed4cda100975b12164736f6c634300081300330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003168747470733a2f2f63646e2e77686974656269742e636f6d2f7762742f7362742f6561726c79426972642f312e6a736f6e000000000000000000000000000000