0x608060405234801561001057600080fd5b506040516111353803806111358339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050611055806100e06000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063258ee38b14610067578063596fa9e3146100e95780638a064c3e14610133578063ae68676c1461017d578063c3dd56b9146101ff578063e6a4390514610285575b600080fd5b6100d36004803603606081101561007d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610329565b6040518082815260200191505060405180910390f35b6100f1610431565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013b610457565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e96004803603606081101561019357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061047c565b6040518082815260200191505060405180910390f35b6102616004803603604081101561021557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610708565b60405180848152602001838152602001828152602001935050505060405180910390f35b6102e76004803603604081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061094b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806103586000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585610984565b90506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156103a357600080fd5b505afa1580156103b7573d6000803e3d6000fd5b505050506040513d60608110156103cd57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150610422878383610adf565b93508393505050509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104ab6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585610984565b9050600081905060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104fa57600080fd5b505afa15801561050e573d6000803e3d6000fd5b505050506040513d602081101561052457600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d60208110156105a957600080fd5b8101908080519060200190929190505050905060008060008573ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561060757600080fd5b505afa15801561061b573d6000803e3d6000fd5b505050506040513d606081101561063157600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050509250925092506000808673ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614156106be57846dffffffffffffffffffffffffffff169150836dffffffffffffffffffffffffffff1690506106e5565b836dffffffffffffffffffffffffffff169150846dffffffffffffffffffffffffffff1690505b60006106f28e8484610c0f565b9050809a50505050505050505050509392505050565b60008060008061073a6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168787610984565b90508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561078257600080fd5b505afa158015610796573d6000803e3d6000fd5b505050506040513d60208110156107ac57600080fd5b810190808051906020019092919050505091506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561080857600080fd5b505afa15801561081c573d6000803e3d6000fd5b505050506040513d606081101561083257600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d60208110156108ec57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610936578082610939565b81815b80965081975050505050509250925092565b60006109796000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484610984565b905080905092915050565b60008060006109938585610cf3565b91509150858282604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c925050509392505050565b6000808411610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610ff5602b913960400191505060405180910390fd5b600083118015610b495750600082115b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610fa86028913960400191505060405180910390fd5b6000610bb56103e586610e6a90919063ffffffff16565b90506000610bcc8483610e6a90919063ffffffff16565b90506000610bf783610be96103e889610e6a90919063ffffffff16565b610eff90919063ffffffff16565b9050808281610c0257fe5b0493505050509392505050565b6000808411610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610fd06025913960400191505060405180910390fd5b600083118015610c795750600082115b610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610fa86028913960400191505060405180910390fd5b82610ce28386610e6a90919063ffffffff16565b81610ce957fe5b0490509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610f836025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610db5578284610db8565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a205a45524f5f41444452455353000081525060200191505060405180910390fd5b9250929050565b600080821480610e875750828283850292508281610e8457fe5b04145b610ef9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284019150811015610f7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a2646970667358221220a833ba3a4dbf3e85e177a223a139ae74bb74fc550806f67ccc23ea4beab44d0764736f6c63430006060033000000000000000000000000f62c03e08ada871a0beb309762e260a7a6a880e6000000000000000000000000ee567fe1712faf6149d80da1e6934e354124cfe3