0x60806040523480156200001157600080fd5b5066f8b0a10e4700006000819055506040518060400160405280601881526020017f4d61737341646f7074696f6e436c756220436c6173736963000000000000000081525060019081620000669190620003d7565b506008600260006101000a81548160ff021916908360ff1602179055506040518060400160405280600381526020017f4d434c000000000000000000000000000000000000000000000000000000000081525060039081620000c99190620003d7565b506040518060400160405280600381526020017f312e30000000000000000000000000000000000000000000000000000000000081525060049081620001109190620003d7565b50600054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004be565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001df57607f821691505b602082108103620001f557620001f462000197565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200025f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000220565b6200026b868362000220565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002b8620002b2620002ac8462000283565b6200028d565b62000283565b9050919050565b6000819050919050565b620002d48362000297565b620002ec620002e382620002bf565b8484546200022d565b825550505050565b600090565b62000303620002f4565b62000310818484620002c9565b505050565b5b8181101562000338576200032c600082620002f9565b60018101905062000316565b5050565b601f82111562000387576200035181620001fb565b6200035c8462000210565b810160208510156200036c578190505b620003846200037b8562000210565b83018262000315565b50505b505050565b600082821c905092915050565b6000620003ac600019846008026200038c565b1980831691505092915050565b6000620003c7838362000399565b9150826002028217905092915050565b620003e2826200015d565b67ffffffffffffffff811115620003fe57620003fd62000168565b5b6200040a8254620001c6565b620004178282856200033c565b600060209050601f8311600181146200044f57600084156200043a578287015190505b620004468582620003b9565b865550620004b6565b601f1984166200045f86620001fb565b60005b82811015620004895784890151825560018201915060208501945060208101905062000462565b86831015620004a95784890151620004a5601f89168262000399565b8355505b6001600288020188555050505b505050505050565b610f5480620004ce6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806354fd4d501161006657806354fd4d501461013557806370a082311461015357806395d89b4114610183578063a9059cbb146101a1578063dd62ed3e146101bd5761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100dd57806323b872dd146100fb578063313ce56714610117575b600080fd5b6100ab6101ed565b6040516100b89190610bdc565b60405180910390f35b6100db60048036038101906100d69190610c97565b61027b565b005b6100e5610365565b6040516100f29190610ce6565b60405180910390f35b61011560048036038101906101109190610d01565b61036b565b005b61011f6106ee565b60405161012c9190610d70565b60405180910390f35b61013d610701565b60405161014a9190610bdc565b60405180910390f35b61016d60048036038101906101689190610d8b565b61078f565b60405161017a9190610ce6565b60405180910390f35b61018b6107d8565b6040516101989190610bdc565b60405180910390f35b6101bb60048036038101906101b69190610c97565b610866565b005b6101d760048036038101906101d29190610db8565b610a74565b6040516101e49190610ce6565b60405180910390f35b600180546101fa90610e27565b80601f016020809104026020016040519081016040528092919081815260200182805461022690610e27565b80156102735780601f1061024857610100808354040283529160200191610273565b820191906000526020600020905b81548152906001019060200180831161025657829003601f168201915b505050505081565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516103599190610ce6565b60405180910390a35050565b60005481565b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610436575080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156104425750600081115b61044b57600080fd5b61049d81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610afb90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061053281600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060481600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106e19190610ce6565b60405180910390a3505050565b600260009054906101000a900460ff1681565b6004805461070e90610e27565b80601f016020809104026020016040519081016040528092919081815260200182805461073a90610e27565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b505050505081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600380546107e590610e27565b80601f016020809104026020016040519081016040528092919081815260200182805461081190610e27565b801561085e5780601f106108335761010080835404028352916020019161085e565b820191906000526020600020905b81548152906001019060200180831161084157829003601f168201915b505050505081565b60406004816108759190610e87565b60003690501461088857610887610ebb565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156108d75750600082115b6108e057600080fd5b61093282600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2390919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109c782600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610afb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a679190610ce6565b60405180910390a3505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808284610b0a9190610e87565b905083811015610b1957600080fd5b8091505092915050565b600082821115610b3257600080fd5b60008284610b409190610eea565b90508091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b86578082015181840152602081019050610b6b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bae82610b4c565b610bb88185610b57565b9350610bc8818560208601610b68565b610bd181610b92565b840191505092915050565b60006020820190508181036000830152610bf68184610ba3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c2e82610c03565b9050919050565b610c3e81610c23565b8114610c4957600080fd5b50565b600081359050610c5b81610c35565b92915050565b6000819050919050565b610c7481610c61565b8114610c7f57600080fd5b50565b600081359050610c9181610c6b565b92915050565b60008060408385031215610cae57610cad610bfe565b5b6000610cbc85828601610c4c565b9250506020610ccd85828601610c82565b9150509250929050565b610ce081610c61565b82525050565b6000602082019050610cfb6000830184610cd7565b92915050565b600080600060608486031215610d1a57610d19610bfe565b5b6000610d2886828701610c4c565b9350506020610d3986828701610c4c565b9250506040610d4a86828701610c82565b9150509250925092565b600060ff82169050919050565b610d6a81610d54565b82525050565b6000602082019050610d856000830184610d61565b92915050565b600060208284031215610da157610da0610bfe565b5b6000610daf84828501610c4c565b91505092915050565b60008060408385031215610dcf57610dce610bfe565b5b6000610ddd85828601610c4c565b9250506020610dee85828601610c4c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e3f57607f821691505b602082108103610e5257610e51610df8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e9282610c61565b9150610e9d83610c61565b9250828201905080821115610eb557610eb4610e58565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000610ef582610c61565b9150610f0083610c61565b9250828203905081811115610f1857610f17610e58565b5b9291505056fea2646970667358221220e4176098034f46da4077be90fa1d564aff3b7dd48132008769ad42d9bc39e24964736f6c63430008120033