0x60806040526040518060400160405280600e81526020017f4469676974616c205765616c7468000000000000000000000000000000000000815250600090805190602001906200005192919062000150565b506040518060400160405280600281526020017f4457000000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000150565b506012600260006101000a81548160ff021916908360ff160217905550600260009054906101000a900460ff1660ff16600a620000dd91906200025b565b633b9aca00620000ee919062000398565b6003556509184e72a0006004553480156200010857600080fd5b5033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004a4565b8280546200015e9062000403565b90600052602060002090601f016020900481019282620001825760008555620001ce565b82601f106200019d57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001cd578251825591602001919060010190620001b0565b5b509050620001dd9190620001e1565b5090565b5b80821115620001fc576000816000905550600101620001e2565b5090565b6000808291508390505b600185111562000252578086048111156200022a576200022962000439565b5b60018516156200023a5780820291505b80810290506200024a8562000497565b94506200020a565b94509492505050565b60006200026882620003f9565b91506200027583620003f9565b9250620002a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002ac565b905092915050565b600082620002be576001905062000391565b81620002ce576000905062000391565b8160018114620002e75760028114620002f25762000328565b600191505062000391565b60ff84111562000307576200030662000439565b5b8360020a91508482111562000321576200032062000439565b5b5062000391565b5060208310610133831016604e8410600b8410161715620003625782820a9050838111156200035c576200035b62000439565b5b62000391565b62000371848484600162000200565b925090508184048111156200038b576200038a62000439565b5b81810290505b9392505050565b6000620003a582620003f9565b9150620003b283620003f9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620003ee57620003ed62000439565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200041c57607f821691505b6020821081141562000433576200043262000468565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b6113b980620004b46000396000f3fe6080604052600436106100a75760003560e01c8063313ce56711610064578063313ce567146101c157806370a08231146101ec5780638da5cb5b1461022957806395d89b4114610254578063a035b1fe1461027f578063a9059cbb146102aa576100a7565b806306fdde03146100ac578063095ea7b3146100d757806318160ddd1461011457806323b872dd1461013f5780632d296bf11461017c5780632e1a7d4d14610198575b600080fd5b3480156100b857600080fd5b506100c16102e7565b6040516100ce9190610ee1565b60405180910390f35b3480156100e357600080fd5b506100fe60048036038101906100f99190610cf7565b610375565b60405161010b9190610ec6565b60405180910390f35b34801561012057600080fd5b50610129610455565b6040516101369190610fc3565b60405180910390f35b34801561014b57600080fd5b5061016660048036038101906101619190610ca4565b61045b565b6040516101739190610ec6565b60405180910390f35b61019660048036038101906101919190610d37565b61066b565b005b3480156101a457600080fd5b506101bf60048036038101906101ba9190610d37565b61085d565b005b3480156101cd57600080fd5b506101d6610959565b6040516101e39190610fde565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190610c77565b61096c565b6040516102209190610fc3565b60405180910390f35b34801561023557600080fd5b5061023e610984565b60405161024b9190610eab565b60405180910390f35b34801561026057600080fd5b506102696109aa565b6040516102769190610ee1565b60405180910390f35b34801561028b57600080fd5b50610294610a38565b6040516102a19190610fc3565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190610cf7565b610a3e565b6040516102de9190610ec6565b60405180910390f35b600080546102f490611193565b80601f016020809104026020016040519081016040528092919081815260200182805461032090611193565b801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dd90610f83565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104439190610fc3565b60405180910390a36001905092915050565b60035481565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d690610f03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690610f23565b60405180910390fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461059e91906110c5565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105f49190611015565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106589190610fc3565b60405180910390a3600190509392505050565b60045481610679919061106b565b34146106ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b190610fa3565b60405180910390fd5b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460035461070791906110c5565b811115610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074090610f43565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107989190611015565b9250508190555080600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107ee91906110c5565b925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108529190610fc3565b60405180910390a350565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490610f63565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610955573d6000803e3d6000fd5b5050565b600260009054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600180546109b790611193565b80601f01602080910402602001604051908101604052809291908181526020018280546109e390611193565b8015610a305780601f10610a0557610100808354040283529160200191610a30565b820191906000526020600020905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b60045481565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990610f03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990610f23565b60405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b8191906110c5565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bd79190611015565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3b9190610fc3565b60405180910390a36001905092915050565b600081359050610c5c81611355565b92915050565b600081359050610c718161136c565b92915050565b600060208284031215610c8d57610c8c611223565b5b6000610c9b84828501610c4d565b91505092915050565b600080600060608486031215610cbd57610cbc611223565b5b6000610ccb86828701610c4d565b9350506020610cdc86828701610c4d565b9250506040610ced86828701610c62565b9150509250925092565b60008060408385031215610d0e57610d0d611223565b5b6000610d1c85828601610c4d565b9250506020610d2d85828601610c62565b9150509250929050565b600060208284031215610d4d57610d4c611223565b5b6000610d5b84828501610c62565b91505092915050565b610d6d8161110b565b82525050565b610d7c8161111d565b82525050565b6000610d8d82610ff9565b610d978185611004565b9350610da7818560208601611160565b610db081611228565b840191505092915050565b6000610dc8601483611004565b9150610dd382611239565b602082019050919050565b6000610deb601983611004565b9150610df682611262565b602082019050919050565b6000610e0e601983611004565b9150610e198261128b565b602082019050919050565b6000610e31602483611004565b9150610e3c826112b4565b604082019050919050565b6000610e54601783611004565b9150610e5f82611303565b602082019050919050565b6000610e77601083611004565b9150610e828261132c565b602082019050919050565b610e9681611149565b82525050565b610ea581611153565b82525050565b6000602082019050610ec06000830184610d64565b92915050565b6000602082019050610edb6000830184610d73565b92915050565b60006020820190508181036000830152610efb8184610d82565b905092915050565b60006020820190508181036000830152610f1c81610dbb565b9050919050565b60006020820190508181036000830152610f3c81610dde565b9050919050565b60006020820190508181036000830152610f5c81610e01565b9050919050565b60006020820190508181036000830152610f7c81610e24565b9050919050565b60006020820190508181036000830152610f9c81610e47565b9050919050565b60006020820190508181036000830152610fbc81610e6a565b9050919050565b6000602082019050610fd86000830184610e8d565b92915050565b6000602082019050610ff36000830184610e9c565b92915050565b600081519050919050565b600082825260208201905092915050565b600061102082611149565b915061102b83611149565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110605761105f6111c5565b5b828201905092915050565b600061107682611149565b915061108183611149565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156110ba576110b96111c5565b5b828202905092915050565b60006110d082611149565b91506110db83611149565b9250828210156110ee576110ed6111c5565b5b828203905092915050565b600061110482611129565b9050919050565b600061111682611129565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561117e578082015181840152602081019050611163565b8381111561118d576000848401525b50505050565b600060028204905060018216806111ab57607f821691505b602082108114156111bf576111be6111f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b7f496e73756666696369656e7420746f6b656e20737570706c7900000000000000600082015250565b7f4f6e6c7920636f6e7472616374206f776e65722063616e20776974686472617760008201527f20424e4200000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b7f496e73756666696369656e7420424e4200000000000000000000000000000000600082015250565b61135e816110f9565b811461136957600080fd5b50565b61137581611149565b811461138057600080fd5b5056fea264697066735822122028ac048e5e042961655cae0750b8d4a61243433a33ebad65ed994511b138bd8264736f6c63430008070033