6080604052662386f26fc100006000196200001b919062000348565b6000196200002a9190620003af565b600655600060085560046009556000600a556004600b55600a54600c55600b54600d55600c54600e55600d54600f5573b87458f047219d307e77e27e8661dd607e020082601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b87458f047219d307e77e27e8661dd607e020082601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550655af3107a400060165565b5e620f4800060175564e8d4a510006018553480156200017d57600080fd5b506000620001906200030760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002456200030760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002936200030760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620002f99190620003fb565b60405180910390a362000418565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000355826200030f565b915062000362836200030f565b92508262000375576200037462000319565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003bc826200030f565b9150620003c9836200030f565b925082821015620003df57620003de62000380565b5b828203905092915050565b620003f5816200030f565b82525050565b6000602082019050620004126000830184620003ea565b92915050565b61420a80620004286000396000f3fe6080604052600436106101d15760003560e01c80637f2feddc116100f7578063c3c8cd8011610095578063dd62ed3e11610064578063dd62ed3e1461064b578063dd88800514610688578063ea1644d5146106b1578063f2fde38b146106da576101d8565b8063c3c8cd80146105cb578063c9567bf9146105e2578063ce1a8c3b146105f9578063d0987ff114610622576101d8565b806395d89b41116100d157806395d89b41146104fd578063a5cdee0514610528578063a9059cbb14610551578063bfd792841461058e576101d8565b80637f2feddc1461046a5780638da5cb5b146104a75780638f9a55c0146104d2576101d8565b80632fd689e31161016f57806370a082311161013e57806370a08231146103c2578063715018a6146103ff57806374010ece146104165780637d1db4a51461043f576101d8565b80632fd689e31461032a578063313ce5671461035557806349bd5a5e146103805780636fc3eaec146103ab576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c4578063273123b714610301576101d8565b806306fdde03146101dd578063095ea7b3146102085780630eca118014610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610703565b6040516101ff919061303c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613106565b610740565b60405161023c9190613161565b60405180910390f35b34801561025157600080fd5b5061026c600480360381019061026791906132c4565b61075e565b005b34801561027a57600080fd5b50610283610888565b604051610290919061336c565b60405180910390f35b3480156102a557600080fd5b506102ae6108ae565b6040516102bb9190613396565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906133b1565b6108bd565b6040516102f89190613161565b60405180910390f35b34801561030d57600080fd5b5061032860048036038101906103239190613404565b610996565b005b34801561033657600080fd5b5061033f610a86565b60405161034c9190613396565b60405180910390f35b34801561036157600080fd5b5061036a610a8c565b604051610377919061344d565b60405180910390f35b34801561038c57600080fd5b50610395610a95565b6040516103a29190613477565b60405180910390f35b3480156103b757600080fd5b506103c0610abb565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190613404565b610b8c565b6040516103f69190613396565b60405180910390f35b34801561040b57600080fd5b50610414610bdd565b005b34801561042257600080fd5b5061043d60048036038101906104389190613492565b610d30565b005b34801561044b57600080fd5b50610454610dcf565b6040516104619190613396565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190613404565b610dd5565b60405161049e9190613396565b60405180910390f35b3480156104b357600080fd5b506104bc610ded565b6040516104c99190613477565b60405180910390f35b3480156104de57600080fd5b506104e7610e16565b6040516104f49190613396565b60405180910390f35b34801561050957600080fd5b50610512610e1c565b60405161051f919061303c565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906134eb565b610e59565b005b34801561055d57600080fd5b5061057860048036038101906105739190613106565b610f0b565b6040516105859190613161565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613404565b610f29565b6040516105c29190613161565b60405180910390f35b3480156105d757600080fd5b506105e0610f49565b005b3480156105ee57600080fd5b506105f7611022565b005b34801561060557600080fd5b50610620600480360381019061061b9190613573565b611459565b005b34801561062e57600080fd5b50610649600480360381019061064491906135d3565b611593565b005b34801561065757600080fd5b50610672600480360381019061066d919061363a565b61164a565b60405161067f9190613396565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190613492565b6116d1565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190613492565b611770565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190613404565b61180f565b005b60606040518060400160405280600681526020017f4568746173790000000000000000000000000000000000000000000000000000815250905090565b600061075461074d6119d0565b84846119d8565b6001905092915050565b6107666119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906136c6565b60405180910390fd5b60005b815181101561088457600160106000848481518110610818576108176136e6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061087c90613744565b9150506107f6565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b60006108ca848484611ba1565b61098b846108d66119d0565b610986856040518060600160405280602881526020016141ad60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093c6119d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d19092919063ffffffff16565b6119d8565b600190509392505050565b61099e6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a22906136c6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610afc6119d0565b73ffffffffffffffffffffffffffffffffffffffff161480610b725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5a6119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b610b7b57600080fd5b6000479050610b8981612535565b50565b6000610bd6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a1565b9050919050565b610be56119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c69906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d386119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906136c6565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f4d444d4100000000000000000000000000000000000000000000000000000000815250905090565b610e616119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee5906136c6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000610f1f610f186119d0565b8484611ba1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1614806110005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe86119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b61100957600080fd5b600061101430610b8c565b905061101f8161260f565b50565b61102a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906136c6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118091906137a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b91906137a1565b6040518363ffffffff1660e01b81526004016112289291906137ce565b6020604051808303816000875af1158015611247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b91906137a1565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006112b9610ded565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114616119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e5906136c6565b60405180910390fd5b60005b8383905081101561158d578160056000868685818110611514576115136136e6565b5b90506020020160208101906115299190613404565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061158590613744565b9150506114f1565b50505050565b61159b6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f906136c6565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116d96119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906136c6565b60405180910390fd5b8060188190555050565b6117786119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136c6565b60405180910390fd5b8060178190555050565b6118176119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90613869565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e906138fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9061398d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b949190613396565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613a1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690613ab1565b60405180910390fd5b60008111611cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb990613b43565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d665750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d6f57600080fd5b611d77610ded565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611de55750611db5610ded565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121d057601560149054906101000a900460ff16611e7457611e06610ded565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613bd5565b60405180910390fd5b5b601654811115611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090613c41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f5d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390613cd3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120495760175481611ffe84610b8c565b6120089190613cf3565b10612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613dbb565b60405180910390fd5b5b600061205430610b8c565b905060006018548210159050601654821061206f5760165491505b808015612087575060158054906101000a900460ff16155b80156120e15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120f95750601560169054906101000a900460ff165b801561214f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121a55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121cd576121b38261260f565b600047905060008111156121cb576121ca47612535565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122775750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061232a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123295750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561233857600090506124bf565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123e35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123fb57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124a65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124be57600a54600c81905550600b54600d819055505b5b6124cb84848484612886565b50505050565b6000838311158290612519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612510919061303c565b60405180910390fd5b50600083856125289190613ddb565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561259d573d6000803e3d6000fd5b5050565b60006006548211156125e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125df90613e81565b60405180910390fd5b60006125f26128b3565b905061260781846128de90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561264657612645613181565b5b6040519080825280602002602001820160405280156126745781602001602082028036833780820191505090505b509050308160008151811061268c5761268b6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612733573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275791906137a1565b8160018151811061276b5761276a6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127d230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612836959493929190613f9a565b600060405180830381600087803b15801561285057600080fd5b505af1158015612864573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061289457612893612928565b5b61289f848484612965565b806128ad576128ac612b30565b5b50505050565b60008060006128c0612b44565b915091506128d781836128de90919063ffffffff16565b9250505090565b600061292083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ba0565b905092915050565b6000600c5414801561293c57506000600d54145b61296357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061297787612c03565b9550955095509550955095506129d586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab681612d13565b612ac08483612dd0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b1d9190613396565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc100009050612b76662386f26fc100006006546128de90919063ffffffff16565b821015612b9357600654662386f26fc10000935093505050612b9c565b81819350935050505b9091565b60008083118290612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde919061303c565b60405180910390fd5b5060008385612bf69190614023565b9050809150509392505050565b6000806000806000806000806000612c208a600c54600d54612e0a565b9250925092506000612c306128b3565b90506000806000612c438e878787612ea0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124d1565b905092915050565b6000808284612cc49190613cf3565b905083811015612d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d00906140a0565b60405180910390fd5b8091505092915050565b6000612d1d6128b3565b90506000612d348284612f2990919063ffffffff16565b9050612d8881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612de582600654612c6b90919063ffffffff16565b600681905550612e0081600754612cb590919063ffffffff16565b6007819055505050565b600080600080612e366064612e28888a612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e606064612e52888b612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e8982612e7b858c612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612eb98589612f2990919063ffffffff16565b90506000612ed08689612f2990919063ffffffff16565b90506000612ee78789612f2990919063ffffffff16565b90506000612f1082612f028587612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f3b5760009050612f9d565b60008284612f4991906140c0565b9050828482612f589190614023565b14612f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8f9061418c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdd578082015181840152602081019050612fc2565b83811115612fec576000848401525b50505050565b6000601f19601f8301169050919050565b600061300e82612fa3565b6130188185612fae565b9350613028818560208601612fbf565b61303181612ff2565b840191505092915050565b600060208201905081810360008301526130568184613003565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061309d82613072565b9050919050565b6130ad81613092565b81146130b857600080fd5b50565b6000813590506130ca816130a4565b92915050565b6000819050919050565b6130e3816130d0565b81146130ee57600080fd5b50565b600081359050613100816130da565b92915050565b6000806040838503121561311d5761311c613068565b5b600061312b858286016130bb565b925050602061313c858286016130f1565b9150509250929050565b60008115159050919050565b61315b81613146565b82525050565b60006020820190506131766000830184613152565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131b982612ff2565b810181811067ffffffffffffffff821117156131d8576131d7613181565b5b80604052505050565b60006131eb61305e565b90506131f782826131b0565b919050565b600067ffffffffffffffff82111561321757613216613181565b5b602082029050602081019050919050565b600080fd5b600061324061323b846131fc565b6131e1565b9050808382526020820190506020840283018581111561326357613262613228565b5b835b8181101561328c578061327888826130bb565b845260208401935050602081019050613265565b5050509392505050565b600082601f8301126132ab576132aa61317c565b5b81356132bb84826020860161322d565b91505092915050565b6000602082840312156132da576132d9613068565b5b600082013567ffffffffffffffff8111156132f8576132f761306d565b5b61330484828501613296565b91505092915050565b6000819050919050565b600061333261332d61332884613072565b61330d565b613072565b9050919050565b600061334482613317565b9050919050565b600061335682613339565b9050919050565b6133668161334b565b82525050565b6000602082019050613381600083018461335d565b92915050565b613390816130d0565b82525050565b60006020820190506133ab6000830184613387565b92915050565b6000806000606084860312156133ca576133c9613068565b5b60006133d8868287016130bb565b93505060206133e9868287016130bb565b92505060406133fa868287016130f1565b9150509250925092565b60006020828403121561341a57613419613068565b5b6000613428848285016130bb565b91505092915050565b600060ff82169050919050565b61344781613431565b82525050565b6000602082019050613462600083018461343e565b92915050565b61347181613092565b82525050565b600060208201905061348c6000830184613468565b92915050565b6000602082840312156134a8576134a7613068565b5b60006134b6848285016130f1565b91505092915050565b6134c881613146565b81146134d357600080fd5b50565b6000813590506134e5816134bf565b92915050565b60006020828403121561350157613500613068565b5b600061350f848285016134d6565b91505092915050565b600080fd5b60008083601f8401126135335761353261317c565b5b8235905067ffffffffffffffff8111156135505761354f613518565b5b60208301915083602082028301111561356c5761356b613228565b5b9250929050565b60008060006040848603121561358c5761358b613068565b5b600084013567ffffffffffffffff8111156135aa576135a961306d565b5b6135b68682870161351d565b935093505060206135c9868287016134d6565b9150509250925092565b600080600080608085870312156135ed576135ec613068565b5b60006135fb878288016130f1565b945050602061360c878288016130f1565b935050604061361d878288016130f1565b925050606061362e878288016130f1565b91505092959194509250565b6000806040838503121561365157613650613068565b5b600061365f858286016130bb565b9250506020613670858286016130bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136b0602083612fae565b91506136bb8261367a565b602082019050919050565b600060208201905081810360008301526136df816136a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061374f826130d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361378157613780613715565b5b600182019050919050565b60008151905061379b816130a4565b92915050565b6000602082840312156137b7576137b6613068565b5b60006137c58482850161378c565b91505092915050565b60006040820190506137e36000830185613468565b6137f06020830184613468565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613853602683612fae565b915061385e826137f7565b604082019050919050565b6000602082019050818103600083015261388281613846565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e5602483612fae565b91506138f082613889565b604082019050919050565b60006020820190508181036000830152613914816138d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613977602283612fae565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a09602583612fae565b9150613a14826139ad565b604082019050919050565b60006020820190508181036000830152613a38816139fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a9b602383612fae565b9150613aa682613a3f565b604082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2d602983612fae565b9150613b3882613ad1565b604082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bbf603f83612fae565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c2b601c83612fae565b9150613c3682613bf5565b602082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cbd602383612fae565b9150613cc882613c61565b604082019050919050565b60006020820190508181036000830152613cec81613cb0565b9050919050565b6000613cfe826130d0565b9150613d09836130d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d3e57613d3d613715565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613da5602383612fae565b9150613db082613d49565b604082019050919050565b60006020820190508181036000830152613dd481613d98565b9050919050565b6000613de6826130d0565b9150613df1836130d0565b925082821015613e0457613e03613715565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e6b602a83612fae565b9150613e7682613e0f565b604082019050919050565b60006020820190508181036000830152613e9a81613e5e565b9050919050565b6000819050919050565b6000613ec6613ec1613ebc84613ea1565b61330d565b6130d0565b9050919050565b613ed681613eab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f1181613092565b82525050565b6000613f238383613f08565b60208301905092915050565b6000602082019050919050565b6000613f4782613edc565b613f518185613ee7565b9350613f5c83613ef8565b8060005b83811015613f8d578151613f748882613f17565b9750613f7f83613f2f565b925050600181019050613f60565b5085935050505092915050565b600060a082019050613faf6000830188613387565b613fbc6020830187613ecd565b8181036040830152613fce8186613f3c565b9050613fdd6060830185613468565b613fea6080830184613387565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402e826130d0565b9150614039836130d0565b92508261404957614048613ff4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408a601b83612fae565b915061409582614054565b602082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b60006140cb826130d0565b91506140d6836130d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410f5761410e613715565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614176602183612fae565b91506141818261411a565b604082019050919050565b600060208201905081810360008301526141a581614169565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a8a9ee89a92fcc2f85c81eb12218345daea913023d627ad3b19c53a8c2865fe64736f6c634300080e0033