6080604052600160065f6101000a81548160ff021916908315150217905550600f600755601e6008555f6009555f600a55600a600b55600a600c556050600d555f600e556008600a620000539190620009be565b6302faf08062000064919062000a0e565b600f556008600a620000779190620009be565b6302faf08062000088919062000a0e565b6010556008600a6200009b9190620009be565b624c4b40620000ab919062000a0e565b6011556008600a620000be9190620009be565b624c4b40620000ce919062000a0e565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff02191690831515021790555034801562000111575f80fd5b505f620001236200060f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f6200020b6046620001fc60646008600a620001dc9190620009be565b633b9aca00620001ed919062000a0e565b6200061660201b90919060201c565b6200066760201b90919060201c565b90505f62000243826008600a620002239190620009be565b633b9aca0062000234919062000a0e565b620006e760201b90919060201c565b9050620002556200060f60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f620002eb6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200033d6200073860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620004b7919062000a69565b60405180910390a3620004cf6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200052d919062000a69565b60405180910390a3600160045f73ae2fc483527b8ef99eb5d9b44875f005ba1fae1373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505062000c6c565b5f33905090565b5f6200065f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200075f60201b60201c565b905092915050565b5f80830362000679575f9050620006e1565b5f828462000688919062000a0e565b905082848262000699919062000ab1565b14620006dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d39062000b6c565b60405180910390fd5b809150505b92915050565b5f6200073083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620007c560201b60201c565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8083118290620007a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200079f919062000c10565b60405180910390fd5b505f8385620007b8919062000ab1565b9050809150509392505050565b5f8383111582906200080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000806919062000c10565b60405180910390fd5b505f83856200081f919062000c32565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008b6578086048111156200088e576200088d6200082c565b5b60018516156200089e5780820291505b8081029050620008ae8562000859565b94506200086e565b94509492505050565b5f82620008d05760019050620009a2565b81620008df575f9050620009a2565b8160018114620008f85760028114620009035762000939565b6001915050620009a2565b60ff8411156200091857620009176200082c565b5b8360020a9150848211156200093257620009316200082c565b5b50620009a2565b5060208310610133831016604e8410600b8410161715620009735782820a9050838111156200096d576200096c6200082c565b5b620009a2565b62000982848484600162000865565b925090508184048111156200099c576200099b6200082c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009ca82620009a9565b9150620009d783620009b2565b925062000a067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008bf565b905092915050565b5f62000a1a82620009a9565b915062000a2783620009a9565b925082820262000a3781620009a9565b9150828204841483151762000a515762000a506200082c565b5b5092915050565b62000a6381620009a9565b82525050565b5f60208201905062000a7e5f83018462000a58565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000abd82620009a9565b915062000aca83620009a9565b92508262000add5762000adc62000a84565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000b5460218362000ae8565b915062000b618262000af8565b604082019050919050565b5f6020820190508181035f83015262000b858162000b46565b9050919050565b5f81519050919050565b5f5b8381101562000bb557808201518184015260208101905062000b98565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000bdc8262000b8c565b62000be8818562000ae8565b935062000bfa81856020860162000b96565b62000c058162000bc0565b840191505092915050565b5f6020820190508181035f83015262000c2a818462000bd0565b905092915050565b5f62000c3e82620009a9565b915062000c4b83620009a9565b925082820390508181111562000c665762000c656200082c565b5b92915050565b6136bd8062000c7a5f395ff3fe608060405260043610610143575f3560e01c8063751039fc116100b5578063bf474bed1161006e578063bf474bed14610434578063c876d0b91461045e578063c9567bf914610488578063d34628cc14610492578063dd62ed3e146104ba578063ec1f3f63146104f65761014a565b8063751039fc1461033a5780637d1db4a5146103505780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce578063a9059cbb146103f85761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261051e565b60405161016f919061261d565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906126db565b61055b565b6040516101ab9190612733565b60405180910390f35b3480156101bf575f80fd5b506101c8610578565b6040516101d5919061275b565b60405180910390f35b3480156101e9575f80fd5b506101f261057e565b6040516101ff919061275b565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190612774565b6105a1565b60405161023b9190612733565b60405180910390f35b34801561024f575f80fd5b50610258610675565b60405161026591906127df565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f9190612938565b61067d565b005b3480156102a1575f80fd5b506102bc60048036038101906102b7919061297f565b6107a1565b6040516102c99190612733565b60405180910390f35b3480156102dd575f80fd5b506102e66107f3565b005b3480156102f3575f80fd5b5061030e6004803603810190610309919061297f565b61088b565b60405161031b919061275b565b60405180910390f35b34801561032f575f80fd5b506103386108d1565b005b348015610345575f80fd5b5061034e610a1f565b005b34801561035b575f80fd5b50610364610b67565b604051610371919061275b565b60405180910390f35b348015610385575f80fd5b5061038e610b6d565b60405161039b91906129b9565b60405180910390f35b3480156103af575f80fd5b506103b8610b94565b6040516103c5919061275b565b60405180910390f35b3480156103d9575f80fd5b506103e2610b9a565b6040516103ef919061261d565b60405180910390f35b348015610403575f80fd5b5061041e600480360381019061041991906126db565b610bd7565b60405161042b9190612733565b60405180910390f35b34801561043f575f80fd5b50610448610bf4565b604051610455919061275b565b60405180910390f35b348015610469575f80fd5b50610472610bfa565b60405161047f9190612733565b60405180910390f35b610490610c0c565b005b34801561049d575f80fd5b506104b860048036038101906104b39190612938565b61112b565b005b3480156104c5575f80fd5b506104e060048036038101906104db91906129d2565b611250565b6040516104ed919061275b565b60405180910390f35b348015610501575f80fd5b5061051c60048036038101906105179190612a10565b6112d2565b005b60606040518060400160405280600781526020017f4d617877656c6c00000000000000000000000000000000000000000000000000815250905090565b5f61056e61056761134a565b8484611351565b6001905092915050565b60125481565b5f6008600a61058d9190612b97565b633b9aca0061059c9190612be1565b905090565b5f6105ad848484611514565b61066a846105b961134a565b610665856040518060600160405280602881526020016136606028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061c61134a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207e9092919063ffffffff16565b611351565b600190509392505050565b5f6008905090565b61068561134a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612c6c565b60405180910390fd5b5f5b815181101561079d575f60045f84848151811061073357610732612c8a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061079590612cb7565b915050610713565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083461134a565b73ffffffffffffffffffffffffffffffffffffffff1614610853575f80fd5b5f61085d3061088b565b90505f81111561087157610870816120e0565b5b5f4790505f811115610887576108868161234b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108d961134a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c90612c6c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2761134a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612c6c565b60405180910390fd5b6008600a610ac19190612b97565b633b9aca00610ad09190612be1565b600f819055506008600a610ae49190612b97565b633b9aca00610af39190612be1565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b419190612b97565b633b9aca00610b509190612be1565b604051610b5d919061275b565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f4d415857454c4c00000000000000000000000000000000000000000000000000815250905090565b5f610bea610be361134a565b8484611514565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610c1461134a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612c6c565b60405180910390fd5b60148054906101000a900460ff1615610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590612d48565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d8a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d769190612b97565b633b9aca00610d859190612be1565b611351565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e189190612d7a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec29190612d7a565b6040518363ffffffff1660e01b8152600401610edf929190612da5565b6020604051808303815f875af1158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612d7a565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa63061088b565b5f80610fb0610b6d565b426040518863ffffffff1660e01b8152600401610fd296959493929190612e0e565b60606040518083038185885af1158015610fee573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110139190612e81565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110e8929190612ed1565b6020604051808303815f875af1158015611104573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111289190612f22565b50565b61113361134a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612c6c565b60405180910390fd5b5f5b815181101561124c57600160045f8484815181106111e2576111e1612c8a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061124490612cb7565b9150506111c1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131361134a565b73ffffffffffffffffffffffffffffffffffffffff1614611332575f80fd5b600954811115611340575f80fd5b8060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612fbd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061304b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611507919061275b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611579906130d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790613167565b60405180910390fd5b5f8111611632576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611629906131f5565b60405180910390fd5b5f8061165c606461164e600a54866123b490919063ffffffff16565b61242b90919063ffffffff16565b9050611666610b6d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156116d457506116a4610b6d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611caa5760045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611777575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61177f575f80fd5b6117bb60646117ad600b54600e541161179a5760075461179e565b6009545b866123b490919063ffffffff16565b61242b90919063ffffffff16565b915060065f9054906101000a900460ff16156119435760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561187b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611942574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906132a9565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156119ec575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a3f575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611af957600f54831115611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613311565b60405180910390fd5b60105483611a968661088b565b611aa0919061332f565b1115611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad8906133ac565b60405180910390fd5b600e5f815480929190611af390612cb7565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b8157503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611bc557611bc26064611bb4600c54600e5411611ba157600854611ba5565b6009545b866123b490919063ffffffff16565b61242b90919063ffffffff16565b91505b5f611bcf3061088b565b9050601460159054906101000a900460ff16158015611c3a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611c525750601460169054906101000a900460ff165b8015611c5f575060115481115b8015611c6e5750600d54600e54115b15611ca857611c90611c8b85611c8684601254612474565b612474565b6120e0565b5f4790505f811115611ca657611ca54761234b565b5b505b505b611cfa8360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461248c90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611daf611d6382611d55858761248c90919063ffffffff16565b61248c90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6484611e56878961248c90919063ffffffff16565b61248c90919063ffffffff16565b604051611e71919061275b565b60405180910390a35f821115611f7857611ed18260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f6f919061275b565b60405180910390a35b5f81111561207757611fd08160015f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d590919063ffffffff16565b60015f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161206e919061275b565b60405180910390a35b5050505050565b5f8383111582906120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc919061261d565b60405180910390fd5b505f83856120d391906133ca565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612117576121166127fc565b5b6040519080825280602002602001820160405280156121455781602001602082028036833780820191505090505b50905030815f8151811061215c5761215b612c8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122249190612d7a565b8160018151811061223857612237612c8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061229e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611351565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123009594939291906134b4565b5f604051808303815f87803b158015612317575f80fd5b505af1158015612329573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123b0573d5f803e3d5ffd5b5050565b5f8083036123c4575f9050612425565b5f82846123d19190612be1565b90508284826123e09190613539565b14612420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612417906135d9565b60405180910390fd5b809150505b92915050565b5f61246c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612532565b905092915050565b5f8183116124825782612484565b815b905092915050565b5f6124cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061207e565b905092915050565b5f8082846124e3919061332f565b905083811015612528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251f90613641565b60405180910390fd5b8091505092915050565b5f8083118290612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f919061261d565b60405180910390fd5b505f83856125869190613539565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125ca5780820151818401526020810190506125af565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ef82612593565b6125f9818561259d565b93506126098185602086016125ad565b612612816125d5565b840191505092915050565b5f6020820190508181035f83015261263581846125e5565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126778261264e565b9050919050565b6126878161266d565b8114612691575f80fd5b50565b5f813590506126a28161267e565b92915050565b5f819050919050565b6126ba816126a8565b81146126c4575f80fd5b50565b5f813590506126d5816126b1565b92915050565b5f80604083850312156126f1576126f0612646565b5b5f6126fe85828601612694565b925050602061270f858286016126c7565b9150509250929050565b5f8115159050919050565b61272d81612719565b82525050565b5f6020820190506127465f830184612724565b92915050565b612755816126a8565b82525050565b5f60208201905061276e5f83018461274c565b92915050565b5f805f6060848603121561278b5761278a612646565b5b5f61279886828701612694565b93505060206127a986828701612694565b92505060406127ba868287016126c7565b9150509250925092565b5f60ff82169050919050565b6127d9816127c4565b82525050565b5f6020820190506127f25f8301846127d0565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612832826125d5565b810181811067ffffffffffffffff82111715612851576128506127fc565b5b80604052505050565b5f61286361263d565b905061286f8282612829565b919050565b5f67ffffffffffffffff82111561288e5761288d6127fc565b5b602082029050602081019050919050565b5f80fd5b5f6128b56128b084612874565b61285a565b905080838252602082019050602084028301858111156128d8576128d761289f565b5b835b8181101561290157806128ed8882612694565b8452602084019350506020810190506128da565b5050509392505050565b5f82601f83011261291f5761291e6127f8565b5b813561292f8482602086016128a3565b91505092915050565b5f6020828403121561294d5761294c612646565b5b5f82013567ffffffffffffffff81111561296a5761296961264a565b5b6129768482850161290b565b91505092915050565b5f6020828403121561299457612993612646565b5b5f6129a184828501612694565b91505092915050565b6129b38161266d565b82525050565b5f6020820190506129cc5f8301846129aa565b92915050565b5f80604083850312156129e8576129e7612646565b5b5f6129f585828601612694565b9250506020612a0685828601612694565b9150509250929050565b5f60208284031215612a2557612a24612646565b5b5f612a32848285016126c7565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612abd57808604811115612a9957612a98612a3b565b5b6001851615612aa85780820291505b8081029050612ab685612a68565b9450612a7d565b94509492505050565b5f82612ad55760019050612b90565b81612ae2575f9050612b90565b8160018114612af85760028114612b0257612b31565b6001915050612b90565b60ff841115612b1457612b13612a3b565b5b8360020a915084821115612b2b57612b2a612a3b565b5b50612b90565b5060208310610133831016604e8410600b8410161715612b665782820a905083811115612b6157612b60612a3b565b5b612b90565b612b738484846001612a74565b92509050818404811115612b8a57612b89612a3b565b5b81810290505b9392505050565b5f612ba1826126a8565b9150612bac836127c4565b9250612bd97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ac6565b905092915050565b5f612beb826126a8565b9150612bf6836126a8565b9250828202612c04816126a8565b91508282048414831517612c1b57612c1a612a3b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c5660208361259d565b9150612c6182612c22565b602082019050919050565b5f6020820190508181035f830152612c8381612c4a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612cc1826126a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf357612cf2612a3b565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612d3260178361259d565b9150612d3d82612cfe565b602082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b5f81519050612d748161267e565b92915050565b5f60208284031215612d8f57612d8e612646565b5b5f612d9c84828501612d66565b91505092915050565b5f604082019050612db85f8301856129aa565b612dc560208301846129aa565b9392505050565b5f819050919050565b5f819050919050565b5f612df8612df3612dee84612dcc565b612dd5565b6126a8565b9050919050565b612e0881612dde565b82525050565b5f60c082019050612e215f8301896129aa565b612e2e602083018861274c565b612e3b6040830187612dff565b612e486060830186612dff565b612e5560808301856129aa565b612e6260a083018461274c565b979650505050505050565b5f81519050612e7b816126b1565b92915050565b5f805f60608486031215612e9857612e97612646565b5b5f612ea586828701612e6d565b9350506020612eb686828701612e6d565b9250506040612ec786828701612e6d565b9150509250925092565b5f604082019050612ee45f8301856129aa565b612ef1602083018461274c565b9392505050565b612f0181612719565b8114612f0b575f80fd5b50565b5f81519050612f1c81612ef8565b92915050565b5f60208284031215612f3757612f36612646565b5b5f612f4484828501612f0e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fa760248361259d565b9150612fb282612f4d565b604082019050919050565b5f6020820190508181035f830152612fd481612f9b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61303560228361259d565b915061304082612fdb565b604082019050919050565b5f6020820190508181035f83015261306281613029565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130c360258361259d565b91506130ce82613069565b604082019050919050565b5f6020820190508181035f8301526130f0816130b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61315160238361259d565b915061315c826130f7565b604082019050919050565b5f6020820190508181035f83015261317e81613145565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131df60298361259d565b91506131ea82613185565b604082019050919050565b5f6020820190508181035f83015261320c816131d3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61329360498361259d565b915061329e82613213565b606082019050919050565b5f6020820190508181035f8301526132c081613287565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6132fb60198361259d565b9150613306826132c7565b602082019050919050565b5f6020820190508181035f830152613328816132ef565b9050919050565b5f613339826126a8565b9150613344836126a8565b925082820190508082111561335c5761335b612a3b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613396601a8361259d565b91506133a182613362565b602082019050919050565b5f6020820190508181035f8301526133c38161338a565b9050919050565b5f6133d4826126a8565b91506133df836126a8565b92508282039050818111156133f7576133f6612a3b565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61342f8161266d565b82525050565b5f6134408383613426565b60208301905092915050565b5f602082019050919050565b5f613462826133fd565b61346c8185613407565b935061347783613417565b805f5b838110156134a757815161348e8882613435565b97506134998361344c565b92505060018101905061347a565b5085935050505092915050565b5f60a0820190506134c75f83018861274c565b6134d46020830187612dff565b81810360408301526134e68186613458565b90506134f560608301856129aa565b613502608083018461274c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613543826126a8565b915061354e836126a8565b92508261355e5761355d61350c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135c360218361259d565b91506135ce82613569565b604082019050919050565b5f6020820190508181035f8301526135f0816135b7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61362b601b8361259d565b9150613636826135f7565b602082019050919050565b5f6020820190508181035f8301526136588161361f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220473a0620e9cd37d4e4e4e00dc315447a301964af0cccf1751085bcfa8bc9134164736f6c63430008140033