60806040525f6006555f60095f6101000a81548160ff0219169083151502179055505f600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006e575f80fd5b506040516200396a3803806200396a8339818101604052810190620000949190620008be565b5f620000a56200057f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060018081905550826007908162000159919062000b83565b5081600890816200016b919062000b83565b50620001a96012600a62000180919062000df0565b826200018d919062000e40565b6200019d6200057f60201b60201c565b6200058660201b60201c565b5f8060014603620001e857737a250d5630b4cf539739df2c5dacb4c659f2488d9150733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad905062000233565b603846036200020e577310ed43c718714eb63d5aa57b78b54704e256024e915062000232565b62aa36a7460362000231577386dcd3293c53cf8efd7303b57beb2a3f671dde9891505b5b5b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000304919062000eeb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b1919062000eeb565b6040518363ffffffff1660e01b8152600401620003d092919062000f2c565b6020604051808303815f875af1158015620003ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000413919062000eeb565b600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050506200103b565b5f33905090565b620005966200057f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061c9062000fb5565b60405180910390fd5b8160065f82825462000638919062000fd5565b925050819055508160025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200068d919062000fd5565b925050819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620006f5919062001020565b60405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000762826200071a565b810181811067ffffffffffffffff821117156200078457620007836200072a565b5b80604052505050565b5f6200079862000701565b9050620007a6828262000757565b919050565b5f67ffffffffffffffff821115620007c857620007c76200072a565b5b620007d3826200071a565b9050602081019050919050565b5f5b83811015620007ff578082015181840152602081019050620007e2565b5f8484015250505050565b5f620008206200081a84620007ab565b6200078d565b9050828152602081018484840111156200083f576200083e62000716565b5b6200084c848285620007e0565b509392505050565b5f82601f8301126200086b576200086a62000712565b5b81516200087d8482602086016200080a565b91505092915050565b5f819050919050565b6200089a8162000886565b8114620008a5575f80fd5b50565b5f81519050620008b8816200088f565b92915050565b5f805f60608486031215620008d857620008d76200070a565b5b5f84015167ffffffffffffffff811115620008f857620008f76200070e565b5b620009068682870162000854565b935050602084015167ffffffffffffffff8111156200092a57620009296200070e565b5b620009388682870162000854565b92505060406200094b86828701620008a8565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620009a457607f821691505b602082108103620009ba57620009b96200095f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009e1565b62000a2a8683620009e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000a6b62000a6562000a5f8462000886565b62000a42565b62000886565b9050919050565b5f819050919050565b62000a868362000a4b565b62000a9e62000a958262000a72565b848454620009ed565b825550505050565b5f90565b62000ab462000aa6565b62000ac181848462000a7b565b505050565b5b8181101562000ae85762000adc5f8262000aaa565b60018101905062000ac7565b5050565b601f82111562000b375762000b0181620009c0565b62000b0c84620009d2565b8101602085101562000b1c578190505b62000b3462000b2b85620009d2565b83018262000ac6565b50505b505050565b5f82821c905092915050565b5f62000b595f198460080262000b3c565b1980831691505092915050565b5f62000b73838362000b48565b9150826002028217905092915050565b62000b8e8262000955565b67ffffffffffffffff81111562000baa5762000ba96200072a565b5b62000bb682546200098c565b62000bc382828562000aec565b5f60209050601f83116001811462000bf9575f841562000be4578287015190505b62000bf0858262000b66565b86555062000c5f565b601f19841662000c0986620009c0565b5f5b8281101562000c325784890151825560018201915060208501945060208101905062000c0b565b8683101562000c52578489015162000c4e601f89168262000b48565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000cf15780860481111562000cc95762000cc862000c67565b5b600185161562000cd95780820291505b808102905062000ce98562000c94565b945062000ca9565b94509492505050565b5f8262000d0b576001905062000ddd565b8162000d1a575f905062000ddd565b816001811462000d33576002811462000d3e5762000d74565b600191505062000ddd565b60ff84111562000d535762000d5262000c67565b5b8360020a91508482111562000d6d5762000d6c62000c67565b5b5062000ddd565b5060208310610133831016604e8410600b841016171562000dae5782820a90508381111562000da85762000da762000c67565b5b62000ddd565b62000dbd848484600162000ca0565b9250905081840481111562000dd75762000dd662000c67565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000dfc8262000886565b915062000e098362000de4565b925062000e387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cfa565b905092915050565b5f62000e4c8262000886565b915062000e598362000886565b925082820262000e698162000886565b9150828204841483151762000e835762000e8262000c67565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000eb58262000e8a565b9050919050565b62000ec78162000ea9565b811462000ed2575f80fd5b50565b5f8151905062000ee58162000ebc565b92915050565b5f6020828403121562000f035762000f026200070a565b5b5f62000f128482850162000ed5565b91505092915050565b62000f268162000ea9565b82525050565b5f60408201905062000f415f83018562000f1b565b62000f50602083018462000f1b565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000f9d60208362000f57565b915062000faa8262000f67565b602082019050919050565b5f6020820190508181035f83015262000fce8162000f8f565b9050919050565b5f62000fe18262000886565b915062000fee8362000886565b925082820190508082111562001009576200100862000c67565b5b92915050565b6200101a8162000886565b82525050565b5f602082019050620010355f8301846200100f565b92915050565b61292180620010495f395ff3fe60806040526004361061014e575f3560e01c806386942310116100b5578063b7a7a8811161006e578063b7a7a88114610489578063dd62ed3e146104b1578063e5339685146104ed578063f2fde38b14610529578063f7331e3c14610551578063f87dc2c61461057957610155565b8063869423101461037f57806387741434146103bb5780638a8c523c146103e35780638da5cb5b146103f957806395d89b4114610423578063a9059cbb1461044d57610155565b8063313ce56711610107578063313ce567146102775780633f60b426146102a15780634949b429146102c957806370a0823114610305578063715018a6146103415780637f21b9b91461035757610155565b806306fdde0314610159578063095ea7b3146101835780630c19f047146101bf57806318160ddd146101e757806323b872dd146102115780632e7be65b1461024d57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d6105a3565b60405161017a9190611dee565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190611e9f565b610633565b6040516101b69190611ef7565b60405180910390f35b3480156101ca575f80fd5b506101e560048036038101906101e09190611f10565b610660565b005b3480156101f2575f80fd5b506101fb61074b565b6040516102089190611f4a565b60405180910390f35b34801561021c575f80fd5b5061023760048036038101906102329190611f63565b61079c565b6040516102449190611ef7565b60405180910390f35b348015610258575f80fd5b506102616108a7565b60405161026e9190611fc2565b60405180910390f35b348015610282575f80fd5b5061028b6108cd565b6040516102989190611ff6565b60405180910390f35b3480156102ac575f80fd5b506102c760048036038101906102c29190611f10565b6108d5565b005b3480156102d4575f80fd5b506102ef60048036038101906102ea919061200f565b6109ae565b6040516102fc9190611ef7565b60405180910390f35b348015610310575f80fd5b5061032b60048036038101906103269190611f10565b610a54565b6040516103389190611f4a565b60405180910390f35b34801561034c575f80fd5b50610355610a9a565b005b348015610362575f80fd5b5061037d60048036038101906103789190611f10565b610be8565b005b34801561038a575f80fd5b506103a560048036038101906103a09190611f10565b610cd4565b6040516103b29190611ef7565b60405180910390f35b3480156103c6575f80fd5b506103e160048036038101906103dc919061203a565b610cf1565b005b3480156103ee575f80fd5b506103f7610f2f565b005b348015610404575f80fd5b5061040d610fed565b60405161041a9190611fc2565b60405180910390f35b34801561042e575f80fd5b50610437611014565b6040516104449190611dee565b60405180910390f35b348015610458575f80fd5b50610473600480360381019061046e9190611e9f565b6110a4565b6040516104809190611ef7565b60405180910390f35b348015610494575f80fd5b506104af60048036038101906104aa9190611e9f565b6110d1565b005b3480156104bc575f80fd5b506104d760048036038101906104d2919061208a565b6111b6565b6040516104e49190611f4a565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190611f10565b611238565b6040516105209190611f4a565b60405180910390f35b348015610534575f80fd5b5061054f600480360381019061054a9190611f10565b61124d565b005b34801561055c575f80fd5b5061057760048036038101906105729190611f10565b61135b565b005b348015610584575f80fd5b5061058d6114ec565b60405161059a9190611ef7565b60405180910390f35b6060600780546105b2906120f5565b80601f01602080910402602001604051908101604052809291908181526020018280546105de906120f5565b80156106295780601f1061060057610100808354040283529160200191610629565b820191905f5260205f20905b81548152906001019060200180831161060c57829003601f168201915b5050505050905090565b5f61063c6114fe565b61064e61064761154d565b8484611554565b6001905061065a611717565b92915050565b61066861154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb9061216f565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460065461079791906121ba565b905090565b5f6107a56114fe565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ec61154d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561086b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108629061225d565b60405180910390fd5b610876858585611720565b6108938561088261154d565b858461088e91906121ba565b611554565b60019150506108a0611717565b9392505050565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b6108dd61154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109609061216f565b60405180910390fd5b4260055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f8160035f6109bb61154d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015610a4d575081610a4a610a4561154d565b610a54565b10155b9050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610aa261154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b259061216f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bf061154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061216f565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b610cf961154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9061216f565b60405180910390fd5b5f8211610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe906122eb565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e009190611fc2565b602060405180830381865afa158015610e1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3f919061231d565b821115610e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890612392565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401610ebc9291906123b0565b6020604051808303815f875af1158015610ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efc9190612401565b50817fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a2505050565b610f3761154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba9061216f565b60405180910390fd5b60095f9054906101000a900460ff161560095f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054611023906120f5565b80601f016020809104026020016040519081016040528092919081815260200182805461104f906120f5565b801561109a5780601f106110715761010080835404028352916020019161109a565b820191905f5260205f20905b81548152906001019060200180831161107d57829003601f168201915b5050505050905090565b5f6110ad6114fe565b6110bf6110b861154d565b8484611720565b600190506110cb611717565b92915050565b6110d961154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c9061216f565b60405180910390fd5b8042611171919061242c565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6005602052805f5260405f205f915090505481565b61125561154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d89061216f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361134f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611346906124cf565b60405180910390fd5b61135881611c13565b50565b61136361154d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e69061216f565b60405180910390fd5b5f4790505f8111611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c906122eb565b60405180910390fd5b47811115611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612392565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156114bb573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a15050565b60095f9054906101000a900460ff1681565b600260015403611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a90612537565b60405180910390fd5b6002600181905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b9906125c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790612653565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161170a9190611f4a565b60405180910390a3505050565b60018081905550565b82828261172b610fed565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117995750611769610fed565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196257600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611869576117fb610fed565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185f906126bb565b60405180910390fd5b5b61187283611cd4565b158015611885575061188382611cd4565b155b6118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb906126bb565b60405180910390fd5b60095f9054906101000a900460ff166119615760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611957906126bb565b60405180910390fd5b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790612749565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a35906127d7565b60405180910390fd5b5f8411611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790612865565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906128cd565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b4c91906121ba565b925050819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b9f919061242c565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611c039190611f4a565b60405180910390a3505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054118015611d5d575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442105b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d9b578082015181840152602081019050611d80565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611dc082611d64565b611dca8185611d6e565b9350611dda818560208601611d7e565b611de381611da6565b840191505092915050565b5f6020820190508181035f830152611e068184611db6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3b82611e12565b9050919050565b611e4b81611e31565b8114611e55575f80fd5b50565b5f81359050611e6681611e42565b92915050565b5f819050919050565b611e7e81611e6c565b8114611e88575f80fd5b50565b5f81359050611e9981611e75565b92915050565b5f8060408385031215611eb557611eb4611e0e565b5b5f611ec285828601611e58565b9250506020611ed385828601611e8b565b9150509250929050565b5f8115159050919050565b611ef181611edd565b82525050565b5f602082019050611f0a5f830184611ee8565b92915050565b5f60208284031215611f2557611f24611e0e565b5b5f611f3284828501611e58565b91505092915050565b611f4481611e6c565b82525050565b5f602082019050611f5d5f830184611f3b565b92915050565b5f805f60608486031215611f7a57611f79611e0e565b5b5f611f8786828701611e58565b9350506020611f9886828701611e58565b9250506040611fa986828701611e8b565b9150509250925092565b611fbc81611e31565b82525050565b5f602082019050611fd55f830184611fb3565b92915050565b5f60ff82169050919050565b611ff081611fdb565b82525050565b5f6020820190506120095f830184611fe7565b92915050565b5f6020828403121561202457612023611e0e565b5b5f61203184828501611e8b565b91505092915050565b5f805f6060848603121561205157612050611e0e565b5b5f61205e86828701611e58565b935050602061206f86828701611e8b565b925050604061208086828701611e58565b9150509250925092565b5f80604083850312156120a05761209f611e0e565b5b5f6120ad85828601611e58565b92505060206120be85828601611e58565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061210c57607f821691505b60208210810361211f5761211e6120c8565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612159602083611d6e565b915061216482612125565b602082019050919050565b5f6020820190508181035f8301526121868161214d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121c482611e6c565b91506121cf83611e6c565b92508282039050818111156121e7576121e661218d565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612247602883611d6e565b9150612252826121ed565b604082019050919050565b5f6020820190508181035f8301526122748161223b565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122d5602283611d6e565b91506122e08261227b565b604082019050919050565b5f6020820190508181035f830152612302816122c9565b9050919050565b5f8151905061231781611e75565b92915050565b5f6020828403121561233257612331611e0e565b5b5f61233f84828501612309565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f61237c601383611d6e565b915061238782612348565b602082019050919050565b5f6020820190508181035f8301526123a981612370565b9050919050565b5f6040820190506123c35f830185611fb3565b6123d06020830184611f3b565b9392505050565b6123e081611edd565b81146123ea575f80fd5b50565b5f815190506123fb816123d7565b92915050565b5f6020828403121561241657612415611e0e565b5b5f612423848285016123ed565b91505092915050565b5f61243682611e6c565b915061244183611e6c565b92508282019050808211156124595761245861218d565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6124b9602683611d6e565b91506124c48261245f565b604082019050919050565b5f6020820190508181035f8301526124e6816124ad565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612521601f83611d6e565b915061252c826124ed565b602082019050919050565b5f6020820190508181035f83015261254e81612515565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125af602483611d6e565b91506125ba82612555565b604082019050919050565b5f6020820190508181035f8301526125dc816125a3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61263d602283611d6e565b9150612648826125e3565b604082019050919050565b5f6020820190508181035f83015261266a81612631565b9050919050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6126a5600383611d6e565b91506126b082612671565b602082019050919050565b5f6020820190508181035f8301526126d281612699565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612733602583611d6e565b915061273e826126d9565b604082019050919050565b5f6020820190508181035f83015261276081612727565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6127c1602383611d6e565b91506127cc82612767565b604082019050919050565b5f6020820190508181035f8301526127ee816127b5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61284f602983611d6e565b915061285a826127f5565b604082019050919050565b5f6020820190508181035f83015261287c81612843565b9050919050565b7f4e6f7420656e6f7567682062616c616e636500000000000000000000000000005f82015250565b5f6128b7601283611d6e565b91506128c282612883565b602082019050919050565b5f6020820190508181035f8301526128e4816128ab565b905091905056fea264697066735822122056f6fb07d0eb8c3c89e3f8be1adc2e34aa3dcd97942e267b20e8bdfa5264582c64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000000a446f677320486f757365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444f475300000000000000000000000000000000000000000000000000000000