0x60806040526040518060400160405280600581526020017f6c6f6b6572000000000000000000000000000000000000000000000000000000815250600090816200004a919062000392565b506040518060400160405280600381526020017f6c6f6b00000000000000000000000000000000000000000000000000000000008152506001908162000091919062000392565b50621e8480600255600060035560016004556000600660006101000a81548160ff021916908315150217905550348015620000cb57600080fd5b50600254600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000479565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200019a57607f821691505b602082108103620001b057620001af62000152565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200021a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001db565b620002268683620001db565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002736200026d62000267846200023e565b62000248565b6200023e565b9050919050565b6000819050919050565b6200028f8362000252565b620002a76200029e826200027a565b848454620001e8565b825550505050565b600090565b620002be620002af565b620002cb81848462000284565b505050565b5b81811015620002f357620002e7600082620002b4565b600181019050620002d1565b5050565b601f82111562000342576200030c81620001b6565b6200031784620001cb565b8101602085101562000327578190505b6200033f6200033685620001cb565b830182620002d0565b50505b505050565b600082821c905092915050565b6000620003676000198460080262000347565b1980831691505092915050565b600062000382838362000354565b9150826002028217905092915050565b6200039d8262000118565b67ffffffffffffffff811115620003b957620003b862000123565b5b620003c5825462000181565b620003d2828285620002f7565b600060209050601f8311600181146200040a5760008415620003f5578287015190505b62000401858262000374565b86555062000471565b601f1984166200041a86620001b6565b60005b8281101562000444578489015182556001820191506020850194506020810190506200041d565b8683101562000464578489015162000460601f89168262000354565b8355505b6001600288020188555050505b505050505050565b610dda80620004896000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d75fe051161005b5780638d75fe051461011757806395d89b4114610135578063b2b93b7314610153578063d8b66ae11461017157610088565b806306fdde031461008d57806318160ddd146100ab5780631ec7e345146100c957806327e235e3146100e7575b600080fd5b61009561018d565b6040516100a29190610686565b60405180910390f35b6100b361021b565b6040516100c091906106c1565b60405180910390f35b6100d1610221565b6040516100de91906106c1565b60405180910390f35b61010160048036038101906100fc919061074e565b610227565b60405161010e91906106c1565b60405180910390f35b61011f61023f565b60405161012c91906106c1565b60405180910390f35b61013d610245565b60405161014a9190610686565b60405180910390f35b61015b6102d3565b6040516101689190610796565b60405180910390f35b61018b600480360381019061018691906109e8565b6102e6565b005b6000805461019a90610a8f565b80601f01602080910402602001604051908101604052809291908181526020018280546101c690610a8f565b80156102135780601f106101e857610100808354040283529160200191610213565b820191906000526020600020905b8154815290600101906020018083116101f657829003601f168201915b505050505081565b60025481565b60045481565b60056020528060005260406000206000915090505481565b60035481565b6001805461025290610a8f565b80601f016020809104026020016040519081016040528092919081815260200182805461027e90610a8f565b80156102cb5780601f106102a0576101008083540402835291602001916102cb565b820191906000526020600020905b8154815290600101906020018083116102ae57829003601f168201915b505050505081565b600660009054906101000a900460ff1681565b805182511461032a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032190610b0c565b60405180910390fd5b600660009054906101000a900460ff161561037a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037190610b78565b60405180910390fd5b60005b82518110156105f157600083828151811061039b5761039a610b98565b5b6020026020010151905060008383815181106103ba576103b9610b98565b5b602002602001015190506103e8811115610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090610c39565b60405180910390fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561048b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048290610ca5565b60405180910390fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104da9190610cf4565b9250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105309190610d28565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161059491906106c1565b60405180910390a380600360008282546105ae9190610d28565b92505081905550600254600354106105dc576001600660006101000a81548160ff0219169083151502179055505b505080806105e990610d5c565b91505061037d565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610630578082015181840152602081019050610615565b60008484015250505050565b6000601f19601f8301169050919050565b6000610658826105f6565b6106628185610601565b9350610672818560208601610612565b61067b8161063c565b840191505092915050565b600060208201905081810360008301526106a0818461064d565b905092915050565b6000819050919050565b6106bb816106a8565b82525050565b60006020820190506106d660008301846106b2565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061071b826106f0565b9050919050565b61072b81610710565b811461073657600080fd5b50565b60008135905061074881610722565b92915050565b600060208284031215610764576107636106e6565b5b600061077284828501610739565b91505092915050565b60008115159050919050565b6107908161077b565b82525050565b60006020820190506107ab6000830184610787565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107ee8261063c565b810181811067ffffffffffffffff8211171561080d5761080c6107b6565b5b80604052505050565b60006108206106dc565b905061082c82826107e5565b919050565b600067ffffffffffffffff82111561084c5761084b6107b6565b5b602082029050602081019050919050565b600080fd5b600061087561087084610831565b610816565b905080838252602082019050602084028301858111156108985761089761085d565b5b835b818110156108c157806108ad8882610739565b84526020840193505060208101905061089a565b5050509392505050565b600082601f8301126108e0576108df6107b1565b5b81356108f0848260208601610862565b91505092915050565b600067ffffffffffffffff821115610914576109136107b6565b5b602082029050602081019050919050565b61092e816106a8565b811461093957600080fd5b50565b60008135905061094b81610925565b92915050565b600061096461095f846108f9565b610816565b905080838252602082019050602084028301858111156109875761098661085d565b5b835b818110156109b0578061099c888261093c565b845260208401935050602081019050610989565b5050509392505050565b600082601f8301126109cf576109ce6107b1565b5b81356109df848260208601610951565b91505092915050565b600080604083850312156109ff576109fe6106e6565b5b600083013567ffffffffffffffff811115610a1d57610a1c6106eb565b5b610a29858286016108cb565b925050602083013567ffffffffffffffff811115610a4a57610a496106eb565b5b610a56858286016109ba565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610aa757607f821691505b602082108103610aba57610ab9610a60565b5b50919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b6000610af6601683610601565b9150610b0182610ac0565b602082019050919050565b60006020820190508181036000830152610b2581610ae9565b9050919050565b7f4d696e74696e6720697320636c6f736564000000000000000000000000000000600082015250565b6000610b62601183610601565b9150610b6d82610b2c565b602082019050919050565b60006020820190508181036000830152610b9181610b55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4578636565646564206d6178696d756d20746f6b656e206c696d69742070657260008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000610c23602c83610601565b9150610c2e82610bc7565b604082019050919050565b60006020820190508181036000830152610c5281610c16565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000610c8f601483610601565b9150610c9a82610c59565b602082019050919050565b60006020820190508181036000830152610cbe81610c82565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cff826106a8565b9150610d0a836106a8565b9250828203905081811115610d2257610d21610cc5565b5b92915050565b6000610d33826106a8565b9150610d3e836106a8565b9250828201905080821115610d5657610d55610cc5565b5b92915050565b6000610d67826106a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d9957610d98610cc5565b5b60018201905091905056fea264697066735822122046fdd169cb2430f6c3542ac978801a0fdb0d2989daf784968086271bbb4da58a64736f6c63430008130033