0x60806040526040518060400160405280600781526020017f6f707070626e62000000000000000000000000000000000000000000000000008152505f908162000049919062000469565b506040518060400160405280600381526020017f62737400000000000000000000000000000000000000000000000000000000008152506001908162000090919062000469565b50601260025f6101000a81548160ff021916908360ff160217905550348015620000b8575f80fd5b50604051620013ad380380620013ad8339818101604052810190620000de919062000580565b3360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900460ff1660ff16600a6200013e91906200072d565b816200014b91906200077d565b60038190555060035460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620001f69190620007d8565b60405180910390a350620007f3565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200028157607f821691505b6020821081036200029757620002966200023c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002be565b620003078683620002be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003516200034b62000345846200031f565b62000328565b6200031f565b9050919050565b5f819050919050565b6200036c8362000331565b620003846200037b8262000358565b848454620002ca565b825550505050565b5f90565b6200039a6200038c565b620003a781848462000361565b505050565b5b81811015620003ce57620003c25f8262000390565b600181019050620003ad565b5050565b601f8211156200041d57620003e7816200029d565b620003f284620002af565b8101602085101562000402578190505b6200041a6200041185620002af565b830182620003ac565b50505b505050565b5f82821c905092915050565b5f6200043f5f198460080262000422565b1980831691505092915050565b5f6200045983836200042e565b9150826002028217905092915050565b620004748262000205565b67ffffffffffffffff81111562000490576200048f6200020f565b5b6200049c825462000269565b620004a9828285620003d2565b5f60209050601f831160018114620004df575f8415620004ca578287015190505b620004d685826200044c565b86555062000545565b601f198416620004ef866200029d565b5f5b828110156200051857848901518255600182019150602085019450602081019050620004f1565b8683101562000538578489015162000534601f8916826200042e565b8355505b6001600288020188555050505b505050505050565b5f80fd5b6200055c816200031f565b811462000567575f80fd5b50565b5f815190506200057a8162000551565b92915050565b5f602082840312156200059857620005976200054d565b5b5f620005a7848285016200056a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200063a57808604811115620006125762000611620005b0565b5b6001851615620006225780820291505b80810290506200063285620005dd565b9450620005f2565b94509492505050565b5f8262000654576001905062000726565b8162000663575f905062000726565b81600181146200067c57600281146200068757620006bd565b600191505062000726565b60ff8411156200069c576200069b620005b0565b5b8360020a915084821115620006b657620006b5620005b0565b5b5062000726565b5060208310610133831016604e8410600b8410161715620006f75782820a905083811115620006f157620006f0620005b0565b5b62000726565b620007068484846001620005e9565b9250905081840481111562000720576200071f620005b0565b5b81810290505b9392505050565b5f62000739826200031f565b915062000746836200031f565b9250620007757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000643565b905092915050565b5f62000789826200031f565b915062000796836200031f565b9250828202620007a6816200031f565b91508282048414831517620007c057620007bf620005b0565b5b5092915050565b620007d2816200031f565b82525050565b5f602082019050620007ed5f830184620007c7565b92915050565b610bac80620008015f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c80638da5cb5b116100595780638da5cb5b1461011457806395d89b4114610132578063a0712d6814610150578063a9059cbb1461018057610086565b806306fdde031461008a57806318160ddd146100a8578063313ce567146100c657806370a08231146100e4575b5f80fd5b6100926101b0565b60405161009f9190610752565b60405180910390f35b6100b061023b565b6040516100bd919061078a565b60405180910390f35b6100ce610241565b6040516100db91906107be565b60405180910390f35b6100fe60048036038101906100f99190610835565b610253565b60405161010b919061078a565b60405180910390f35b61011c610268565b604051610129919061086f565b60405180910390f35b61013a61028d565b6040516101479190610752565b60405180910390f35b61016a600480360381019061016591906108b2565b610319565b60405161017791906108f7565b60405180910390f35b61019a60048036038101906101959190610910565b6104c4565b6040516101a791906108f7565b60405180910390f35b5f80546101bc9061097b565b80601f01602080910402602001604051908101604052809291908181526020018280546101e89061097b565b80156102335780601f1061020a57610100808354040283529160200191610233565b820191905f5260205f20905b81548152906001019060200180831161021657829003601f168201915b505050505081565b60035481565b60025f9054906101000a900460ff1681565b6005602052805f5260405f205f915090505481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001805461029a9061097b565b80601f01602080910402602001604051908101604052809291908181526020018280546102c69061097b565b80156103115780601f106102e857610100808354040283529160200191610311565b820191905f5260205f20905b8154815290600101906020018083116102f457829003601f168201915b505050505081565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a0906109f5565b60405180910390fd5b8160035f8282546103ba9190610a40565b925050819055508160055f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461042e9190610a40565b9250508190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104b3919061078a565b60405180910390a360019050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a90610abd565b60405180910390fd5b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156105b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105aa90610b25565b60405180910390fd5b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ff9190610b43565b925050819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106529190610a40565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b6919061078a565b60405180910390a36001905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106ff5780820151818401526020810190506106e4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610724826106c8565b61072e81856106d2565b935061073e8185602086016106e2565b6107478161070a565b840191505092915050565b5f6020820190508181035f83015261076a818461071a565b905092915050565b5f819050919050565b61078481610772565b82525050565b5f60208201905061079d5f83018461077b565b92915050565b5f60ff82169050919050565b6107b8816107a3565b82525050565b5f6020820190506107d15f8301846107af565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610804826107db565b9050919050565b610814816107fa565b811461081e575f80fd5b50565b5f8135905061082f8161080b565b92915050565b5f6020828403121561084a576108496107d7565b5b5f61085784828501610821565b91505092915050565b610869816107fa565b82525050565b5f6020820190506108825f830184610860565b92915050565b61089181610772565b811461089b575f80fd5b50565b5f813590506108ac81610888565b92915050565b5f602082840312156108c7576108c66107d7565b5b5f6108d48482850161089e565b91505092915050565b5f8115159050919050565b6108f1816108dd565b82525050565b5f60208201905061090a5f8301846108e8565b92915050565b5f8060408385031215610926576109256107d7565b5b5f61093385828601610821565b92505060206109448582860161089e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061099257607f821691505b6020821081036109a5576109a461094e565b5b50919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6109df6017836106d2565b91506109ea826109ab565b602082019050919050565b5f6020820190508181035f830152610a0c816109d3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4a82610772565b9150610a5583610772565b9250828201905080821115610a6d57610a6c610a13565b5b92915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610aa7600f836106d2565b9150610ab282610a73565b602082019050919050565b5f6020820190508181035f830152610ad481610a9b565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610b0f6014836106d2565b9150610b1a82610adb565b602082019050919050565b5f6020820190508181035f830152610b3c81610b03565b9050919050565b5f610b4d82610772565b9150610b5883610772565b9250828203905081811115610b7057610b6f610a13565b5b9291505056fea2646970667358221220a229584f290e4df2e4bfb54943b5d9e9f1d3255702f162ccd2591e53da4a32f964736f6c634300081400330000000000000000000000000000000000000000000000000000000084746b8e