60806040526509184e72a0006000196200001a9190620006f8565b6000196200002991906200075f565b600655600060085560196009556000600a556020600b55600a54600c55600b54600d55600c54600e55600d54600f5533601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550642e90edd000601555642e90edd0006016556405d21dba006017553480156200015257600080fd5b506000620001656200068e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200021a6200068e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000324919062000804565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b2919062000804565b6040518363ffffffff1660e01b8152600401620003d192919062000847565b6020604051808303816000875af1158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000417919062000804565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200046d6200069660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200061a6200068e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6509184e72a0006040516200067f919062000885565b60405180910390a350620008a2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200070582620006bf565b91506200071283620006bf565b925082620007255762000724620006c9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200076c82620006bf565b91506200077983620006bf565b925082820390508181111562000794576200079362000730565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007cc826200079f565b9050919050565b620007de81620007bf565b8114620007ea57600080fd5b50565b600081519050620007fe81620007d3565b92915050565b6000602082840312156200081d576200081c6200079a565b5b60006200082d84828501620007ed565b91505092915050565b6200084181620007bf565b82525050565b60006040820190506200085e600083018562000836565b6200086d602083018462000836565b9392505050565b6200087f81620006bf565b82525050565b60006020820190506200089c600083018462000874565b92915050565b6138a580620008b26000396000f3fe6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105cf578063dd62ed3e146105f8578063ea1644d514610635578063f2fde38b1461065e576101c2565b8063a9059cbb14610552578063b1192e181461058f578063c3c8cd80146105b8576101c2565b80638f9a55c0116100c65780638f9a55c0146104aa57806395d89b41146104d557806398a5c315146105005780639acda2df14610529576101c2565b80637d1db4a5146104175780637f2feddc146104425780638da5cb5b1461047f576101c2565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461038357806370a082311461039a578063715018a6146103d757806374010ece146103ee576101c2565b8063313ce5671461030457806349bd5a5e1461032f5780636d8aa8f81461035a576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632be1dee7146102c25780632fd689e3146102d9576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610687565b6040516101e99190612916565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906129d6565b6106c4565b6040516102269190612a31565b60405180910390f35b34801561023b57600080fd5b506102446106e2565b6040516102519190612aab565b60405180910390f35b34801561026657600080fd5b5061026f610708565b60405161027c9190612ad5565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612af0565b610716565b6040516102b99190612a31565b60405180910390f35b3480156102ce57600080fd5b506102d76107ef565b005b3480156102e557600080fd5b506102ee6108a0565b6040516102fb9190612ad5565b60405180910390f35b34801561031057600080fd5b506103196108a6565b6040516103269190612b5f565b60405180910390f35b34801561033b57600080fd5b506103446108af565b6040516103519190612b89565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190612bd0565b6108d5565b005b34801561038f57600080fd5b50610398610987565b005b3480156103a657600080fd5b506103c160048036038101906103bc9190612bfd565b610a58565b6040516103ce9190612ad5565b60405180910390f35b3480156103e357600080fd5b506103ec610aa9565b005b3480156103fa57600080fd5b5061041560048036038101906104109190612c2a565b610bfc565b005b34801561042357600080fd5b5061042c610c9b565b6040516104399190612ad5565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612bfd565b610ca1565b6040516104769190612ad5565b60405180910390f35b34801561048b57600080fd5b50610494610cb9565b6040516104a19190612b89565b60405180910390f35b3480156104b657600080fd5b506104bf610ce2565b6040516104cc9190612ad5565b60405180910390f35b3480156104e157600080fd5b506104ea610ce8565b6040516104f79190612916565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612c2a565b610d25565b005b34801561053557600080fd5b50610550600480360381019061054b9190612bd0565b610dc4565b005b34801561055e57600080fd5b50610579600480360381019061057491906129d6565b610e75565b6040516105869190612a31565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190612c57565b610e93565b005b3480156105c457600080fd5b506105cd610f4a565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612d23565b611023565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612d83565b61115d565b60405161062c9190612ad5565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190612c2a565b6111e4565b005b34801561066a57600080fd5b5061068560048036038101906106809190612bfd565b611283565b005b60606040518060400160405280600c81526020017f4f72646945786368616e67650000000000000000000000000000000000000000815250905090565b60006106d86106d1611444565b848461144c565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006509184e72a000905090565b6000610723848484611615565b6107e48461072f611444565b6107df8560405180606001604052806028815260200161384860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610795611444565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db59092919063ffffffff16565b61144c565b600190509392505050565b6107f7611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b90612e0f565b60405180910390fd5b6509184e72a0006015819055506509184e72a000601681905550565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108dd611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190612e0f565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c8611444565b73ffffffffffffffffffffffffffffffffffffffff161480610a3e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a26611444565b73ffffffffffffffffffffffffffffffffffffffff16145b610a4757600080fd5b6000479050610a5581611e19565b50565b6000610aa2600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e85565b9050919050565b610ab1611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3590612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c04611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890612e0f565b60405180910390fd5b8060158190555050565b60155481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600681526020017f4f52444945580000000000000000000000000000000000000000000000000000815250905090565b610d2d611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190612e0f565b60405180910390fd5b8060178190555050565b610dcc611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090612e0f565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b6000610e89610e82611444565b8484611615565b6001905092915050565b610e9b611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f90612e0f565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8b611444565b73ffffffffffffffffffffffffffffffffffffffff1614806110015750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe9611444565b73ffffffffffffffffffffffffffffffffffffffff16145b61100a57600080fd5b600061101530610a58565b905061102081611ef3565b50565b61102b611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612e0f565b60405180910390fd5b60005b838390508110156111575781600560008686858181106110de576110dd612e2f565b5b90506020020160208101906110f39190612bfd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061114f90612e8d565b9150506110bb565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111ec611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090612e0f565b60405180910390fd5b8060168190555050565b61128b611444565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612f47565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b290612fd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061306b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116089190612ad5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906130fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061318f565b60405180910390fd5b60008111611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90613221565b60405180910390fd5b61173e610cb9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ac575061177c610cb9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ab45760148054906101000a900460ff16611839576117cb610cb9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f906132b3565b60405180910390fd5b5b60155481111561187e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118759061331f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461192b57601654816118e084610a58565b6118ea919061333f565b1061192a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611921906133e5565b60405180910390fd5b5b600061193630610a58565b90506000601754821015905060155482106119515760155491505b80801561196b5750601460159054906101000a900460ff16155b80156119c55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119dd5750601460169054906101000a900460ff165b8015611a335750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a895750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab157611a9782611ef3565b60004790506000811115611aaf57611aae47611e19565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b5b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c0e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c0d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c1c5760009050611da3565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cc75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cdf57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d8a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611da257600a54600c81905550600b54600d819055505b5b611daf8484848461216c565b50505050565b6000838311158290611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df49190612916565b60405180910390fd5b5060008385611e0c9190613405565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e81573d6000803e3d6000fd5b5050565b6000600654821115611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec3906134ab565b60405180910390fd5b6000611ed6612199565b9050611eeb81846121c490919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2b57611f2a6134cb565b5b604051908082528060200260200182016040528015611f595781602001602082028036833780820191505090505b5090503081600081518110611f7157611f70612e2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c919061350f565b816001815181106120505761204f612e2f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b730601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211b959493929190613635565b600060405180830381600087803b15801561213557600080fd5b505af1158015612149573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b8061217a5761217961220e565b5b61218584848461224b565b8061219357612192612416565b5b50505050565b60008060006121a661242a565b915091506121bd81836121c490919063ffffffff16565b9250505090565b600061220683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612483565b905092915050565b6000600c5414801561222257506000600d54145b61224957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061225d876124e6565b9550955095509550955095506122bb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239c816125f6565b6123a684836126b3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124039190612ad5565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006509184e72a000905061245a6509184e72a0006006546121c490919063ffffffff16565b821015612476576006546509184e72a00093509350505061247f565b81819350935050505b9091565b600080831182906124ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c19190612916565b60405180910390fd5b50600083856124d991906136be565b9050809150509392505050565b60008060008060008060008060006125038a600c54600d546126ed565b9250925092506000612513612199565b905060008060006125268e878787612783565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061259083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611db5565b905092915050565b60008082846125a7919061333f565b9050838110156125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e39061373b565b60405180910390fd5b8091505092915050565b6000612600612199565b90506000612617828461280c90919063ffffffff16565b905061266b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126c88260065461254e90919063ffffffff16565b6006819055506126e38160075461259890919063ffffffff16565b6007819055505050565b600080600080612719606461270b888a61280c90919063ffffffff16565b6121c490919063ffffffff16565b905060006127436064612735888b61280c90919063ffffffff16565b6121c490919063ffffffff16565b9050600061276c8261275e858c61254e90919063ffffffff16565b61254e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061279c858961280c90919063ffffffff16565b905060006127b3868961280c90919063ffffffff16565b905060006127ca878961280c90919063ffffffff16565b905060006127f3826127e5858761254e90919063ffffffff16565b61254e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361281e5760009050612880565b6000828461282c919061375b565b905082848261283b91906136be565b1461287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287290613827565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128c05780820151818401526020810190506128a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006128e882612886565b6128f28185612891565b93506129028185602086016128a2565b61290b816128cc565b840191505092915050565b6000602082019050818103600083015261293081846128dd565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061296d82612942565b9050919050565b61297d81612962565b811461298857600080fd5b50565b60008135905061299a81612974565b92915050565b6000819050919050565b6129b3816129a0565b81146129be57600080fd5b50565b6000813590506129d0816129aa565b92915050565b600080604083850312156129ed576129ec612938565b5b60006129fb8582860161298b565b9250506020612a0c858286016129c1565b9150509250929050565b60008115159050919050565b612a2b81612a16565b82525050565b6000602082019050612a466000830184612a22565b92915050565b6000819050919050565b6000612a71612a6c612a6784612942565b612a4c565b612942565b9050919050565b6000612a8382612a56565b9050919050565b6000612a9582612a78565b9050919050565b612aa581612a8a565b82525050565b6000602082019050612ac06000830184612a9c565b92915050565b612acf816129a0565b82525050565b6000602082019050612aea6000830184612ac6565b92915050565b600080600060608486031215612b0957612b08612938565b5b6000612b178682870161298b565b9350506020612b288682870161298b565b9250506040612b39868287016129c1565b9150509250925092565b600060ff82169050919050565b612b5981612b43565b82525050565b6000602082019050612b746000830184612b50565b92915050565b612b8381612962565b82525050565b6000602082019050612b9e6000830184612b7a565b92915050565b612bad81612a16565b8114612bb857600080fd5b50565b600081359050612bca81612ba4565b92915050565b600060208284031215612be657612be5612938565b5b6000612bf484828501612bbb565b91505092915050565b600060208284031215612c1357612c12612938565b5b6000612c218482850161298b565b91505092915050565b600060208284031215612c4057612c3f612938565b5b6000612c4e848285016129c1565b91505092915050565b60008060008060808587031215612c7157612c70612938565b5b6000612c7f878288016129c1565b9450506020612c90878288016129c1565b9350506040612ca1878288016129c1565b9250506060612cb2878288016129c1565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612ce357612ce2612cbe565b5b8235905067ffffffffffffffff811115612d0057612cff612cc3565b5b602083019150836020820283011115612d1c57612d1b612cc8565b5b9250929050565b600080600060408486031215612d3c57612d3b612938565b5b600084013567ffffffffffffffff811115612d5a57612d5961293d565b5b612d6686828701612ccd565b93509350506020612d7986828701612bbb565b9150509250925092565b60008060408385031215612d9a57612d99612938565b5b6000612da88582860161298b565b9250506020612db98582860161298b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612df9602083612891565b9150612e0482612dc3565b602082019050919050565b60006020820190508181036000830152612e2881612dec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e98826129a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eca57612ec9612e5e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f31602683612891565b9150612f3c82612ed5565b604082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc3602483612891565b9150612fce82612f67565b604082019050919050565b60006020820190508181036000830152612ff281612fb6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613055602283612891565b915061306082612ff9565b604082019050919050565b6000602082019050818103600083015261308481613048565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e7602583612891565b91506130f28261308b565b604082019050919050565b60006020820190508181036000830152613116816130da565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613179602383612891565b91506131848261311d565b604082019050919050565b600060208201905081810360008301526131a88161316c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061320b602983612891565b9150613216826131af565b604082019050919050565b6000602082019050818103600083015261323a816131fe565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061329d603f83612891565b91506132a882613241565b604082019050919050565b600060208201905081810360008301526132cc81613290565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613309601c83612891565b9150613314826132d3565b602082019050919050565b60006020820190508181036000830152613338816132fc565b9050919050565b600061334a826129a0565b9150613355836129a0565b925082820190508082111561336d5761336c612e5e565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006133cf602383612891565b91506133da82613373565b604082019050919050565b600060208201905081810360008301526133fe816133c2565b9050919050565b6000613410826129a0565b915061341b836129a0565b925082820390508181111561343357613432612e5e565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613495602a83612891565b91506134a082613439565b604082019050919050565b600060208201905081810360008301526134c481613488565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061350981612974565b92915050565b60006020828403121561352557613524612938565b5b6000613533848285016134fa565b91505092915050565b6000819050919050565b600061356161355c6135578461353c565b612a4c565b6129a0565b9050919050565b61357181613546565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135ac81612962565b82525050565b60006135be83836135a3565b60208301905092915050565b6000602082019050919050565b60006135e282613577565b6135ec8185613582565b93506135f783613593565b8060005b8381101561362857815161360f88826135b2565b975061361a836135ca565b9250506001810190506135fb565b5085935050505092915050565b600060a08201905061364a6000830188612ac6565b6136576020830187613568565b818103604083015261366981866135d7565b90506136786060830185612b7a565b6136856080830184612ac6565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136c9826129a0565b91506136d4836129a0565b9250826136e4576136e361368f565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613725601b83612891565b9150613730826136ef565b602082019050919050565b6000602082019050818103600083015261375481613718565b9050919050565b6000613766826129a0565b9150613771836129a0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137aa576137a9612e5e565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613811602183612891565b915061381c826137b5565b604082019050919050565b6000602082019050818103600083015261384081613804565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220759f77407a8206535d80fd3ccd20b2b1e9bc2b89c7c98894cc246ac480ae081764736f6c63430008100033