60806040526009600a620000149190620008d3565b630286f90062000025919062000923565b6001555f600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff0219169083151502179055506001600b55620186a06101f460015462000078919062000923565b6200008491906200099a565b600c55620186a061012c6001546200009d919062000923565b620000a991906200099a565b600d555f600e555f600f555f6010555f601155610514601255610a8c6013556116446014556127106015557334961165b71e7623f1884a9660f73e347eb694d060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507334961165b71e7623f1884a9660f73e347eb694d060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507334961165b71e7623f1884a9660f73e347eb694d060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127106032600154620001e4919062000923565b620001f091906200099a565b601955612710609660015462000207919062000923565b6200021391906200099a565b601a5561271060966001546200022a919062000923565b6200023691906200099a565b601b5534801562000245575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000310919062000a36565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000376573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039c919062000a36565b6040518363ffffffff1660e01b8152600401620003bb92919062000a77565b6020604051808303815f875af1158015620003d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003fe919062000a36565b90508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060015460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000731919062000ab3565b60405180910390a3505062000ace565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007cb57808604811115620007a357620007a262000741565b5b6001851615620007b35780820291505b8081029050620007c3856200076e565b945062000783565b94509492505050565b5f82620007e55760019050620008b7565b81620007f4575f9050620008b7565b81600181146200080d576002811462000818576200084e565b6001915050620008b7565b60ff8411156200082d576200082c62000741565b5b8360020a91508482111562000847576200084662000741565b5b50620008b7565b5060208310610133831016604e8410600b8410161715620008885782820a90508381111562000882576200088162000741565b5b620008b7565b6200089784848460016200077a565b92509050818404811115620008b157620008b062000741565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008df82620008be565b9150620008ec83620008c7565b92506200091b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007d4565b905092915050565b5f6200092f82620008be565b91506200093c83620008be565b92508282026200094c81620008be565b9150828204841483151762000966576200096562000741565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009a682620008be565b9150620009b383620008be565b925082620009c657620009c56200096d565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a0082620009d5565b9050919050565b62000a1281620009f4565b811462000a1d575f80fd5b50565b5f8151905062000a308162000a07565b92915050565b5f6020828403121562000a4e5762000a4d620009d1565b5b5f62000a5d8482850162000a20565b91505092915050565b62000a7181620009f4565b82525050565b5f60408201905062000a8c5f83018562000a66565b62000a9b602083018462000a66565b9392505050565b62000aad81620008be565b82525050565b5f60208201905062000ac85f83018462000aa2565b92915050565b6139e38062000adc5f395ff3fe60806040526004361061019f575f3560e01c80637d1db4a5116100eb5780639d8740cb11610089578063bf6a1c0d11610063578063bf6a1c0d146105ce578063cb7f97d7146105e4578063dd62ed3e1461060c578063f2fde38b14610648576101a6565b80639d8740cb14610540578063a8aa1b3114610568578063a9059cbb14610592576101a6565b80639213c358116100c55780639213c3581461048a57806395d89b41146104b25780639bbc2bb6146104dc5780639cc3535114610518576101a6565b80637d1db4a51461040e578063893d20e8146104385780638cd4426d14610462576101a6565b8063313ce5671161015857806351bc3c851161013257806351bc3c851461036857806370a082311461037e57806378109e54146103ba5780637cca52fe146103e4576101a6565b8063313ce567146102da5780633f4218e01461030457806348ff2b8b14610340576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd14610210578063229b6a5e1461023a57806323b872dd146102625780632f54bf6e1461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610670565b6040516101cb91906129fd565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612ab2565b6106ad565b6040516102079190612b0a565b60405180910390f35b34801561021b575f80fd5b506102246106c3565b6040516102319190612b32565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b9190612bd6565b610702565b005b34801561026d575f80fd5b5061028860048036038101906102839190612c33565b6107e5565b6040516102959190612b0a565b60405180910390f35b3480156102a9575f80fd5b506102c460048036038101906102bf9190612c83565b6108ab565b6040516102d19190612b0a565b60405180910390f35b3480156102e5575f80fd5b506102ee610902565b6040516102fb9190612cc9565b60405180910390f35b34801561030f575f80fd5b5061032a60048036038101906103259190612c83565b61090a565b6040516103379190612b0a565b60405180910390f35b34801561034b575f80fd5b5061036660048036038101906103619190612ce2565b610927565b005b348015610373575f80fd5b5061037c6109c7565b005b348015610389575f80fd5b506103a4600480360381019061039f9190612c83565b610a37565b6040516103b19190612b32565b60405180910390f35b3480156103c5575f80fd5b506103ce610a7d565b6040516103db9190612b32565b60405180910390f35b3480156103ef575f80fd5b506103f8610a83565b6040516104059190612b32565b60405180910390f35b348015610419575f80fd5b50610422610a89565b60405161042f9190612b32565b60405180910390f35b348015610443575f80fd5b5061044c610a8f565b6040516104599190612d2f565b60405180910390f35b34801561046d575f80fd5b5061048860048036038101906104839190612ab2565b610ab6565b005b348015610495575f80fd5b506104b060048036038101906104ab9190612d48565b610c40565b005b3480156104bd575f80fd5b506104c6610e4c565b6040516104d391906129fd565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190612c83565b610e89565b60405161050f9190612b32565b60405180910390f35b348015610523575f80fd5b5061053e60048036038101906105399190612d98565b610e9e565b005b34801561054b575f80fd5b5061056660048036038101906105619190612d98565b611015565b005b348015610573575f80fd5b5061057c6110c9565b6040516105899190612d2f565b60405180910390f35b34801561059d575f80fd5b506105b860048036038101906105b39190612ab2565b6110ee565b6040516105c59190612b0a565b60405180910390f35b3480156105d9575f80fd5b506105e2611104565b005b3480156105ef575f80fd5b5061060a60048036038101906106059190612de8565b611169565b005b348015610617575f80fd5b50610632600480360381019061062d9190612e85565b61128b565b60405161063f9190612b32565b60405180910390f35b348015610653575f80fd5b5061066e60048036038101906106699190612efe565b61130d565b005b60606040518060400160405280600f81526020017f427261696e726f746d617878696e670000000000000000000000000000000000815250905090565b5f6106b93384846113ce565b6001905092915050565b5f6106fd6106d05f610a37565b6106ef6106de61dead610a37565b60015461159190919063ffffffff16565b61159190919063ffffffff16565b905090565b61070b336108ab565b61074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190612f73565b60405180910390fd5b5f5b838390508110156107df578160055f86868581811061076e5761076d612f91565b5b90506020020160208101906107839190612c83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061074c565b50505050565b5f6107f18484846115a6565b6108a0843361089b856040518060600160405280602881526020016139866028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e439092919063ffffffff16565b6113ce565b600190509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b6004602052805f5260405f205f915054906101000a900460ff1681565b610930336108ab565b61096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690612f73565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6109d0336108ab565b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612f73565b60405180910390fd5b5f610a1930610a37565b9050600c54811115610a2b57600c5490505b610a3481611e97565b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b601b5481565b601a5481565b60195481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610abf336108ab565b610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612f73565b60405180910390fd5b5f610b9c6064610b8e848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b419190612d2f565b602060405180830381865afa158015610b5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b809190612fd2565b6120ed90919063ffffffff16565b61210290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610bfa929190612ffd565b6020604051808303815f875af1158015610c16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3a9190613038565b50505050565b610c49336108ab565b610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612f73565b60405180910390fd5b8260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600b81526020017f52455441524420434c5542000000000000000000000000000000000000000000815250905090565b6006602052805f5260405f205f915090505481565b610ea7336108ab565b610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd90612f73565b60405180910390fd5b5f610f10612710610f02866001546120ed90919063ffffffff16565b61210290919063ffffffff16565b90505f610f3c612710610f2e866001546120ed90919063ffffffff16565b61210290919063ffffffff16565b90505f610f68612710610f5a866001546120ed90919063ffffffff16565b61210290919063ffffffff16565b90508260198190555081601a8190555080601b819055505f610faf6103e8610fa16005610f936106c3565b6120ed90919063ffffffff16565b61210290919063ffffffff16565b9050808410158015610fc15750808310155b8015610fcd5750808210155b61100c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611003906130d3565b60405180910390fd5b50505050505050565b61101e336108ab565b61105d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105490612f73565b60405180910390fd5b82600b8190555061108e620186a0611080846001546120ed90919063ffffffff16565b61210290919063ffffffff16565b600c819055506110be620186a06110b0836001546120ed90919063ffffffff16565b61210290919063ffffffff16565b600d81905550505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6110fa3384846115a6565b6001905092915050565b61110d336108ab565b61114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612f73565b60405180910390fd5b6001600860146101000a81548160ff021916908315150217905550565b611172336108ab565b6111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612f73565b60405180910390fd5b86600e8190555085600f8190555084601181905550836010819055508260128190555081601381905550806014819055506111f8600160155461210290919063ffffffff16565b60125411158015611220575061121a600160155461210290919063ffffffff16565b60135411155b8015611243575061123d600160155461210290919063ffffffff16565b60145411155b611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127990613161565b60405180910390fd5b50505050505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611316336108ab565b611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612f73565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113c391906131da565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143390613263565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a1906132f1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115849190612b32565b60405180910390a3505050565b5f818361159e919061333c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b906133df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116799061346d565b60405180910390fd5b61168b83610a37565b8111156116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c4906134fb565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561176b575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117c057600860149054906101000a900460ff166117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690613563565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561185e575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156118b7575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561198b57601b546119498260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211790919063ffffffff16565b111561198a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611981906135cb565b60405180910390fd5b5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ac757601a5481111580611a36575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611a87575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613633565b60405180910390fd5b5b60195481111580611b1e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611b6f575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613633565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c51575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c7057600160095f828254611c689190613651565b925050819055505b611c7b83838361212c565b15611c9357611c8b600c54611e97565b5f6009819055505b611ce38160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461159190919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611d2f848461225f565b611d395781611d45565b611d44848484612306565b5b9050611d978160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211790919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e359190612b32565b60405180910390a350505050565b5f838311158290611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8191906129fd565b60405180910390fd5b5082840390509392505050565b6001600a5f6101000a81548160ff0219169083151502179055505f611f036002611ef5601054611ee7600f54611ed96001600e5461211790919063ffffffff16565b61211790919063ffffffff16565b61211790919063ffffffff16565b6120ed90919063ffffffff16565b90505f611f2d82611f1f600e54866120ed90919063ffffffff16565b61210290919063ffffffff16565b90505f611f43828561159190919063ffffffff16565b90505f479050611f52826124bd565b5f611f66824761159190919063ffffffff16565b90505f611f90611f81600e548861159190919063ffffffff16565b8361210290919063ffffffff16565b90505f611fa8600e54836120ed90919063ffffffff16565b90505f811115611fbd57611fbc86826126f3565b5b5f611fe6600f54611fd86002866120ed90919063ffffffff16565b6120ed90919063ffffffff16565b90505f8111156120565760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612054573d5f803e3d5ffd5b505b5f4790505f8111156120c85760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120c6573d5f803e3d5ffd5b505b5050505050505050505f600a5f6101000a81548160ff02191690831515021790555050565b5f81836120fa9190613684565b905092915050565b5f818361210f91906136f2565b905092915050565b5f81836121249190613651565b905092915050565b5f80600d5483101590505f600c5461214330610a37565b10159050600a5f9054906101000a900460ff1615801561216f5750600860159054906101000a900460ff165b80156121875750600860149054906101000a900460ff165b80156121905750815b80156121e3575060045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561223b575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561224b5750600b5460095410155b80156122545750805b925050509392505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122fe575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f8061231285856127ed565b11156124b2575f61234961232686866127ed565b61233b6015548661210290919063ffffffff16565b6120ed90919063ffffffff16565b905061239b8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211790919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124399190612b32565b60405180910390a35f60115411801561245c575060115461245a86866127ed565b115b15612497576124963061dead6124916011546124836015548961210290919063ffffffff16565b6120ed90919063ffffffff16565b6115a6565b5b6124aa818461159190919063ffffffff16565b9150506124b6565b8190505b9392505050565b5f600267ffffffffffffffff8111156124d9576124d8613722565b5b6040519080825280602002602001820160405280156125075781602001602082028036833780820191505090505b50905030815f8151811061251e5761251d612f91565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e69190613763565b816001815181106125fa576125f9612f91565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126603060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ce565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126c295949392919061387e565b5f604051808303815f87803b1580156126d9575f80fd5b505af11580156126eb573d5f803e3d5ffd5b505050505050565b61271f3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ce565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127a5969594939291906138d6565b60606040518083038185885af11580156127c1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127e69190613935565b5050505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612889575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156128ab576128a4606460155461159190919063ffffffff16565b905061296d565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361290957601354905061296d565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361296757601254905061296d565b60145490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129aa57808201518184015260208101905061298f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129cf82612973565b6129d9818561297d565b93506129e981856020860161298d565b6129f2816129b5565b840191505092915050565b5f6020820190508181035f830152612a1581846129c5565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a4e82612a25565b9050919050565b612a5e81612a44565b8114612a68575f80fd5b50565b5f81359050612a7981612a55565b92915050565b5f819050919050565b612a9181612a7f565b8114612a9b575f80fd5b50565b5f81359050612aac81612a88565b92915050565b5f8060408385031215612ac857612ac7612a1d565b5b5f612ad585828601612a6b565b9250506020612ae685828601612a9e565b9150509250929050565b5f8115159050919050565b612b0481612af0565b82525050565b5f602082019050612b1d5f830184612afb565b92915050565b612b2c81612a7f565b82525050565b5f602082019050612b455f830184612b23565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612b6c57612b6b612b4b565b5b8235905067ffffffffffffffff811115612b8957612b88612b4f565b5b602083019150836020820283011115612ba557612ba4612b53565b5b9250929050565b612bb581612af0565b8114612bbf575f80fd5b50565b5f81359050612bd081612bac565b92915050565b5f805f60408486031215612bed57612bec612a1d565b5b5f84013567ffffffffffffffff811115612c0a57612c09612a21565b5b612c1686828701612b57565b93509350506020612c2986828701612bc2565b9150509250925092565b5f805f60608486031215612c4a57612c49612a1d565b5b5f612c5786828701612a6b565b9350506020612c6886828701612a6b565b9250506040612c7986828701612a9e565b9150509250925092565b5f60208284031215612c9857612c97612a1d565b5b5f612ca584828501612a6b565b91505092915050565b5f60ff82169050919050565b612cc381612cae565b82525050565b5f602082019050612cdc5f830184612cba565b92915050565b5f8060408385031215612cf857612cf7612a1d565b5b5f612d0585828601612a6b565b9250506020612d1685828601612bc2565b9150509250929050565b612d2981612a44565b82525050565b5f602082019050612d425f830184612d20565b92915050565b5f805f60608486031215612d5f57612d5e612a1d565b5b5f612d6c86828701612a6b565b9350506020612d7d86828701612a6b565b9250506040612d8e86828701612a6b565b9150509250925092565b5f805f60608486031215612daf57612dae612a1d565b5b5f612dbc86828701612a9e565b9350506020612dcd86828701612a9e565b9250506040612dde86828701612a9e565b9150509250925092565b5f805f805f805f60e0888a031215612e0357612e02612a1d565b5b5f612e108a828b01612a9e565b9750506020612e218a828b01612a9e565b9650506040612e328a828b01612a9e565b9550506060612e438a828b01612a9e565b9450506080612e548a828b01612a9e565b93505060a0612e658a828b01612a9e565b92505060c0612e768a828b01612a9e565b91505092959891949750929550565b5f8060408385031215612e9b57612e9a612a1d565b5b5f612ea885828601612a6b565b9250506020612eb985828601612a6b565b9150509250929050565b5f612ecd82612a25565b9050919050565b612edd81612ec3565b8114612ee7575f80fd5b50565b5f81359050612ef881612ed4565b92915050565b5f60208284031215612f1357612f12612a1d565b5b5f612f2084828501612eea565b91505092915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f612f5d60068361297d565b9150612f6882612f29565b602082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612fcc81612a88565b92915050565b5f60208284031215612fe757612fe6612a1d565b5b5f612ff484828501612fbe565b91505092915050565b5f6040820190506130105f830185612d20565b61301d6020830184612b23565b9392505050565b5f8151905061303281612bac565b92915050565b5f6020828403121561304d5761304c612a1d565b5b5f61305a84828501613024565b91505092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f742062655f8201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b5f6130bd602e8361297d565b91506130c882613063565b604082019050919050565b5f6020820190508181035f8301526130ea816130b1565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d5f8201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b5f61314b602c8361297d565b9150613156826130f1565b604082019050919050565b5f6020820190508181035f8301526131788161313f565b9050919050565b5f819050919050565b5f6131a261319d61319884612a25565b61317f565b612a25565b9050919050565b5f6131b382613188565b9050919050565b5f6131c4826131a9565b9050919050565b6131d4816131ba565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61324d60248361297d565b9150613258826131f3565b604082019050919050565b5f6020820190508181035f83015261327a81613241565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132db60228361297d565b91506132e682613281565b604082019050919050565b5f6020820190508181035f830152613308816132cf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61334682612a7f565b915061335183612a7f565b92508282039050818111156133695761336861330f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133c960258361297d565b91506133d48261336f565b604082019050919050565b5f6020820190508181035f8301526133f6816133bd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61345760238361297d565b9150613462826133fd565b604082019050919050565b5f6020820190508181035f8301526134848161344b565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f6134e560318361297d565b91506134f08261348b565b604082019050919050565b5f6020820190508181035f830152613512816134d9565b9050919050565b7f74726164696e67416c6c6f7765640000000000000000000000000000000000005f82015250565b5f61354d600e8361297d565b915061355882613519565b602082019050919050565b5f6020820190508181035f83015261357a81613541565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00005f82015250565b5f6135b5601e8361297d565b91506135c082613581565b602082019050919050565b5f6020820190508181035f8301526135e2816135a9565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f61361d60118361297d565b9150613628826135e9565b602082019050919050565b5f6020820190508181035f83015261364a81613611565b9050919050565b5f61365b82612a7f565b915061366683612a7f565b925082820190508082111561367e5761367d61330f565b5b92915050565b5f61368e82612a7f565b915061369983612a7f565b92508282026136a781612a7f565b915082820484148315176136be576136bd61330f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136fc82612a7f565b915061370783612a7f565b925082613717576137166136c5565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061375d81612a55565b92915050565b5f6020828403121561377857613777612a1d565b5b5f6137858482850161374f565b91505092915050565b5f819050919050565b5f6137b16137ac6137a78461378e565b61317f565b612a7f565b9050919050565b6137c181613797565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137f981612a44565b82525050565b5f61380a83836137f0565b60208301905092915050565b5f602082019050919050565b5f61382c826137c7565b61383681856137d1565b9350613841836137e1565b805f5b8381101561387157815161385888826137ff565b975061386383613816565b925050600181019050613844565b5085935050505092915050565b5f60a0820190506138915f830188612b23565b61389e60208301876137b8565b81810360408301526138b08186613822565b90506138bf6060830185612d20565b6138cc6080830184612b23565b9695505050505050565b5f60c0820190506138e95f830189612d20565b6138f66020830188612b23565b61390360408301876137b8565b61391060608301866137b8565b61391d6080830185612d20565b61392a60a0830184612b23565b979650505050505050565b5f805f6060848603121561394c5761394b612a1d565b5b5f61395986828701612fbe565b935050602061396a86828701612fbe565b925050604061397b86828701612fbe565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122034593306d728b1ffa18d0e79b164767cf577a37f121bed51ef1b8d53ac18701064736f6c63430008170033