0x60806040526040518060400160405280600c81526020017f446f686c61205275736e796100000000000000000000000000000000000000008152506000908051906020019062000051929190620001b4565b506040518060400160405280600281526020017f4452000000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620001b4565b506012600260006101000a81548160ff021916908360ff160217905550600260009054906101000a900460ff1660ff16600a620000dd9190620002ed565b62030d40620000ed91906200042a565b600355348015620000fd57600080fd5b50600354600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620001a6919062000275565b60405180910390a362000536565b828054620001c29062000495565b90600052602060002090601f016020900481019282620001e6576000855562000232565b82601f106200020157805160ff191683800117855562000232565b8280016001018555821562000232579182015b828111156200023157825182559160200191906001019062000214565b5b50905062000241919062000245565b5090565b5b808211156200026057600081600090555060010162000246565b5090565b6200026f816200048b565b82525050565b60006020820190506200028c600083018462000264565b92915050565b6000808291508390505b6001851115620002e457808604811115620002bc57620002bb620004cb565b5b6001851615620002cc5780820291505b8081029050620002dc8562000529565b94506200029c565b94509492505050565b6000620002fa826200048b565b915062000307836200048b565b9250620003367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200033e565b905092915050565b60008262000350576001905062000423565b8162000360576000905062000423565b81600181146200037957600281146200038457620003ba565b600191505062000423565b60ff841115620003995762000398620004cb565b5b8360020a915084821115620003b357620003b2620004cb565b5b5062000423565b5060208310610133831016604e8410600b8410161715620003f45782820a905083811115620003ee57620003ed620004cb565b5b62000423565b62000403848484600162000292565b925090508184048111156200041d576200041c620004cb565b5b81810290505b9392505050565b600062000437826200048b565b915062000444836200048b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000480576200047f620004cb565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620004ae57607f821691505b60208210811415620004c557620004c4620004fa565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b610fc280620005466000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610c97565b60405180910390f35b6100d060048036038101906100cb9190610a02565b61028e565b6040516100dd9190610c7c565b60405180910390f35b6100ee6102a5565b6040516100fb9190610d59565b60405180910390f35b61011e600480360381019061011991906109b3565b6102af565b60405161012b9190610c7c565b60405180910390f35b61013c610359565b6040516101499190610d74565b60405180910390f35b61016c6004803603810190610167919061094e565b61036c565b6040516101799190610d59565b60405180910390f35b61018a6103b5565b6040516101979190610c97565b60405180910390f35b6101ba60048036038101906101b59190610a02565b610443565b6040516101c79190610c7c565b60405180910390f35b6101ea60048036038101906101e59190610977565b61045a565b6040516101f79190610d59565b60405180910390f35b6000805461020d90610ebd565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610ebd565b80156102865780601f1061025b57610100808354040283529160200191610286565b820191906000526020600020905b81548152906001019060200180831161026957829003601f168201915b505050505081565b600061029b3384846104e1565b6001905092915050565b6000600354905090565b60006102bc8484846106ac565b61034e843384600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103499190610e01565b6104e1565b600190509392505050565b600260009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600180546103c290610ebd565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90610ebd565b801561043b5780601f106104105761010080835404028352916020019161043b565b820191906000526020600020905b81548152906001019060200180831161041e57829003601f168201915b505050505081565b60006104503384846106ac565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054890610d39565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890610cd9565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161069f9190610d59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390610d19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390610cb9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590610cf9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085d9190610e01565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108b39190610dab565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109179190610d59565b60405180910390a3505050565b60008135905061093381610f5e565b92915050565b60008135905061094881610f75565b92915050565b60006020828403121561096057600080fd5b600061096e84828501610924565b91505092915050565b6000806040838503121561098a57600080fd5b600061099885828601610924565b92505060206109a985828601610924565b9150509250929050565b6000806000606084860312156109c857600080fd5b60006109d686828701610924565b93505060206109e786828701610924565b92505060406109f886828701610939565b9150509250925092565b60008060408385031215610a1557600080fd5b6000610a2385828601610924565b9250506020610a3485828601610939565b9150509250929050565b610a4781610e47565b82525050565b6000610a5882610d8f565b610a628185610d9a565b9350610a72818560208601610e8a565b610a7b81610f4d565b840191505092915050565b6000610a93602383610d9a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610af9602283610d9a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610b5f601b83610d9a565b91507f45524332303a20696e73756666696369656e742062616c616e636500000000006000830152602082019050919050565b6000610b9f602583610d9a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610c05602483610d9a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610c6781610e73565b82525050565b610c7681610e7d565b82525050565b6000602082019050610c916000830184610a3e565b92915050565b60006020820190508181036000830152610cb18184610a4d565b905092915050565b60006020820190508181036000830152610cd281610a86565b9050919050565b60006020820190508181036000830152610cf281610aec565b9050919050565b60006020820190508181036000830152610d1281610b52565b9050919050565b60006020820190508181036000830152610d3281610b92565b9050919050565b60006020820190508181036000830152610d5281610bf8565b9050919050565b6000602082019050610d6e6000830184610c5e565b92915050565b6000602082019050610d896000830184610c6d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610db682610e73565b9150610dc183610e73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610df657610df5610eef565b5b828201905092915050565b6000610e0c82610e73565b9150610e1783610e73565b925082821015610e2a57610e29610eef565b5b828203905092915050565b6000610e4082610e53565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610ea8578082015181840152602081019050610e8d565b83811115610eb7576000848401525b50505050565b60006002820490506001821680610ed557607f821691505b60208210811415610ee957610ee8610f1e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b610f6781610e35565b8114610f7257600080fd5b50565b610f7e81610e73565b8114610f8957600080fd5b5056fea264697066735822122096ff2031821a51372bc22c26c47a379a8afd11002bcdc95dc8f2c64c373e763064736f6c63430008000033