0x60806040526b033b2e3c9fd0803ce80000006002556040518060400160405280600c81526020017f48414d535445525320322e30000000000000000000000000000000000000000081525060039080519060200190620000619291906200014f565b506040518060400160405280600481526020017f48414d530000000000000000000000000000000000000000000000000000000081525060049080519060200190620000af9291906200014f565b506012600555348015620000c257600080fd5b506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000264565b8280546200015d90620001ff565b90600052602060002090601f016020900481019282620001815760008555620001cd565b82601f106200019c57805160ff1916838001178555620001cd565b82800160010185558215620001cd579182015b82811115620001cc578251825591602001919060010190620001af565b5b509050620001dc9190620001e0565b5090565b5b80821115620001fb576000816000905550600101620001e1565b5090565b600060028204905060018216806200021857607f821691505b602082108114156200022f576200022e62000235565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61128880620002746000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063313ce5671161008c5780638da5cb5b116100665780638da5cb5b1461023c57806395d89b411461025a578063a9059cbb14610278578063dd62ed3e146102a8576100cf565b8063313ce567146101be57806370a08231146101dc5780638142b1391461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd146101225780631ee59f201461014057806323b872dd1461015e57806327e235e31461018e575b600080fd5b6100dc6102d8565b6040516100e99190610fa5565b60405180910390f35b61010c60048036038101906101079190610dcd565b610366565b6040516101199190610f8a565b60405180910390f35b61012a610458565b6040516101379190611047565b60405180910390f35b61014861045e565b6040516101559190610f6f565b60405180910390f35b61017860048036038101906101739190610d7e565b610484565b6040516101859190610f8a565b60405180910390f35b6101a860048036038101906101a39190610d19565b61080c565b6040516101b59190611047565b60405180910390f35b6101c6610824565b6040516101d39190611047565b60405180910390f35b6101f660048036038101906101f19190610d19565b61082a565b6040516102039190611047565b60405180910390f35b61022660048036038101906102219190610d19565b610872565b6040516102339190610f8a565b60405180910390f35b61024461094e565b6040516102519190610f6f565b60405180910390f35b610262610974565b60405161026f9190610fa5565b60405180910390f35b610292600480360381019061028d9190610dcd565b610a02565b60405161029f9190610f8a565b60405180910390f35b6102c260048036038101906102bd9190610d42565b610cca565b6040516102cf9190611047565b60405180910390f35b600380546102e590611183565b80601f016020809104026020016040519081016040528092919081815260200182805461031190611183565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104469190611047565b60405180910390a36001905092915050565b60025481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000816104908561082a565b10156104d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c890610fe7565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058790611027565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f257600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415806106b25750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e890610fc7565b60405180910390fd5b5b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610740919061107e565b92505081905550816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461079591906110d4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107f99190611047565b60405180910390a3600190509392505050565b60006020528060005260406000206000915090505481565b60055481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611007565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004805461098190611183565b80601f01602080910402602001604051908101604052809291908181526020018280546109ad90611183565b80156109fa5780601f106109cf576101008083540402835291602001916109fa565b820191906000526020600020905b8154815290600101906020018083116109dd57829003601f168201915b505050505081565b600081610a0e3361082a565b1015610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690610fe7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580610b715750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790610fc7565b60405180910390fd5b5b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bff919061107e565b92505081905550816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c5491906110d4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cb89190611047565b60405180910390a36001905092915050565b6001602052816000526040600020602052806000526040600020600091509150505481565b600081359050610cfe81611224565b92915050565b600081359050610d138161123b565b92915050565b600060208284031215610d2b57600080fd5b6000610d3984828501610cef565b91505092915050565b60008060408385031215610d5557600080fd5b6000610d6385828601610cef565b9250506020610d7485828601610cef565b9150509250929050565b600080600060608486031215610d9357600080fd5b6000610da186828701610cef565b9350506020610db286828701610cef565b9250506040610dc386828701610d04565b9150509250925092565b60008060408385031215610de057600080fd5b6000610dee85828601610cef565b9250506020610dff85828601610d04565b9150509250929050565b610e1281611108565b82525050565b610e218161111a565b82525050565b6000610e3282611062565b610e3c818561106d565b9350610e4c818560208601611150565b610e5581611213565b840191505092915050565b6000610e6d600b8361106d565b91507f706c6561736520776169740000000000000000000000000000000000000000006000830152602082019050919050565b6000610ead600f8361106d565b91507f62616c616e636520746f6f206c6f7700000000000000000000000000000000006000830152602082019050919050565b6000610eed60158361106d565b91507f596f7520617265206e6f7420746865206f776e657200000000000000000000006000830152602082019050919050565b6000610f2d60118361106d565b91507f616c6c6f77616e636520746f6f206c6f770000000000000000000000000000006000830152602082019050919050565b610f6981611146565b82525050565b6000602082019050610f846000830184610e09565b92915050565b6000602082019050610f9f6000830184610e18565b92915050565b60006020820190508181036000830152610fbf8184610e27565b905092915050565b60006020820190508181036000830152610fe081610e60565b9050919050565b6000602082019050818103600083015261100081610ea0565b9050919050565b6000602082019050818103600083015261102081610ee0565b9050919050565b6000602082019050818103600083015261104081610f20565b9050919050565b600060208201905061105c6000830184610f60565b92915050565b600081519050919050565b600082825260208201905092915050565b600061108982611146565b915061109483611146565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110c9576110c86111b5565b5b828201905092915050565b60006110df82611146565b91506110ea83611146565b9250828210156110fd576110fc6111b5565b5b828203905092915050565b600061111382611126565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561116e578082015181840152602081019050611153565b8381111561117d576000848401525b50505050565b6000600282049050600182168061119b57607f821691505b602082108114156111af576111ae6111e4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61122d81611108565b811461123857600080fd5b50565b61124481611146565b811461124f57600080fd5b5056fea264697066735822122085713287490845199320cdc52205f68d7c8a8fd39762375b2a9f54ed97da921c64736f6c63430008000033