60a060405260016009556004600a556004600b556001600c556958f03ee118a13e800000600d556958f03ee118a13e800000600e5568a2a15d09519be00000600f556958f03ee118a13e8000006010557316cd83c17069585613588de0dc32979aeb5a9c51601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260156101000a81548160ff0219169083151502179055503480156200010f57600080fd5b506040518060400160405280600981526020017f526164696f7265756d00000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f546865526164696f00000000000000000000000000000000000000000000000081525081600390816200018d919062000b1a565b5080600490816200019f919062000b1a565b505050620001c2620001b66200045760201b60201c565b6200045f60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f919062000c6b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000c6b565b6040518363ffffffff1660e01b8152600401620002fc92919062000cae565b6020604051808303816000875af11580156200031c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000342919062000c6b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620003db620003cd6200052560201b60201c565b60016200054f60201b60201c565b620003ee3060016200054f60201b60201c565b62000423601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200054f60201b60201c565b6200044f620004376200052560201b60201c565b6a115eec47f6cf7e350000006200071e60201b60201c565b505062000f3a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200055f6200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005856200052560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d59062000d3c565b60405180910390fd5b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150362000673576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200066a9062000dd4565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000712919062000e13565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007879062000e80565b60405180910390fd5b620007a4600083836200089660201b60201c565b8060026000828254620007b8919062000ed1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200080f919062000ed1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000876919062000f1d565b60405180910390a362000892600083836200089b60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092257607f821691505b602082108103620009385762000937620008da565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000963565b620009ae868362000963565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009fb620009f5620009ef84620009c6565b620009d0565b620009c6565b9050919050565b6000819050919050565b62000a1783620009da565b62000a2f62000a268262000a02565b84845462000970565b825550505050565b600090565b62000a4662000a37565b62000a5381848462000a0c565b505050565b5b8181101562000a7b5762000a6f60008262000a3c565b60018101905062000a59565b5050565b601f82111562000aca5762000a94816200093e565b62000a9f8462000953565b8101602085101562000aaf578190505b62000ac762000abe8562000953565b83018262000a58565b50505b505050565b600082821c905092915050565b600062000aef6000198460080262000acf565b1980831691505092915050565b600062000b0a838362000adc565b9150826002028217905092915050565b62000b2582620008a0565b67ffffffffffffffff81111562000b415762000b40620008ab565b5b62000b4d825462000909565b62000b5a82828562000a7f565b600060209050601f83116001811462000b92576000841562000b7d578287015190505b62000b89858262000afc565b86555062000bf9565b601f19841662000ba2866200093e565b60005b8281101562000bcc5784890151825560018201915060208501945060208101905062000ba5565b8683101562000bec578489015162000be8601f89168262000adc565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c338262000c06565b9050919050565b62000c458162000c26565b811462000c5157600080fd5b50565b60008151905062000c658162000c3a565b92915050565b60006020828403121562000c845762000c8362000c01565b5b600062000c948482850162000c54565b91505092915050565b62000ca88162000c26565b82525050565b600060408201905062000cc5600083018562000c9d565b62000cd4602083018462000c9d565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d2460208362000cdb565b915062000d318262000cec565b602082019050919050565b6000602082019050818103600083015262000d578162000d15565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b600062000dbc602a8362000cdb565b915062000dc98262000d5e565b604082019050919050565b6000602082019050818103600083015262000def8162000dad565b9050919050565b60008115159050919050565b62000e0d8162000df6565b82525050565b600060208201905062000e2a600083018462000e02565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e68601f8362000cdb565b915062000e758262000e30565b602082019050919050565b6000602082019050818103600083015262000e9b8162000e59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ede82620009c6565b915062000eeb83620009c6565b925082820190508082111562000f065762000f0562000ea2565b5b92915050565b62000f1781620009c6565b82525050565b600060208201905062000f34600083018462000f0c565b92915050565b608051613e9962000f8060003960008181610ee001528181611c6801528181611e7201528181611fb80152818161206b015281816121ae01526122b60152613e996000f3fe6080604052600436106102345760003560e01c806370105c3b1161012e578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e14610850578063e2f456051461088d578063e6c75f71146108b8578063f2fde38b146108e3578063f5b01e151461090c5761023b565b8063a9059cbb1461076b578063b45e83f8146107a8578063c0246668146107d3578063c49b9a80146107fc578063ccb61358146108255761023b565b80638da5cb5b116100f25780638da5cb5b146106845780638ea5220f146106af57806391d55f41146106da57806395d89b4114610703578063a457c2d71461072e5761023b565b806370105c3b146105b157806370a08231146105da578063715018a6146106175780637e7613771461062e57806385141a77146106595761023b565b80631816467f116101bc5780634a74bb02116101805780634a74bb02146104c85780634b8ce602146104f35780634fbee1931461051e578063556482091461055b5780635aa821a9146105865761023b565b80631816467f146103cf57806323b872dd146103f8578063313ce56714610435578063395093511461046057806349bd5a5e1461049d5761023b565b806309e89af71161020357806309e89af7146102fe5780631127ae3b1461032757806316216e5f146103505780631694505e1461037957806318160ddd146103a45761023b565b806301143fea1461024057806302259e9e1461026b57806306fdde0314610296578063095ea7b3146102c15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610935565b6040516102629190612c8a565b60405180910390f35b34801561027757600080fd5b5061028061093b565b60405161028d9190612c8a565b60405180910390f35b3480156102a257600080fd5b506102ab610941565b6040516102b89190612d35565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190612de6565b6109d3565b6040516102f59190612e41565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612e5c565b6109f1565b005b34801561033357600080fd5b5061034e60048036038101906103499190612e89565b610a77565b005b34801561035c57600080fd5b5061037760048036038101906103729190612e5c565b610b5b565b005b34801561038557600080fd5b5061038e610c41565b60405161039b9190612f28565b60405180910390f35b3480156103b057600080fd5b506103b9610c67565b6040516103c69190612c8a565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612f81565b610c71565b005b34801561040457600080fd5b5061041f600480360381019061041a9190612fae565b610d31565b60405161042c9190612e41565b60405180910390f35b34801561044157600080fd5b5061044a610e29565b604051610457919061301d565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190612de6565b610e32565b6040516104949190612e41565b60405180910390f35b3480156104a957600080fd5b506104b2610ede565b6040516104bf9190613047565b60405180910390f35b3480156104d457600080fd5b506104dd610f02565b6040516104ea9190612e41565b60405180910390f35b3480156104ff57600080fd5b50610508610f15565b6040516105159190612c8a565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613062565b610f1b565b6040516105529190612e41565b60405180910390f35b34801561056757600080fd5b50610570610f71565b60405161057d9190612c8a565b60405180910390f35b34801561059257600080fd5b5061059b610f77565b6040516105a89190612c8a565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190612e89565b610f7d565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190613062565b611061565b60405161060e9190612c8a565b60405180910390f35b34801561062357600080fd5b5061062c6110a9565b005b34801561063a57600080fd5b50610643611131565b6040516106509190612c8a565b60405180910390f35b34801561066557600080fd5b5061066e611137565b60405161067b9190613047565b60405180910390f35b34801561069057600080fd5b5061069961115d565b6040516106a69190613047565b60405180910390f35b3480156106bb57600080fd5b506106c4611187565b6040516106d1919061309e565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612e5c565b6111ad565b005b34801561070f57600080fd5b506107186112d4565b6040516107259190612d35565b60405180910390f35b34801561073a57600080fd5b5061075560048036038101906107509190612de6565b611366565b6040516107629190612e41565b60405180910390f35b34801561077757600080fd5b50610792600480360381019061078d9190612de6565b611451565b60405161079f9190612e41565b60405180910390f35b3480156107b457600080fd5b506107bd61146f565b6040516107ca9190612c8a565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f591906130e5565b611475565b005b34801561080857600080fd5b50610823600480360381019061081e9190613125565b61162c565b005b34801561083157600080fd5b5061083a6116fc565b6040516108479190612c8a565b60405180910390f35b34801561085c57600080fd5b5061087760048036038101906108729190613152565b611702565b6040516108849190612c8a565b60405180910390f35b34801561089957600080fd5b506108a2611789565b6040516108af9190612c8a565b60405180910390f35b3480156108c457600080fd5b506108cd61178f565b6040516108da9190612c8a565b60405180910390f35b3480156108ef57600080fd5b5061090a60048036038101906109059190613062565b611795565b005b34801561091857600080fd5b50610933600480360381019061092e9190612e5c565b61188c565b005b600a5481565b600e5481565b606060038054610950906131c1565b80601f016020809104026020016040519081016040528092919081815260200182805461097c906131c1565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b5050505050905090565b60006109e76109e0611972565b848461197a565b6001905092915050565b6109f9611972565b73ffffffffffffffffffffffffffffffffffffffff16610a1761115d565b73ffffffffffffffffffffffffffffffffffffffff1614610a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a649061323e565b60405180910390fd5b80600f8190555050565b610a7f611972565b73ffffffffffffffffffffffffffffffffffffffff16610a9d61115d565b73ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea9061323e565b60405180910390fd5b6005610b088284611b4390919063ffffffff16565b1115610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b40906132aa565b60405180910390fd5b8160098190555080600a819055505050565b610b63611972565b73ffffffffffffffffffffffffffffffffffffffff16610b8161115d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce9061323e565b60405180910390fd5b80600e81905550610bfa6101f4610bec610c67565b611b5990919063ffffffff16565b600e541015610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3590613316565b60405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610c79611972565b73ffffffffffffffffffffffffffffffffffffffff16610c9761115d565b73ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061323e565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d3e848484611b6f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d89611972565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e00906133a8565b60405180910390fd5b610e1d85610e15611972565b85840361197a565b60019150509392505050565b60006012905090565b6000610ed4610e3f611972565b848460016000610e4d611972565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ecf91906133f7565b61197a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601260159054906101000a900460ff1681565b60075481565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b600d5481565b610f85611972565b73ffffffffffffffffffffffffffffffffffffffff16610fa361115d565b73ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff09061323e565b60405180910390fd5b600561100e8284611b4390919063ffffffff16565b111561104f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611046906132aa565b60405180910390fd5b81600b8190555080600c819055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110b1611972565b73ffffffffffffffffffffffffffffffffffffffff166110cf61115d565b73ffffffffffffffffffffffffffffffffffffffff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c9061323e565b60405180910390fd5b61112f6000612413565b565b600c5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111b5611972565b73ffffffffffffffffffffffffffffffffffffffff166111d361115d565b73ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112209061323e565b60405180910390fd5b60006010549050816010819055506112536101f4611245610c67565b611b5990919063ffffffff16565b6010541015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613316565b60405180910390fd5b7f0a7c714b6801281a6e2610a6371ac6a5da9a5947616d74f4aa3ad1d289278e7381836040516112c892919061342b565b60405180910390a15050565b6060600480546112e3906131c1565b80601f016020809104026020016040519081016040528092919081815260200182805461130f906131c1565b801561135c5780601f106113315761010080835404028352916020019161135c565b820191906000526020600020905b81548152906001019060200180831161133f57829003601f168201915b5050505050905090565b60008060016000611375611972565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906134c6565b60405180910390fd5b61144661143d611972565b8585840361197a565b600191505092915050565b600061146561145e611972565b8484611b6f565b6001905092915050565b600b5481565b61147d611972565b73ffffffffffffffffffffffffffffffffffffffff1661149b61115d565b73ffffffffffffffffffffffffffffffffffffffff16146114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e89061323e565b60405180910390fd5b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a90613558565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516116209190612e41565b60405180910390a25050565b611634611972565b73ffffffffffffffffffffffffffffffffffffffff1661165261115d565b73ffffffffffffffffffffffffffffffffffffffff16146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f9061323e565b60405180910390fd5b80601260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516116f19190612e41565b60405180910390a150565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b60105481565b61179d611972565b73ffffffffffffffffffffffffffffffffffffffff166117bb61115d565b73ffffffffffffffffffffffffffffffffffffffff1614611811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118089061323e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611877906135ea565b60405180910390fd5b61188981612413565b50565b611894611972565b73ffffffffffffffffffffffffffffffffffffffff166118b261115d565b73ffffffffffffffffffffffffffffffffffffffff1614611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff9061323e565b60405180910390fd5b80600d8190555061192b6101f461191d610c67565b611b5990919063ffffffff16565b600d54101561196f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196690613316565b60405180910390fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e09061367c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f9061370e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b369190612c8a565b60405180910390a3505050565b60008183611b5191906133f7565b905092915050565b60008183611b67919061375d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613800565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4490613892565b60405180910390fd5b60008103611c6657611c61838360006124d9565b61240e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d0b5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d615750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dc5576000611d7183611061565b90506010548282611d8291906133f7565b1115611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613924565b60405180910390fd5b505b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e695750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ec057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f0b57600d54811115611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906139b6565b60405180910390fd5b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611faf5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561205157600e54811115612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204790613a48565b60405180910390fd5b5b601260149054906101000a900460ff161580156120b957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156120d15750601260159054906101000a900460ff165b80156120f05750600f546008541015806120ef5750600f5460075410155b5b156120fe576120fd612758565b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121a25750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124025760008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122b4576000600a541115612259576122326064612224600a54876128dc90919063ffffffff16565b611b5990919063ffffffff16565b9250826008600082825461224691906133f7565b925050819055506122588630856124d9565b5b600060095411156122b35761228c606461227e600954876128dc90919063ffffffff16565b611b5990919063ffffffff16565b915081600760008282546122a091906133f7565b925050819055506122b28630846124d9565b5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123c5576000600b5411156123615761233a606461232c600b54876128dc90919063ffffffff16565b611b5990919063ffffffff16565b9250826008600082825461234e91906133f7565b925050819055506123608630856124d9565b5b6000600c5411156123c4576123946064612386600c54876128dc90919063ffffffff16565b611b5990919063ffffffff16565b90506123c386601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836124d9565b5b5b6123fc6123ed826123df8587611b4390919063ffffffff16565b611b4390919063ffffffff16565b856128f290919063ffffffff16565b93505050505b61240d8383836124d9565b5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90613800565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae90613892565b60405180910390fd5b6125c2838383612908565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263f90613ada565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126db91906133f7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161273f9190612c8a565b60405180910390a361275284848461290d565b50505050565b6001601260146101000a81548160ff021916908315150217905550600061277e30611061565b9050600f54600754101580156127965750600f548110155b156128595760006127b36002600f54611b5990919063ffffffff16565b905060006127cc82600f546128f290919063ffffffff16565b905060004790506127dd8330612912565b60006127f282476128f290919063ffffffff16565b90506127fe8382612b8c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161283193929190613afa565b60405180910390a1600f546007600082825461284d9190613b31565b92505081905550505050505b600f546008541015801561286f5750600f548110155b156128be576128a2600f54601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612912565b600f54600860008282546128b69190613b31565b925050819055505b506000601260146101000a81548160ff021916908315150217905550565b600081836128ea9190613b65565b905092915050565b600081836129009190613b31565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561292f5761292e613ba7565b5b60405190808252806020026020018201604052801561295d5781602001602082028036833780820191505090505b509050308160008151811061297557612974613bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a409190613c1a565b81600181518110612a5457612a53613bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082612abb30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611702565b1015612af157612af030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001961197a565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486426040518663ffffffff1660e01b8152600401612b55959493929190613d40565b600060405180830381600087803b158015612b6f57600080fd5b505af1158015612b83573d6000803e3d6000fd5b50505050505050565b612bb930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461197a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612c0561115d565b426040518863ffffffff1660e01b8152600401612c2796959493929190613d9a565b60606040518083038185885af1158015612c45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c6a9190613e10565b5050505050565b6000819050919050565b612c8481612c71565b82525050565b6000602082019050612c9f6000830184612c7b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cdf578082015181840152602081019050612cc4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d0782612ca5565b612d118185612cb0565b9350612d21818560208601612cc1565b612d2a81612ceb565b840191505092915050565b60006020820190508181036000830152612d4f8184612cfc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d8782612d5c565b9050919050565b612d9781612d7c565b8114612da257600080fd5b50565b600081359050612db481612d8e565b92915050565b612dc381612c71565b8114612dce57600080fd5b50565b600081359050612de081612dba565b92915050565b60008060408385031215612dfd57612dfc612d57565b5b6000612e0b85828601612da5565b9250506020612e1c85828601612dd1565b9150509250929050565b60008115159050919050565b612e3b81612e26565b82525050565b6000602082019050612e566000830184612e32565b92915050565b600060208284031215612e7257612e71612d57565b5b6000612e8084828501612dd1565b91505092915050565b60008060408385031215612ea057612e9f612d57565b5b6000612eae85828601612dd1565b9250506020612ebf85828601612dd1565b9150509250929050565b6000819050919050565b6000612eee612ee9612ee484612d5c565b612ec9565b612d5c565b9050919050565b6000612f0082612ed3565b9050919050565b6000612f1282612ef5565b9050919050565b612f2281612f07565b82525050565b6000602082019050612f3d6000830184612f19565b92915050565b6000612f4e82612d5c565b9050919050565b612f5e81612f43565b8114612f6957600080fd5b50565b600081359050612f7b81612f55565b92915050565b600060208284031215612f9757612f96612d57565b5b6000612fa584828501612f6c565b91505092915050565b600080600060608486031215612fc757612fc6612d57565b5b6000612fd586828701612da5565b9350506020612fe686828701612da5565b9250506040612ff786828701612dd1565b9150509250925092565b600060ff82169050919050565b61301781613001565b82525050565b6000602082019050613032600083018461300e565b92915050565b61304181612d7c565b82525050565b600060208201905061305c6000830184613038565b92915050565b60006020828403121561307857613077612d57565b5b600061308684828501612da5565b91505092915050565b61309881612f43565b82525050565b60006020820190506130b3600083018461308f565b92915050565b6130c281612e26565b81146130cd57600080fd5b50565b6000813590506130df816130b9565b92915050565b600080604083850312156130fc576130fb612d57565b5b600061310a85828601612da5565b925050602061311b858286016130d0565b9150509250929050565b60006020828403121561313b5761313a612d57565b5b6000613149848285016130d0565b91505092915050565b6000806040838503121561316957613168612d57565b5b600061317785828601612da5565b925050602061318885828601612da5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131d957607f821691505b6020821081036131ec576131eb613192565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613228602083612cb0565b9150613233826131f2565b602082019050919050565b600060208201905081810360008301526132578161321b565b9050919050565b7f74617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000613294600c83612cb0565b915061329f8261325e565b602082019050919050565b600060208201905081810360008301526132c381613287565b9050919050565b7f76616c756520746f6f206c6f7700000000000000000000000000000000000000600082015250565b6000613300600d83612cb0565b915061330b826132ca565b602082019050919050565b6000602082019050818103600083015261332f816132f3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613392602883612cb0565b915061339d82613336565b604082019050919050565b600060208201905081810360008301526133c181613385565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340282612c71565b915061340d83612c71565b9250828201905080821115613425576134246133c8565b5b92915050565b60006040820190506134406000830185612c7b565b61344d6020830184612c7b565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006134b0602583612cb0565b91506134bb82613454565b604082019050919050565b600060208201905081810360008301526134df816134a3565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613542602a83612cb0565b915061354d826134e6565b604082019050919050565b6000602082019050818103600083015261357181613535565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135d4602683612cb0565b91506135df82613578565b604082019050919050565b60006020820190508181036000830152613603816135c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613666602483612cb0565b91506136718261360a565b604082019050919050565b6000602082019050818103600083015261369581613659565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136f8602283612cb0565b91506137038261369c565b604082019050919050565b60006020820190508181036000830152613727816136eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061376882612c71565b915061377383612c71565b9250826137835761378261372e565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137ea602583612cb0565b91506137f58261378e565b604082019050919050565b60006020820190508181036000830152613819816137dd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061387c602383612cb0565b915061388782613820565b604082019050919050565b600060208201905081810360008301526138ab8161386f565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b600061390e602483612cb0565b9150613919826138b2565b604082019050919050565b6000602082019050818103600083015261393d81613901565b9050919050565b7f616d6f756e74206578636565647320746865206d61784275795472616e73616360008201527f74696f6e416d6f756e742e000000000000000000000000000000000000000000602082015250565b60006139a0602b83612cb0565b91506139ab82613944565b604082019050919050565b600060208201905081810360008301526139cf81613993565b9050919050565b7f616d6f756e74206578636565647320746865206d617853656c6c5472616e736160008201527f6374696f6e416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613a32602c83612cb0565b9150613a3d826139d6565b604082019050919050565b60006020820190508181036000830152613a6181613a25565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ac4602683612cb0565b9150613acf82613a68565b604082019050919050565b60006020820190508181036000830152613af381613ab7565b9050919050565b6000606082019050613b0f6000830186612c7b565b613b1c6020830185612c7b565b613b296040830184612c7b565b949350505050565b6000613b3c82612c71565b9150613b4783612c71565b9250828203905081811115613b5f57613b5e6133c8565b5b92915050565b6000613b7082612c71565b9150613b7b83612c71565b9250828202613b8981612c71565b91508282048414831517613ba057613b9f6133c8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c1481612d8e565b92915050565b600060208284031215613c3057613c2f612d57565b5b6000613c3e84828501613c05565b91505092915050565b6000819050919050565b6000613c6c613c67613c6284613c47565b612ec9565b612c71565b9050919050565b613c7c81613c51565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cb781612d7c565b82525050565b6000613cc98383613cae565b60208301905092915050565b6000602082019050919050565b6000613ced82613c82565b613cf78185613c8d565b9350613d0283613c9e565b8060005b83811015613d33578151613d1a8882613cbd565b9750613d2583613cd5565b925050600181019050613d06565b5085935050505092915050565b600060a082019050613d556000830188612c7b565b613d626020830187613c73565b8181036040830152613d748186613ce2565b9050613d836060830185613038565b613d906080830184612c7b565b9695505050505050565b600060c082019050613daf6000830189613038565b613dbc6020830188612c7b565b613dc96040830187613c73565b613dd66060830186613c73565b613de36080830185613038565b613df060a0830184612c7b565b979650505050505050565b600081519050613e0a81612dba565b92915050565b600080600060608486031215613e2957613e28612d57565b5b6000613e3786828701613dfb565b9350506020613e4886828701613dfb565b9250506040613e5986828701613dfb565b915050925092509256fea264697066735822122067927de165815f12bd872e9c84e5466d438d93e187f0c093843b54fe5fdf16df64736f6c63430008110033