0x60806040526032600755603260085560196009556019600a556005600b556005600c556104b0600e556000600f60006101000a81548160ff0219169083151502179055506012600a6200005391906200120a565b6101906200006291906200125b565b6010556000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff021916908315150217905550348015620000c357600080fd5b50604051620043dd380380620043dd8339818101604052810190620000e9919062001310565b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200015f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200015691906200137d565b60405180910390fd5b620001708162000fac60201b60201c565b506012600a6200018191906200120a565b62015b386200019191906200125b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073aa22c29d69d6fe5be594eb662a4a98e26942996790506000733adf7a255b337d43988035d94abf6346b69daf11905060007328bef8b6fa57b4f5ec39afb0ac7b8e2efe928d759050600073016118e34eea7c6436fb0281f08e2d5b3a96e79e905060007394794a049ebc70498c16c33cf1a2cd55238983b79050600073d95a0e6b14c5fbee9ac9b159b3b779ac28960c2e9050600073a278a69891233235ec4d58006d99e79ae9853beb9050600073b9f810a491971198d6dbb3bf20989c3bc8c56e7790506001600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f691906200139a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000880573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a691906200139a565b6040518363ffffffff1660e01b8152600401620008c5929190620013cc565b6020604051808303816000875af1158015620008e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200090b91906200139a565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000f7391906200120a565b62015b3862000f8391906200125b565b60405162000f9291906200140a565b60405180910390a350505050505050505050505062001427565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010fe57808604811115620010d657620010d562001070565b5b6001851615620010e65780820291505b8081029050620010f6856200109f565b9450620010b6565b94509492505050565b600082620011195760019050620011ec565b81620011295760009050620011ec565b81600181146200114257600281146200114d5762001183565b6001915050620011ec565b60ff84111562001162576200116162001070565b5b8360020a9150848211156200117c576200117b62001070565b5b50620011ec565b5060208310610133831016604e8410600b8410161715620011bd5782820a905083811115620011b757620011b662001070565b5b620011ec565b620011cc8484846001620010ac565b92509050818404811115620011e657620011e562001070565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200121782620011f3565b91506200122483620011fd565b9250620012537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001107565b905092915050565b60006200126882620011f3565b91506200127583620011f3565b92508282026200128581620011f3565b915082820484148315176200129f576200129e62001070565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012d882620012ab565b9050919050565b620012ea81620012cb565b8114620012f657600080fd5b50565b6000815190506200130a81620012df565b92915050565b6000806000606084860312156200132c576200132b620012a6565b5b60006200133c86828701620012f9565b93505060206200134f86828701620012f9565b92505060406200136286828701620012f9565b9150509250925092565b6200137781620012cb565b82525050565b60006020820190506200139460008301846200136c565b92915050565b600060208284031215620013b357620013b2620012a6565b5b6000620013c384828501620012f9565b91505092915050565b6000604082019050620013e360008301856200136c565b620013f260208301846200136c565b9392505050565b6200140481620011f3565b82525050565b6000602082019050620014216000830184620013f9565b92915050565b612fa680620014376000396000f3fe60806040526004361061016a5760003560e01c806377b54bad116100d1578063bf474bed1161008a578063eecea00011610064578063eecea0001461052e578063f2fde38b14610557578063f429389014610580578063ffb54a991461059757610171565b8063bf474bed146104af578063c9567bf9146104da578063dd62ed3e146104f157610171565b806377b54bad14610398578063847d085c146103d557806389556c6c146103f15780638da5cb5b1461041c57806395d89b4114610447578063a9059cbb1461047257610171565b806351bc3c851161012357806351bc3c85146102ae578063658d4b7f146102c5578063672c97fa146102ee5780636ddd17131461031957806370a0823114610344578063715018a61461038157610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063313ce567146102465780633a13e1af1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105c2565b60405161019891906120ca565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612185565b6105ff565b6040516101d591906121e0565b60405180910390f35b3480156101ea57600080fd5b506101f361061d565b604051610200919061220a565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612225565b610640565b60405161023d91906121e0565b60405180910390f35b34801561025257600080fd5b5061025b610719565b6040516102689190612294565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906122af565b610722565b6040516102a591906121e0565b60405180910390f35b3480156102ba57600080fd5b506102c3610742565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190612308565b61077e565b005b3480156102fa57600080fd5b506103036107e1565b604051610310919061220a565b60405180910390f35b34801561032557600080fd5b5061032e6107e7565b60405161033b91906121e0565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906122af565b6107fa565b604051610378919061220a565b60405180910390f35b34801561038d57600080fd5b50610396610843565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612185565b610857565b6040516103cc91906121e0565b60405180910390f35b6103ef60048036038101906103ea9190612348565b6109be565b005b3480156103fd57600080fd5b50610406610afa565b60405161041391906121e0565b60405180910390f35b34801561042857600080fd5b50610431610b0d565b60405161043e9190612384565b60405180910390f35b34801561045357600080fd5b5061045c610b36565b60405161046991906120ca565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190612185565b610b73565b6040516104a691906121e0565b60405180910390f35b3480156104bb57600080fd5b506104c4610b91565b6040516104d1919061220a565b60405180910390f35b3480156104e657600080fd5b506104ef610b97565b005b3480156104fd57600080fd5b506105186004803603810190610513919061239f565b610c27565b604051610525919061220a565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190612308565b610cae565b005b34801561056357600080fd5b5061057e600480360381019061057991906122af565b610d11565b005b34801561058c57600080fd5b50610595610d97565b005b3480156105a357600080fd5b506105ac610e4b565b6040516105b991906121e0565b60405180910390f35b60606040518060400160405280600981526020017f4d617573546f6b656e0000000000000000000000000000000000000000000000815250905090565b600061061361060c610e5e565b8484610e66565b6001905092915050565b60006012600a61062d9190612541565b62015b3861063b919061258c565b905090565b600061064d84848461102f565b61070e84610659610e5e565b61070985604051806060016040528060288152602001612f4960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106bf610e5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161a9092919063ffffffff16565b610e66565b600190509392505050565b60006012905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600061074d306107fa565b90506000811115610762576107618161166f565b5b6000479050600081111561077a57610779816118bb565b5b5050565b6107866119ce565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b601260169054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084b6119ce565b6108556000611a55565b565b60008082036108dd578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108999190612384565b602060405180830381865afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da91906125e3565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161090e929190612610565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610973929190612698565b6020604051808303816000875af1158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b691906126d6565b905092915050565b6109c66119ce565b60008111610a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0090612775565b60405180910390fd5b60003411610a1657600080fd5b610a42601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826105ff565b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610a8f610b0d565b426040518863ffffffff1660e01b8152600401610ab1969594939291906127d0565b60606040518083038185885af1158015610acf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610af49190612831565b50505050565b600f60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d41555300000000000000000000000000000000000000000000000000000000815250905090565b6000610b87610b80610e5e565b848461102f565b6001905092915050565b60105481565b610b9f6119ce565b601260149054906101000a900460ff1615610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be6906128d0565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cb66119ce565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d196119ce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8b5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610d829190612384565b60405180910390fd5b610d9481611a55565b50565b60004711610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612962565b60405180910390fd5b6000479050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e47573d6000803e3d6000fd5b5050565b601260149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc906129f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90612a86565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611022919061220a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612b18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490612baa565b60405180910390fd5b60008111611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612c3c565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156111f75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1580156112a85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156112a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b155b156112fd57601260149054906101000a900460ff166112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f390612ca8565b60405180910390fd5b5b611305610b0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113735750611343610b0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561143f576000611383306107fa565b9050601260159054906101000a900460ff161580156113ef5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156114075750601260169054906101000a900460ff165b801561141557506010548110155b1561143d576114238161166f565b6000479050600081111561143b5761143a816118bb565b5b505b505b600061144c848484611b19565b90506114d7816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061156c81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160c919061220a565b60405180910390a350505050565b6000838311158290611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165991906120ca565b60405180910390fd5b5082840390509392505050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116a7576116a6612cc8565b5b6040519080825280602002602001820160405280156116d55781602001602082028036833780820191505090505b50905030816000815181106116ed576116ec612cf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b89190612d3b565b816001815181106117cc576117cb612cf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161186a959493929190612e26565b600060405180830381600087803b15801561188457600080fd5b505af1158015611898573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60006064600754836118cd919061258c565b6118d79190612eaf565b905060006064600854846118eb919061258c565b6118f59190612eaf565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561195f573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119c8573d6000803e3d6000fd5b50505050565b6119d6610e5e565b73ffffffffffffffffffffffffffffffffffffffff166119f4610b0d565b73ffffffffffffffffffffffffffffffffffffffff1614611a5357611a17610e5e565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611a4a9190612384565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611bcb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c215750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c74576000600f60009054906101000a900460ff16611c4457600954611c48565b600b545b9050611c706064611c628387611ff890919063ffffffff16565b61200e90919063ffffffff16565b9150505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d1b5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6e576000600f60009054906101000a900460ff16611d3e57600a54611d42565b600c545b9050611d6a6064611d5c8387611ff890919063ffffffff16565b61200e90919063ffffffff16565b9150505b600f60009054906101000a900460ff16158015611d8d5750600d544210155b8015611da55750601260149054906101000a900460ff165b15611dec576000600d5414611dd0576001600f60006101000a81548160ff0219169083151502179055505b611de5600e5442611fe290919063ffffffff16565b600d819055505b6000811115611fd657611e7e816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161a9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb3919061220a565b60405180910390a3611fce818461202490919063ffffffff16565b915050611fdb565b829150505b9392505050565b60008183611ff09190612ee0565b905092915050565b60008183612006919061258c565b905092915050565b6000818361201c9190612eaf565b905092915050565b600081836120329190612f14565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612074578082015181840152602081019050612059565b60008484015250505050565b6000601f19601f8301169050919050565b600061209c8261203a565b6120a68185612045565b93506120b6818560208601612056565b6120bf81612080565b840191505092915050565b600060208201905081810360008301526120e48184612091565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061211c826120f1565b9050919050565b61212c81612111565b811461213757600080fd5b50565b60008135905061214981612123565b92915050565b6000819050919050565b6121628161214f565b811461216d57600080fd5b50565b60008135905061217f81612159565b92915050565b6000806040838503121561219c5761219b6120ec565b5b60006121aa8582860161213a565b92505060206121bb85828601612170565b9150509250929050565b60008115159050919050565b6121da816121c5565b82525050565b60006020820190506121f560008301846121d1565b92915050565b6122048161214f565b82525050565b600060208201905061221f60008301846121fb565b92915050565b60008060006060848603121561223e5761223d6120ec565b5b600061224c8682870161213a565b935050602061225d8682870161213a565b925050604061226e86828701612170565b9150509250925092565b600060ff82169050919050565b61228e81612278565b82525050565b60006020820190506122a96000830184612285565b92915050565b6000602082840312156122c5576122c46120ec565b5b60006122d38482850161213a565b91505092915050565b6122e5816121c5565b81146122f057600080fd5b50565b600081359050612302816122dc565b92915050565b6000806040838503121561231f5761231e6120ec565b5b600061232d8582860161213a565b925050602061233e858286016122f3565b9150509250929050565b60006020828403121561235e5761235d6120ec565b5b600061236c84828501612170565b91505092915050565b61237e81612111565b82525050565b60006020820190506123996000830184612375565b92915050565b600080604083850312156123b6576123b56120ec565b5b60006123c48582860161213a565b92505060206123d58582860161213a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561246557808604811115612441576124406123df565b5b60018516156124505780820291505b808102905061245e8561240e565b9450612425565b94509492505050565b60008261247e576001905061253a565b8161248c576000905061253a565b81600181146124a257600281146124ac576124db565b600191505061253a565b60ff8411156124be576124bd6123df565b5b8360020a9150848211156124d5576124d46123df565b5b5061253a565b5060208310610133831016604e8410600b84101617156125105782820a90508381111561250b5761250a6123df565b5b61253a565b61251d848484600161241b565b92509050818404811115612534576125336123df565b5b81810290505b9392505050565b600061254c8261214f565b915061255783612278565b92506125847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461246e565b905092915050565b60006125978261214f565b91506125a28361214f565b92508282026125b08161214f565b915082820484148315176125c7576125c66123df565b5b5092915050565b6000815190506125dd81612159565b92915050565b6000602082840312156125f9576125f86120ec565b5b6000612607848285016125ce565b91505092915050565b60006040820190506126256000830185612375565b61263260208301846121fb565b9392505050565b6000819050919050565b600061265e612659612654846120f1565b612639565b6120f1565b9050919050565b600061267082612643565b9050919050565b600061268282612665565b9050919050565b61269281612677565b82525050565b60006040820190506126ad6000830185612689565b6126ba60208301846121fb565b9392505050565b6000815190506126d0816122dc565b92915050565b6000602082840312156126ec576126eb6120ec565b5b60006126fa848285016126c1565b91505092915050565b7f746f6b656e732062616c616e6365206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b600061275f602883612045565b915061276a82612703565b604082019050919050565b6000602082019050818103600083015261278e81612752565b9050919050565b6000819050919050565b60006127ba6127b56127b084612795565b612639565b61214f565b9050919050565b6127ca8161279f565b82525050565b600060c0820190506127e56000830189612375565b6127f260208301886121fb565b6127ff60408301876127c1565b61280c60608301866127c1565b6128196080830185612375565b61282660a08301846121fb565b979650505050505050565b60008060006060848603121561284a576128496120ec565b5b6000612858868287016125ce565b9350506020612869868287016125ce565b925050604061287a868287016125ce565b9150509250925092565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128ba601783612045565b91506128c582612884565b602082019050919050565b600060208201905081810360008301526128e9816128ad565b9050919050565b7f436f6e74726163742062616c616e6365206d757374206265206772656174657260008201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b600061294c602a83612045565b9150612957826128f0565b604082019050919050565b6000602082019050818103600083015261297b8161293f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129de602483612045565b91506129e982612982565b604082019050919050565b60006020820190508181036000830152612a0d816129d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a70602283612045565b9150612a7b82612a14565b604082019050919050565b60006020820190508181036000830152612a9f81612a63565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b02602583612045565b9150612b0d82612aa6565b604082019050919050565b60006020820190508181036000830152612b3181612af5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b94602383612045565b9150612b9f82612b38565b604082019050919050565b60006020820190508181036000830152612bc381612b87565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c26602983612045565b9150612c3182612bca565b604082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612c92601483612045565b9150612c9d82612c5c565b602082019050919050565b60006020820190508181036000830152612cc181612c85565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612d3581612123565b92915050565b600060208284031215612d5157612d506120ec565b5b6000612d5f84828501612d26565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d9d81612111565b82525050565b6000612daf8383612d94565b60208301905092915050565b6000602082019050919050565b6000612dd382612d68565b612ddd8185612d73565b9350612de883612d84565b8060005b83811015612e19578151612e008882612da3565b9750612e0b83612dbb565b925050600181019050612dec565b5085935050505092915050565b600060a082019050612e3b60008301886121fb565b612e4860208301876127c1565b8181036040830152612e5a8186612dc8565b9050612e696060830185612375565b612e7660808301846121fb565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eba8261214f565b9150612ec58361214f565b925082612ed557612ed4612e80565b5b828204905092915050565b6000612eeb8261214f565b9150612ef68361214f565b9250828201905080821115612f0e57612f0d6123df565b5b92915050565b6000612f1f8261214f565b9150612f2a8361214f565b9250828203905081811115612f4257612f416123df565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220220e5f5aacf96604ed30fc3d873f2b8023366b3c1b2e8700ce99d9ddba8dbb8164736f6c63430008140033000000000000000000000000e2f4f4addf9709ae699c67010fec07df01de63900000000000000000000000003128c4869d6c7fa295d49535156093a355b3f13d00000000000000000000000005e03996255b5dc839ecd3660ebde39a79c1a47e