0x60806040526040518060400160405280600581526020017f4b6170616e0000000000000000000000000000000000000000000000000000008152505f908162000049919062000400565b50601260015f6101000a81548160ff021916908360ff1602179055506040518060400160405280600581526020017f4b6170616e00000000000000000000000000000000000000000000000000000081525060029081620000ab919062000400565b5060015f9054906101000a900460ff16600a620000c991906200066d565b620186a0620000d99190620006bd565b600355348015620000e8575f80fd5b5060035460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200018e919062000718565b60405180910390a362000733565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200021857607f821691505b6020821081036200022e576200022d620001d3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000255565b6200029e868362000255565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002e8620002e2620002dc84620002b6565b620002bf565b620002b6565b9050919050565b5f819050919050565b6200030383620002c8565b6200031b6200031282620002ef565b84845462000261565b825550505050565b5f90565b6200033162000323565b6200033e818484620002f8565b505050565b5b818110156200036557620003595f8262000327565b60018101905062000344565b5050565b601f821115620003b4576200037e8162000234565b620003898462000246565b8101602085101562000399578190505b620003b1620003a88562000246565b83018262000343565b50505b505050565b5f82821c905092915050565b5f620003d65f1984600802620003b9565b1980831691505092915050565b5f620003f08383620003c5565b9150826002028217905092915050565b6200040b826200019c565b67ffffffffffffffff811115620004275762000426620001a6565b5b62000433825462000200565b6200044082828562000369565b5f60209050601f83116001811462000476575f841562000461578287015190505b6200046d8582620003e3565b865550620004dc565b601f198416620004868662000234565b5f5b82811015620004af5784890151825560018201915060208501945060208101905062000488565b86831015620004cf5784890151620004cb601f891682620003c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200056e57808604811115620005465762000545620004e4565b5b6001851615620005565780820291505b8081029050620005668562000511565b945062000526565b94509492505050565b5f826200058857600190506200065a565b8162000597575f90506200065a565b8160018114620005b05760028114620005bb57620005f1565b60019150506200065a565b60ff841115620005d057620005cf620004e4565b5b8360020a915084821115620005ea57620005e9620004e4565b5b506200065a565b5060208310610133831016604e8410600b84101617156200062b5782820a905083811115620006255762000624620004e4565b5b6200065a565b6200063a84848460016200051d565b92509050818404811115620006545762000653620004e4565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200067982620002b6565b9150620006868362000661565b9250620006b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000577565b905092915050565b5f620006c982620002b6565b9150620006d683620002b6565b9250828202620006e681620002b6565b915082820484148315176200070057620006ff620004e4565b5b5092915050565b6200071281620002b6565b82525050565b5f6020820190506200072d5f83018462000707565b92915050565b610e4a80620007415f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c806342966c681161005957806342966c681461010057806370a082311461011c57806395d89b411461014c578063a9059cbb1461016a57610086565b806306fdde031461008a57806318160ddd146100a8578063313ce567146100c657806340c10f19146100e4575b5f80fd5b61009261019a565b60405161009f91906108b0565b60405180910390f35b6100b0610225565b6040516100bd91906108e8565b60405180910390f35b6100ce61022b565b6040516100db919061091c565b60405180910390f35b6100fe60048036038101906100f991906109bd565b61023d565b005b61011a600480360381019061011591906109fb565b61037f565b005b61013660048036038101906101319190610a26565b6104d2565b60405161014391906108e8565b60405180910390f35b610154610518565b60405161016191906108b0565b60405180910390f35b610184600480360381019061017f91906109bd565b6105a4565b6040516101919190610a6b565b60405180910390f35b5f80546101a690610ab1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d290610ab1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b505050505081565b60035481565b60015f9054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a290610b2b565b60405180910390fd5b8060035f8282546102bc9190610b76565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461030f9190610b76565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161037391906108e8565b60405180910390a35050565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548111156103ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f690610c19565b60405180910390fd5b8060035f8282546104109190610c37565b925050819055508060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104639190610c37565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104c791906108e8565b60405180910390a350565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6002805461052590610ab1565b80601f016020809104026020016040519081016040528092919081815260200182805461055190610ab1565b801561059c5780601f106105735761010080835404028352916020019161059c565b820191905f5260205f20905b81548152906001019060200180831161057f57829003601f168201915b505050505081565b5f6105b03384846105ba565b6001905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90610cda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d90610d68565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90610df6565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107629190610c37565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107b59190610b76565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161081991906108e8565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561085d578082015181840152602081019050610842565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61088282610826565b61088c8185610830565b935061089c818560208601610840565b6108a581610868565b840191505092915050565b5f6020820190508181035f8301526108c88184610878565b905092915050565b5f819050919050565b6108e2816108d0565b82525050565b5f6020820190506108fb5f8301846108d9565b92915050565b5f60ff82169050919050565b61091681610901565b82525050565b5f60208201905061092f5f83018461090d565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61096282610939565b9050919050565b61097281610958565b811461097c575f80fd5b50565b5f8135905061098d81610969565b92915050565b61099c816108d0565b81146109a6575f80fd5b50565b5f813590506109b781610993565b92915050565b5f80604083850312156109d3576109d2610935565b5b5f6109e08582860161097f565b92505060206109f1858286016109a9565b9150509250929050565b5f60208284031215610a1057610a0f610935565b5b5f610a1d848285016109a9565b91505092915050565b5f60208284031215610a3b57610a3a610935565b5b5f610a488482850161097f565b91505092915050565b5f8115159050919050565b610a6581610a51565b82525050565b5f602082019050610a7e5f830184610a5c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610ac857607f821691505b602082108103610adb57610ada610a84565b5b50919050565b7f4b6170616e3a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610b15601f83610830565b9150610b2082610ae1565b602082019050919050565b5f6020820190508181035f830152610b4281610b09565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b80826108d0565b9150610b8b836108d0565b9250828201905080821115610ba357610ba2610b49565b5b92915050565b7f4b6170616e3a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f610c03602283610830565b9150610c0e82610ba9565b604082019050919050565b5f6020820190508181035f830152610c3081610bf7565b9050919050565b5f610c41826108d0565b9150610c4c836108d0565b9250828203905081811115610c6457610c63610b49565b5b92915050565b7f4b6170616e3a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610cc4602583610830565b9150610ccf82610c6a565b604082019050919050565b5f6020820190508181035f830152610cf181610cb8565b9050919050565b7f4b6170616e3a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610d52602383610830565b9150610d5d82610cf8565b604082019050919050565b5f6020820190508181035f830152610d7f81610d46565b9050919050565b7f4b6170616e3a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610de0602683610830565b9150610deb82610d86565b604082019050919050565b5f6020820190508181035f830152610e0d81610dd4565b905091905056fea2646970667358221220ec38b97e9c2b3c2213b19c419ec480a16528e61b4ea1385eed851d07a67d50d964736f6c63430008140033