0x60806040526040518060400160405280600e81526020017f54657374496e5768697465626974000000000000000000000000000000000000815250600090816200004a919062000374565b506040518060400160405280600481526020017f54455742000000000000000000000000000000000000000000000000000000008152506001908162000091919062000374565b5069d3c21bcecceda1000000600255348015620000ad57600080fd5b50600254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200045b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200017c57607f821691505b60208210810362000192576200019162000134565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001bd565b620002088683620001bd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002556200024f620002498462000220565b6200022a565b62000220565b9050919050565b6000819050919050565b620002718362000234565b6200028962000280826200025c565b848454620001ca565b825550505050565b600090565b620002a062000291565b620002ad81848462000266565b505050565b5b81811015620002d557620002c960008262000296565b600181019050620002b3565b5050565b601f8211156200032457620002ee8162000198565b620002f984620001ad565b8101602085101562000309578190505b620003216200031885620001ad565b830182620002b2565b50505b505050565b600082821c905092915050565b6000620003496000198460080262000329565b1980831691505092915050565b600062000364838362000336565b9150826002028217905092915050565b6200037f82620000fa565b67ffffffffffffffff8111156200039b576200039a62000105565b5b620003a7825462000163565b620003b4828285620002d9565b600060209050601f831160018114620003ec5760008415620003d7578287015190505b620003e3858262000356565b86555062000453565b601f198416620003fc8662000198565b60005b828110156200042657848901518255600182019150602085019450602081019050620003ff565b8683101562000446578489015162000442601f89168262000336565b8355505b6001600288020188555050505b505050505050565b610d69806200046b6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a082311461012957806395d89b4114610159578063a9059cbb14610177578063dd62ed3e146101a757610088565b806306fdde031461008d578063095ea7b3146100ab57806318160ddd146100db57806323b872dd146100f9575b600080fd5b6100956101d7565b6040516100a29190610949565b60405180910390f35b6100c560048036038101906100c09190610a04565b610265565b6040516100d29190610a5f565b60405180910390f35b6100e3610357565b6040516100f09190610a89565b60405180910390f35b610113600480360381019061010e9190610aa4565b61035d565b6040516101209190610a5f565b60405180910390f35b610143600480360381019061013e9190610af7565b61064f565b6040516101509190610a89565b60405180910390f35b610161610667565b60405161016e9190610949565b60405180910390f35b610191600480360381019061018c9190610a04565b6106f5565b60405161019e9190610a5f565b60405180910390f35b6101c160048036038101906101bc9190610b24565b610894565b6040516101ce9190610a89565b60405180910390f35b600080546101e490610b93565b80601f016020809104026020016040519081016040528092919081815260200182805461021090610b93565b801561025d5780601f106102325761010080835404028352916020019161025d565b820191906000526020600020905b81548152906001019060200180831161024057829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103459190610a89565b60405180910390a36001905092915050565b60025481565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156103e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d890610c10565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049790610c7c565b60405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104ef9190610ccb565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105459190610cff565b9250508190555081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105d89190610ccb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063c9190610a89565b60405180910390a3600190509392505050565b60036020528060005260406000206000915090505481565b6001805461067490610b93565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090610b93565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077090610c10565b60405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107c89190610ccb565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461081e9190610cff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108829190610a89565b60405180910390a36001905092915050565b6004602052816000526040600020602052806000526040600020600091509150505481565b600081519050919050565b600082825260208201905092915050565b60005b838110156108f35780820151818401526020810190506108d8565b60008484015250505050565b6000601f19601f8301169050919050565b600061091b826108b9565b61092581856108c4565b93506109358185602086016108d5565b61093e816108ff565b840191505092915050565b600060208201905081810360008301526109638184610910565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061099b82610970565b9050919050565b6109ab81610990565b81146109b657600080fd5b50565b6000813590506109c8816109a2565b92915050565b6000819050919050565b6109e1816109ce565b81146109ec57600080fd5b50565b6000813590506109fe816109d8565b92915050565b60008060408385031215610a1b57610a1a61096b565b5b6000610a29858286016109b9565b9250506020610a3a858286016109ef565b9150509250929050565b60008115159050919050565b610a5981610a44565b82525050565b6000602082019050610a746000830184610a50565b92915050565b610a83816109ce565b82525050565b6000602082019050610a9e6000830184610a7a565b92915050565b600080600060608486031215610abd57610abc61096b565b5b6000610acb868287016109b9565b9350506020610adc868287016109b9565b9250506040610aed868287016109ef565b9150509250925092565b600060208284031215610b0d57610b0c61096b565b5b6000610b1b848285016109b9565b91505092915050565b60008060408385031215610b3b57610b3a61096b565b5b6000610b49858286016109b9565b9250506020610b5a858286016109b9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610bab57607f821691505b602082108103610bbe57610bbd610b64565b5b50919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000610bfa6014836108c4565b9150610c0582610bc4565b602082019050919050565b60006020820190508181036000830152610c2981610bed565b9050919050565b7f4e6f7420616c6c6f77656420746f207472616e73666572000000000000000000600082015250565b6000610c666017836108c4565b9150610c7182610c30565b602082019050919050565b60006020820190508181036000830152610c9581610c59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cd6826109ce565b9150610ce1836109ce565b9250828203905081811115610cf957610cf8610c9c565b5b92915050565b6000610d0a826109ce565b9150610d15836109ce565b9250828201905080821115610d2d57610d2c610c9c565b5b9291505056fea26469706673582212200ff6297860b124ed7381381a331c95a79e18897d9687b8aad7799ff9a5247a4664736f6c63430008120033