6080604052670de0b6b3a76400006000196200001c919062000729565b6000196200002b919062000790565b6006556000600855600f6009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f55738070de85517257e6c3f78f01f32aeb37172fe0b5601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738070de85517257e6c3f78f01f32aeb37172fe0b5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df8200006017556509184e72a0006018553480156200018157600080fd5b50600062000194620006bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000249620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000835565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e1919062000835565b6040518363ffffffff1660e01b81526004016200040092919062000878565b6020604051808303816000875af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000835565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049c620006c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000649620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b09190620008b6565b60405180910390a350620008d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073682620006f0565b91506200074383620006f0565b925082620007565762000755620006fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079d82620006f0565b9150620007aa83620006f0565b9250828203905081811115620007c557620007c462000761565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fd82620007d0565b9050919050565b6200080f81620007f0565b81146200081b57600080fd5b50565b6000815190506200082f8162000804565b92915050565b6000602082840312156200084e576200084d620007cb565b5b60006200085e848285016200081e565b91505092915050565b6200087281620007f0565b82525050565b60006040820190506200088f600083018562000867565b6200089e602083018462000867565b9392505050565b620008b081620006f0565b82525050565b6000602082019050620008cd6000830184620008a5565b92915050565b613cb280620008e36000396000f3fe6080604052600436106101c55760003560e01c8063751039fc116100f757806398a5c31511610095578063c3c8cd8011610064578063c3c8cd8014610628578063c492f0461461063f578063dd62ed3e14610668578063f2fde38b146106a5576101cc565b806398a5c3151461055c578063a2a957bb14610585578063a9059cbb146105ae578063bfd79284146105eb576101cc565b80638da5cb5b116100d15780638da5cb5b146104b25780638f70ccf7146104dd5780638f9a55c01461050657806395d89b4114610531576101cc565b8063751039fc146104335780637d1db4a51461044a5780637f2feddc14610475576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c857806370a08231146103df578063715018a61461041c576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612c82565b6106ce565b005b34801561020657600080fd5b5061020f6107f8565b60405161021c9190612d4a565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612da2565b610835565b6040516102599190612dfd565b60405180910390f35b34801561026e57600080fd5b50610277610853565b6040516102849190612e77565b60405180910390f35b34801561029957600080fd5b506102a2610879565b6040516102af9190612ea1565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612ebc565b610889565b6040516102ec9190612dfd565b60405180910390f35b34801561030157600080fd5b5061030a610962565b6040516103179190612ea1565b60405180910390f35b34801561032c57600080fd5b50610335610968565b6040516103429190612f2b565b60405180910390f35b34801561035757600080fd5b50610360610971565b60405161036d9190612f55565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612f70565b610997565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190612fc9565b610a87565b005b3480156103d457600080fd5b506103dd610b39565b005b3480156103eb57600080fd5b5061040660048036038101906104019190612f70565b610c0a565b6040516104139190612ea1565b60405180910390f35b34801561042857600080fd5b50610431610c5b565b005b34801561043f57600080fd5b50610448610dae565b005b34801561045657600080fd5b5061045f610e63565b60405161046c9190612ea1565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612f70565b610e69565b6040516104a99190612ea1565b60405180910390f35b3480156104be57600080fd5b506104c7610e81565b6040516104d49190612f55565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff9190612fc9565b610eaa565b005b34801561051257600080fd5b5061051b610f5c565b6040516105289190612ea1565b60405180910390f35b34801561053d57600080fd5b50610546610f62565b6040516105539190612d4a565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190612ff6565b610f9f565b005b34801561059157600080fd5b506105ac60048036038101906105a79190613023565b61103e565b005b3480156105ba57600080fd5b506105d560048036038101906105d09190612da2565b6110f5565b6040516105e29190612dfd565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d9190612f70565b611113565b60405161061f9190612dfd565b60405180910390f35b34801561063457600080fd5b5061063d611133565b005b34801561064b57600080fd5b50610666600480360381019061066191906130e5565b61120c565b005b34801561067457600080fd5b5061068f600480360381019061068a9190613145565b611346565b60405161069c9190612ea1565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190612f70565b6113cd565b005b6106d661158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a906131d1565b60405180910390fd5b60005b81518110156107f457600160106000848481518110610788576107876131f1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ec9061324f565b915050610766565b5050565b60606040518060400160405280600881526020017f506177546f6f6c73000000000000000000000000000000000000000000000000815250905090565b600061084961084261158e565b8484611596565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061089684848461175f565b610957846108a261158e565b61095285604051806060016040528060288152602001613c5560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090861158e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe29092919063ffffffff16565b611596565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61099f61158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a23906131d1565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a8f61158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906131d1565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7a61158e565b73ffffffffffffffffffffffffffffffffffffffff161480610bf05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd861158e565b73ffffffffffffffffffffffffffffffffffffffff16145b610bf957600080fd5b6000479050610c0781612046565b50565b6000610c54600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b2565b9050919050565b610c6361158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce7906131d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610db661158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906131d1565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610eb261158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f36906131d1565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600981526020017f24506177546f6f6c730000000000000000000000000000000000000000000000815250905090565b610fa761158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b906131d1565b60405180910390fd5b8060188190555050565b61104661158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca906131d1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061110961110261158e565b848461175f565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117461158e565b73ffffffffffffffffffffffffffffffffffffffff1614806111ea5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d261158e565b73ffffffffffffffffffffffffffffffffffffffff16145b6111f357600080fd5b60006111fe30610c0a565b905061120981612120565b50565b61121461158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906131d1565b60405180910390fd5b60005b838390508110156113405781600560008686858181106112c7576112c66131f1565b5b90506020020160208101906112dc9190612f70565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113389061324f565b9150506112a4565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113d561158e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611462576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611459906131d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c890613309565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc9061339b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9061342d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117529190612ea1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906134bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183490613551565b60405180910390fd5b60008111611880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611877906135e3565b60405180910390fd5b611888610e81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118f657506118c6610e81565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce157601560149054906101000a900460ff1661198557611917610e81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90613675565b60405180910390fd5b5b6016548111156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906136e1565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a6e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613773565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b5a5760175481611b0f84610c0a565b611b199190613793565b10611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613839565b60405180910390fd5b5b6000611b6530610c0a565b9050600060185482101590506016548210611b805760165491505b808015611b98575060158054906101000a900460ff16155b8015611bf25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c0a5750601560169054906101000a900460ff165b8015611c605750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cb65750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cde57611cc482612120565b60004790506000811115611cdc57611cdb47612046565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d885750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e3b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e3a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e495760009050611fd0565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ef45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0c57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fb75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fcf57600a54600c81905550600b54600d819055505b5b611fdc84848484612397565b50505050565b600083831115829061202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219190612d4a565b60405180910390fd5b50600083856120399190613859565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120ae573d6000803e3d6000fd5b5050565b60006006548211156120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f0906138ff565b60405180910390fd5b60006121036123c4565b905061211881846123ef90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561215757612156612ae1565b5b6040519080825280602002602001820160405280156121855781602001602082028036833780820191505090505b509050308160008151811061219d5761219c6131f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122689190613934565b8160018151811061227c5761227b6131f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611596565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612347959493929190613a5a565b600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123a5576123a4612439565b5b6123b0848484612476565b806123be576123bd612641565b5b50505050565b60008060006123d1612655565b915091506123e881836123ef90919063ffffffff16565b9250505090565b600061243183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126b4565b905092915050565b6000600c5414801561244d57506000600d54145b61247457600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061248887612717565b9550955095509550955095506124e686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061257b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125c781612827565b6125d184836128e4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161262e9190612ea1565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612689670de0b6b3a76400006006546123ef90919063ffffffff16565b8210156126a757600654670de0b6b3a76400009350935050506126b0565b81819350935050505b9091565b600080831182906126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f29190612d4a565b60405180910390fd5b506000838561270a9190613ae3565b9050809150509392505050565b60008060008060008060008060006127348a600c54600d5461291e565b92509250925060006127446123c4565b905060008060006127578e8787876129b4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe2565b905092915050565b60008082846127d89190613793565b90508381101561281d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281490613b60565b60405180910390fd5b8091505092915050565b60006128316123c4565b905060006128488284612a3d90919063ffffffff16565b905061289c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128f98260065461277f90919063ffffffff16565b600681905550612914816007546127c990919063ffffffff16565b6007819055505050565b60008060008061294a606461293c888a612a3d90919063ffffffff16565b6123ef90919063ffffffff16565b905060006129746064612966888b612a3d90919063ffffffff16565b6123ef90919063ffffffff16565b9050600061299d8261298f858c61277f90919063ffffffff16565b61277f90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129cd8589612a3d90919063ffffffff16565b905060006129e48689612a3d90919063ffffffff16565b905060006129fb8789612a3d90919063ffffffff16565b90506000612a2482612a16858761277f90919063ffffffff16565b61277f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612a4f5760009050612ab1565b60008284612a5d9190613b80565b9050828482612a6c9190613ae3565b14612aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa390613c34565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1982612ad0565b810181811067ffffffffffffffff82111715612b3857612b37612ae1565b5b80604052505050565b6000612b4b612ab7565b9050612b578282612b10565b919050565b600067ffffffffffffffff821115612b7757612b76612ae1565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bb882612b8d565b9050919050565b612bc881612bad565b8114612bd357600080fd5b50565b600081359050612be581612bbf565b92915050565b6000612bfe612bf984612b5c565b612b41565b90508083825260208201905060208402830185811115612c2157612c20612b88565b5b835b81811015612c4a5780612c368882612bd6565b845260208401935050602081019050612c23565b5050509392505050565b600082601f830112612c6957612c68612acb565b5b8135612c79848260208601612beb565b91505092915050565b600060208284031215612c9857612c97612ac1565b5b600082013567ffffffffffffffff811115612cb657612cb5612ac6565b5b612cc284828501612c54565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d05578082015181840152602081019050612cea565b60008484015250505050565b6000612d1c82612ccb565b612d268185612cd6565b9350612d36818560208601612ce7565b612d3f81612ad0565b840191505092915050565b60006020820190508181036000830152612d648184612d11565b905092915050565b6000819050919050565b612d7f81612d6c565b8114612d8a57600080fd5b50565b600081359050612d9c81612d76565b92915050565b60008060408385031215612db957612db8612ac1565b5b6000612dc785828601612bd6565b9250506020612dd885828601612d8d565b9150509250929050565b60008115159050919050565b612df781612de2565b82525050565b6000602082019050612e126000830184612dee565b92915050565b6000819050919050565b6000612e3d612e38612e3384612b8d565b612e18565b612b8d565b9050919050565b6000612e4f82612e22565b9050919050565b6000612e6182612e44565b9050919050565b612e7181612e56565b82525050565b6000602082019050612e8c6000830184612e68565b92915050565b612e9b81612d6c565b82525050565b6000602082019050612eb66000830184612e92565b92915050565b600080600060608486031215612ed557612ed4612ac1565b5b6000612ee386828701612bd6565b9350506020612ef486828701612bd6565b9250506040612f0586828701612d8d565b9150509250925092565b600060ff82169050919050565b612f2581612f0f565b82525050565b6000602082019050612f406000830184612f1c565b92915050565b612f4f81612bad565b82525050565b6000602082019050612f6a6000830184612f46565b92915050565b600060208284031215612f8657612f85612ac1565b5b6000612f9484828501612bd6565b91505092915050565b612fa681612de2565b8114612fb157600080fd5b50565b600081359050612fc381612f9d565b92915050565b600060208284031215612fdf57612fde612ac1565b5b6000612fed84828501612fb4565b91505092915050565b60006020828403121561300c5761300b612ac1565b5b600061301a84828501612d8d565b91505092915050565b6000806000806080858703121561303d5761303c612ac1565b5b600061304b87828801612d8d565b945050602061305c87828801612d8d565b935050604061306d87828801612d8d565b925050606061307e87828801612d8d565b91505092959194509250565b600080fd5b60008083601f8401126130a5576130a4612acb565b5b8235905067ffffffffffffffff8111156130c2576130c161308a565b5b6020830191508360208202830111156130de576130dd612b88565b5b9250929050565b6000806000604084860312156130fe576130fd612ac1565b5b600084013567ffffffffffffffff81111561311c5761311b612ac6565b5b6131288682870161308f565b9350935050602061313b86828701612fb4565b9150509250925092565b6000806040838503121561315c5761315b612ac1565b5b600061316a85828601612bd6565b925050602061317b85828601612bd6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131bb602083612cd6565b91506131c682613185565b602082019050919050565b600060208201905081810360008301526131ea816131ae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a82612d6c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361328c5761328b613220565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132f3602683612cd6565b91506132fe82613297565b604082019050919050565b60006020820190508181036000830152613322816132e6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613385602483612cd6565b915061339082613329565b604082019050919050565b600060208201905081810360008301526133b481613378565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613417602283612cd6565b9150613422826133bb565b604082019050919050565b600060208201905081810360008301526134468161340a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134a9602583612cd6565b91506134b48261344d565b604082019050919050565b600060208201905081810360008301526134d88161349c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061353b602383612cd6565b9150613546826134df565b604082019050919050565b6000602082019050818103600083015261356a8161352e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135cd602983612cd6565b91506135d882613571565b604082019050919050565b600060208201905081810360008301526135fc816135c0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061365f603f83612cd6565b915061366a82613603565b604082019050919050565b6000602082019050818103600083015261368e81613652565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006136cb601c83612cd6565b91506136d682613695565b602082019050919050565b600060208201905081810360008301526136fa816136be565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061375d602383612cd6565b915061376882613701565b604082019050919050565b6000602082019050818103600083015261378c81613750565b9050919050565b600061379e82612d6c565b91506137a983612d6c565b92508282019050808211156137c1576137c0613220565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613823602383612cd6565b915061382e826137c7565b604082019050919050565b6000602082019050818103600083015261385281613816565b9050919050565b600061386482612d6c565b915061386f83612d6c565b925082820390508181111561388757613886613220565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006138e9602a83612cd6565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b60008151905061392e81612bbf565b92915050565b60006020828403121561394a57613949612ac1565b5b60006139588482850161391f565b91505092915050565b6000819050919050565b600061398661398161397c84613961565b612e18565b612d6c565b9050919050565b6139968161396b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139d181612bad565b82525050565b60006139e383836139c8565b60208301905092915050565b6000602082019050919050565b6000613a078261399c565b613a1181856139a7565b9350613a1c836139b8565b8060005b83811015613a4d578151613a3488826139d7565b9750613a3f836139ef565b925050600181019050613a20565b5085935050505092915050565b600060a082019050613a6f6000830188612e92565b613a7c602083018761398d565b8181036040830152613a8e81866139fc565b9050613a9d6060830185612f46565b613aaa6080830184612e92565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613aee82612d6c565b9150613af983612d6c565b925082613b0957613b08613ab4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b4a601b83612cd6565b9150613b5582613b14565b602082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b6000613b8b82612d6c565b9150613b9683612d6c565b9250828202613ba481612d6c565b91508282048414831517613bbb57613bba613220565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1e602183612cd6565b9150613c2982613bc2565b604082019050919050565b60006020820190508181036000830152613c4d81613c11565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013bb27e2686697d62dec0e624b9bd7515b2e1fb874c29ce6b95eca44aeef6e6164736f6c63430008120033