0x60806040526040518060400160405280600a81526020017f7768697465746f6b656e00000000000000000000000000000000000000000000815250600090816200004a91906200041c565b506012600160006101000a81548160ff021916908360ff1602179055506040518060400160405280600a81526020017f7768697465746f6b656e0000000000000000000000000000000000000000000081525060029081620000ad91906200041c565b50600160009054906101000a900460ff16600a620000cc919062000693565b612710620000db9190620006e4565b600355348015620000eb57600080fd5b50600354600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000194919062000740565b60405180910390a36200075d565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200022457607f821691505b6020821081036200023a5762000239620001dc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000265565b620002b0868362000265565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002fd620002f7620002f184620002c8565b620002d2565b620002c8565b9050919050565b6000819050919050565b6200031983620002dc565b62000331620003288262000304565b84845462000272565b825550505050565b600090565b6200034862000339565b620003558184846200030e565b505050565b5b818110156200037d57620003716000826200033e565b6001810190506200035b565b5050565b601f821115620003cc57620003968162000240565b620003a18462000255565b81016020851015620003b1578190505b620003c9620003c08562000255565b8301826200035a565b50505b505050565b600082821c905092915050565b6000620003f160001984600802620003d1565b1980831691505092915050565b60006200040c8383620003de565b9150826002028217905092915050565b6200042782620001a2565b67ffffffffffffffff811115620004435762000442620001ad565b5b6200044f82546200020b565b6200045c82828562000381565b600060209050601f8311600181146200049457600084156200047f578287015190505b6200048b8582620003fe565b865550620004fb565b601f198416620004a48662000240565b60005b82811015620004ce57848901518255600182019150602085019450602081019050620004a7565b86831015620004ee5784890151620004ea601f891682620003de565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005915780860481111562000569576200056862000503565b5b6001851615620005795780820291505b8081029050620005898562000532565b945062000549565b94509492505050565b600082620005ac57600190506200067f565b81620005bc57600090506200067f565b8160018114620005d55760028114620005e05762000616565b60019150506200067f565b60ff841115620005f557620005f462000503565b5b8360020a9150848211156200060f576200060e62000503565b5b506200067f565b5060208310610133831016604e8410600b8410161715620006505782820a9050838111156200064a576200064962000503565b5b6200067f565b6200065f84848460016200053f565b9250905081840481111562000679576200067862000503565b5b81810290505b9392505050565b600060ff82169050919050565b6000620006a082620002c8565b9150620006ad8362000686565b9250620006dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200059a565b905092915050565b6000620006f182620002c8565b9150620006fe83620002c8565b92508282026200070e81620002c8565b9150828204841483151762000728576200072762000503565b5b5092915050565b6200073a81620002c8565b82525050565b60006020820190506200075760008301846200072f565b92915050565b610ecd806200076d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806342966c681161005b57806342966c681461010357806370a082311461011f57806395d89b411461014f578063a9059cbb1461016d57610088565b806306fdde031461008d57806318160ddd146100ab578063313ce567146100c957806340c10f19146100e7575b600080fd5b61009561019d565b6040516100a291906108da565b60405180910390f35b6100b361022b565b6040516100c09190610915565b60405180910390f35b6100d1610231565b6040516100de919061094c565b60405180910390f35b61010160048036038101906100fc91906109f6565b610244565b005b61011d60048036038101906101189190610a36565b61038c565b005b61013960048036038101906101349190610a63565b6104e6565b6040516101469190610915565b60405180910390f35b61015761052f565b60405161016491906108da565b60405180910390f35b610187600480360381019061018291906109f6565b6105bd565b6040516101949190610aab565b60405180910390f35b600080546101aa90610af5565b80601f01602080910402602001604051908101604052809291908181526020018280546101d690610af5565b80156102235780601f106101f857610100808354040283529160200191610223565b820191906000526020600020905b81548152906001019060200180831161020657829003601f168201915b505050505081565b60035481565b600160009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102aa90610b98565b60405180910390fd5b80600360008282546102c59190610be7565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461031b9190610be7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103809190610915565b60405180910390a35050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561040e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040590610c8d565b60405180910390fd5b80600360008282546104209190610cad565b9250508190555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104769190610cad565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104db9190610915565b60405180910390a350565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6002805461053c90610af5565b80601f016020809104026020016040519081016040528092919081815260200182805461056890610af5565b80156105b55780601f1061058a576101008083540402835291602001916105b5565b820191906000526020600020905b81548152906001019060200180831161059857829003601f168201915b505050505081565b60006105ca3384846105d4565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a90610d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990610de5565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90610e77565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107839190610cad565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107d99190610be7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161083d9190610915565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610884578082015181840152602081019050610869565b60008484015250505050565b6000601f19601f8301169050919050565b60006108ac8261084a565b6108b68185610855565b93506108c6818560208601610866565b6108cf81610890565b840191505092915050565b600060208201905081810360008301526108f481846108a1565b905092915050565b6000819050919050565b61090f816108fc565b82525050565b600060208201905061092a6000830184610906565b92915050565b600060ff82169050919050565b61094681610930565b82525050565b6000602082019050610961600083018461093d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109978261096c565b9050919050565b6109a78161098c565b81146109b257600080fd5b50565b6000813590506109c48161099e565b92915050565b6109d3816108fc565b81146109de57600080fd5b50565b6000813590506109f0816109ca565b92915050565b60008060408385031215610a0d57610a0c610967565b5b6000610a1b858286016109b5565b9250506020610a2c858286016109e1565b9150509250929050565b600060208284031215610a4c57610a4b610967565b5b6000610a5a848285016109e1565b91505092915050565b600060208284031215610a7957610a78610967565b5b6000610a87848285016109b5565b91505092915050565b60008115159050919050565b610aa581610a90565b82525050565b6000602082019050610ac06000830184610a9c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610b0d57607f821691505b602082108103610b2057610b1f610ac6565b5b50919050565b7f7768697465746f6b656e3a206d696e7420746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610b82602483610855565b9150610b8d82610b26565b604082019050919050565b60006020820190508181036000830152610bb181610b75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bf2826108fc565b9150610bfd836108fc565b9250828201905080821115610c1557610c14610bb8565b5b92915050565b7f7768697465746f6b656e3a206275726e20616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b6000610c77602783610855565b9150610c8282610c1b565b604082019050919050565b60006020820190508181036000830152610ca681610c6a565b9050919050565b6000610cb8826108fc565b9150610cc3836108fc565b9250828203905081811115610cdb57610cda610bb8565b5b92915050565b7f7768697465746f6b656e3a207472616e736665722066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000610d3d602a83610855565b9150610d4882610ce1565b604082019050919050565b60006020820190508181036000830152610d6c81610d30565b9050919050565b7f7768697465746f6b656e3a207472616e7366657220746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000610dcf602883610855565b9150610dda82610d73565b604082019050919050565b60006020820190508181036000830152610dfe81610dc2565b9050919050565b7f7768697465746f6b656e3a207472616e7366657220616d6f756e74206578636560008201527f6564732062616c616e6365000000000000000000000000000000000000000000602082015250565b6000610e61602b83610855565b9150610e6c82610e05565b604082019050919050565b60006020820190508181036000830152610e9081610e54565b905091905056fea2646970667358221220793add2515376a86f7df4530f554e203f08ec87de752ff1d47be2b598bff418464736f6c63430008120033