60806040526012600a62000014919062000f82565b633b9aca0062000025919062000fd3565b600255737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600b55600f600c55620000be6032620000aa600160025462000bf560201b620019621790919060201c565b62000c7860201b620019dc1790919060201c565b600d55620000f96107d0620000e5600160025462000bf560201b620019621790919060201c565b62000c7860201b620019dc1790919060201c565b600e556032600f5560326012556001601360006101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506000601360026101000a81548160ff0219169083151502179055506001601360036101000a81548160ff0219169083151502179055506001601360046101000a81548160ff021916908315150217905550600267ffffffffffffffff811115620001ab57620001aa62001034565b5b604051908082528060200260200182016040528015620001da5781602001602082028036833780820191505090505b5060149080519060200190620001f292919062000d3a565b503480156200020057600080fd5b506200021162000cca60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c29190620010cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004719190620010cd565b306040518363ffffffff1660e01b81526004016200049192919062001110565b6020604051808303816000875af1158015620004b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d79190620010cd565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460006200054c62000cca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60046000620006e162000cca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073ef8ec5a3f117f7ce4a93fea388875a9f8af874b7601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef8ec5a3f117f7ce4a93fea388875a9f8af874b7601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200090162000cca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025460036000620009e362000cca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555030601460008154811062000a3a5762000a396200113d565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000af0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b169190620010cd565b601460018154811062000b2e5762000b2d6200113d565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b8662000cca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000be791906200117d565b60405180910390a362001357565b600080830362000c09576000905062000c72565b6000828462000c19919062000fd3565b905082848262000c2a9190620011c9565b1462000c6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c649062001288565b60405180910390fd5b809150505b92915050565b600062000cc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cd260201b60201c565b905092915050565b600033905090565b6000808311829062000d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d13919062001333565b60405180910390fd5b506000838562000d2d9190620011c9565b9050809150509392505050565b82805482825590600052602060002090810192821562000db6579160200282015b8281111562000db55782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000d5b565b5b50905062000dc5919062000dc9565b5090565b5b8082111562000de457600081600090555060010162000dca565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e765780860481111562000e4e5762000e4d62000de8565b5b600185161562000e5e5780820291505b808102905062000e6e8562000e17565b945062000e2e565b94509492505050565b60008262000e91576001905062000f64565b8162000ea1576000905062000f64565b816001811462000eba576002811462000ec55762000efb565b600191505062000f64565b60ff84111562000eda5762000ed962000de8565b5b8360020a91508482111562000ef45762000ef362000de8565b5b5062000f64565b5060208310610133831016604e8410600b841016171562000f355782820a90508381111562000f2f5762000f2e62000de8565b5b62000f64565b62000f44848484600162000e24565b9250905081840481111562000f5e5762000f5d62000de8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f8f8262000f6b565b915062000f9c8362000f75565b925062000fcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e7f565b905092915050565b600062000fe08262000f6b565b915062000fed8362000f6b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001029576200102862000de8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010958262001068565b9050919050565b620010a78162001088565b8114620010b357600080fd5b50565b600081519050620010c7816200109c565b92915050565b600060208284031215620010e657620010e562001063565b5b6000620010f684828501620010b6565b91505092915050565b6200110a8162001088565b82525050565b6000604082019050620011276000830185620010ff565b620011366020830184620010ff565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620011778162000f6b565b82525050565b60006020820190506200119460008301846200116c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011d68262000f6b565b9150620011e38362000f6b565b925082620011f657620011f56200119a565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200127060218362001201565b91506200127d8262001212565b604082019050919050565b60006020820190508181036000830152620012a38162001261565b9050919050565b600081519050919050565b60005b83811015620012d5578082015181840152602081019050620012b8565b60008484015250505050565b6000601f19601f8301169050919050565b6000620012ff82620012aa565b6200130b818562001201565b93506200131d818560208601620012b5565b6200132881620012e1565b840191505092915050565b600060208201905081810360008301526200134f8184620012f2565b905092915050565b61375d80620013676000396000f3fe6080604052600436106101bb5760003560e01c80639adce734116100ec578063e01af92c1161008a578063f3096f4911610064578063f3096f491461060f578063f8b45b0514610638578063fbf586d414610663578063fd3c2620146106a0576101c2565b8063e01af92c14610594578063f275f64b146105bd578063f2fde38b146105e6576101c2565b8063acfaec0d116100c6578063acfaec0d146104dc578063b3bdd0aa14610505578063dc1052e21461052e578063dd62ed3e14610557576101c2565b80639adce7341461044d5780639d0014b114610476578063a9059cbb1461049f576101c2565b80635d0044ca11610159578063715018a611610133578063715018a6146103b75780638cd09d50146103ce5780638da5cb5b146103f757806395d89b4114610422576101c2565b80635d0044ca14610314578063656497401461033d57806370a082311461037a576101c2565b80631f53ac02116101955780631f53ac021461025a57806323b872dd14610283578063313ce567146102c057806344309fca146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106c9565b6040516101e99190612b51565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c11565b610706565b6040516102269190612c6c565b60405180910390f35b34801561023b57600080fd5b50610244610806565b6040516102519190612c96565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612cb1565b610810565b005b34801561028f57600080fd5b506102aa60048036038101906102a59190612cde565b6108d0565b6040516102b79190612c6c565b60405180910390f35b3480156102cc57600080fd5b506102d5610ae5565b6040516102e29190612d4d565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d9190612d94565b610aee565b005b34801561032057600080fd5b5061033b60048036038101906103369190612dc1565b610b87565b005b34801561034957600080fd5b50610364600480360381019061035f9190612c11565b610c0d565b6040516103719190612c6c565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612cb1565b610d96565b6040516103ae9190612c96565b60405180910390f35b3480156103c357600080fd5b506103cc610ddf565b005b3480156103da57600080fd5b506103f560048036038101906103f09190612dc1565b610f19565b005b34801561040357600080fd5b5061040c610fe3565b6040516104199190612dfd565b60405180910390f35b34801561042e57600080fd5b5061043761100c565b6040516104449190612b51565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612d94565b611049565b005b34801561048257600080fd5b5061049d60048036038101906104989190612dc1565b6110e2565b005b3480156104ab57600080fd5b506104c660048036038101906104c19190612c11565b611168565b6040516104d39190612c6c565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612cb1565b611184565b005b34801561051157600080fd5b5061052c60048036038101906105279190612e7d565b611244565b005b34801561053a57600080fd5b5061055560048036038101906105509190612dc1565b611365565b005b34801561056357600080fd5b5061057e60048036038101906105799190612edd565b61142f565b60405161058b9190612c96565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b69190612d94565b6114b6565b005b3480156105c957600080fd5b506105e460048036038101906105df9190612d94565b61154f565b005b3480156105f257600080fd5b5061060d60048036038101906106089190612cb1565b6115e8565b005b34801561061b57600080fd5b5061063660048036038101906106319190612dc1565b611790565b005b34801561064457600080fd5b5061064d611816565b60405161065a9190612c96565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612cb1565b61181c565b6040516106979190612c6c565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612d94565b6118c9565b005b60606040518060400160405280601081526020017f4946594f554b4e4f57594f554b4e4f5700000000000000000000000000000000815250905090565b60008160046000610715611a26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166107af611a26565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f49190612c96565b60405180910390a36001905092915050565b6000600254905090565b610818611a26565b73ffffffffffffffffffffffffffffffffffffffff16610836610fe3565b73ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088390612f69565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093c611a26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ad157610a49826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ff611a26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2e9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a92611a26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610adc848484611a92565b90509392505050565b60006012905090565b610af6611a26565b73ffffffffffffffffffffffffffffffffffffffff16610b14610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190612f69565b60405180910390fd5b80601360046101000a81548160ff02191690831515021790555050565b610b8f611a26565b73ffffffffffffffffffffffffffffffffffffffff16610bad610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90612f69565b60405180910390fd5b80600d8190555050565b6000610c17611a26565b73ffffffffffffffffffffffffffffffffffffffff16610c35610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612f69565b60405180910390fd5b60008203610d10578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ccc9190612dfd565b602060405180830381865afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d9190612f9e565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610d4b929190612fcb565b6020604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e9190613009565b905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610de7611a26565b73ffffffffffffffffffffffffffffffffffffffff16610e05610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290612f69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f21611a26565b73ffffffffffffffffffffffffffffffffffffffff16610f3f610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c90612f69565b60405180910390fd5b600f811115610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613082565b60405180910390fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f49594b594b000000000000000000000000000000000000000000000000000000815250905090565b611051611a26565b73ffffffffffffffffffffffffffffffffffffffff1661106f610fe3565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90612f69565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b6110ea611a26565b73ffffffffffffffffffffffffffffffffffffffff16611108610fe3565b73ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612f69565b60405180910390fd5b80600e8190555050565b600061117c611175611a26565b8484611a92565b905092915050565b61118c611a26565b73ffffffffffffffffffffffffffffffffffffffff166111aa610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612f69565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61124c611a26565b73ffffffffffffffffffffffffffffffffffffffff1661126a610fe3565b73ffffffffffffffffffffffffffffffffffffffff16146112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612f69565b60405180910390fd5b60005b8383905081101561135f5781600860008686858181106112e6576112e56130a2565b5b90506020020160208101906112fb9190612cb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061135790613100565b9150506112c3565b50505050565b61136d611a26565b73ffffffffffffffffffffffffffffffffffffffff1661138b610fe3565b73ffffffffffffffffffffffffffffffffffffffff16146113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890612f69565b60405180910390fd5b600f811115611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90613082565b60405180910390fd5b80600b8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114be611a26565b73ffffffffffffffffffffffffffffffffffffffff166114dc610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612f69565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b611557611a26565b73ffffffffffffffffffffffffffffffffffffffff16611575610fe3565b73ffffffffffffffffffffffffffffffffffffffff16146115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290612f69565b60405180910390fd5b80601360036101000a81548160ff02191690831515021790555050565b6115f0611a26565b73ffffffffffffffffffffffffffffffffffffffff1661160e610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90612f69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca906131ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611798611a26565b73ffffffffffffffffffffffffffffffffffffffff166117b6610fe3565b73ffffffffffffffffffffffffffffffffffffffff161461180c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180390612f69565b60405180910390fd5b80600f8190555050565b600d5481565b6000611826610fe3565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff160361186157600190506118c4565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118bf57600190506118c4565b600090505b919050565b6118d1611a26565b73ffffffffffffffffffffffffffffffffffffffff166118ef610fe3565b73ffffffffffffffffffffffffffffffffffffffff1614611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90612f69565b60405180910390fd5b80601360026101000a81548160ff02191690831515021790555050565b600080830361197457600090506119d6565b6000828461198291906131da565b90508284826119919190613263565b146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613306565b60405180910390fd5b809150505b92915050565b6000611a1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612164565b905092915050565b600033905090565b6000838311158290611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d9190612b51565b60405180910390fd5b5060008385611a859190613326565b9050809150509392505050565b6000601360039054906101000a900460ff16611b4957611ab18361181c565b611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906133a6565b60405180910390fd5b6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601560009054906101000a900460ff1615611b7057611b698484846121c7565b905061215d565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bfd5750611bcd610fe3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c575750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c91575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cca5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce25750601360019054906101000a900460ff165b15611d7757600d5482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3591906133c6565b1115611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613446565b60405180910390fd5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e1e5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e365750601360029054906101000a900460ff165b15611ebd5743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb3906134d8565b60405180910390fd5b5b611ec561239a565b15611ed457611ed382612478565b5b611f5d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2e9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611fab856126e7565b611fb55782611fc1565b611fc085858561273e565b5b905061201581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146120f25743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161214f9190612c96565b60405180910390a360019150505b9392505050565b600080831182906121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a29190612b51565b60405180910390fd5b50600083856121ba9190613263565b9050809150509392505050565b6000612252826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2e9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e782600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123879190612c96565b60405180910390a3600190509392505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166123dd611a26565b73ffffffffffffffffffffffffffffffffffffffff161415801561240e5750601560009054906101000a900460ff16155b80156124265750601360009054906101000a900460ff165b80156124735750600e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff02191690831515021790555060006124bd60646124af600f548561196290919063ffffffff16565b6119dc90919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561250f578091505b60008211156126c757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000601430426040518663ffffffff1660e01b815260040161257d959493929190613661565b600060405180830381600087803b15801561259757600080fd5b505af11580156125ab573d6000803e3d6000fd5b50505050600047905060006125de60646125d06012548561196290919063ffffffff16565b6119dc90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612648573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126988385612a7790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126c3573d6000803e3d6000fd5b5050505b50506000601560006101000a81548160ff02191690831515021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156127ec5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561282057612819606461280b600b548661196290919063ffffffff16565b6119dc90919063ffffffff16565b90506128f8565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128c75750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128f7576128f460646128e6600c548661196290919063ffffffff16565b6119dc90919063ffffffff16565b90505b5b60008111156129fc5761295381600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129f39190612c96565b60405180910390a35b612a0f8184612a7790919063ffffffff16565b9150509392505050565b6000808284612a2891906133c6565b905083811015612a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6490613707565b60405180910390fd5b8091505092915050565b6000612ab983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a2e565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612afb578082015181840152602081019050612ae0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b2382612ac1565b612b2d8185612acc565b9350612b3d818560208601612add565b612b4681612b07565b840191505092915050565b60006020820190508181036000830152612b6b8184612b18565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ba882612b7d565b9050919050565b612bb881612b9d565b8114612bc357600080fd5b50565b600081359050612bd581612baf565b92915050565b6000819050919050565b612bee81612bdb565b8114612bf957600080fd5b50565b600081359050612c0b81612be5565b92915050565b60008060408385031215612c2857612c27612b73565b5b6000612c3685828601612bc6565b9250506020612c4785828601612bfc565b9150509250929050565b60008115159050919050565b612c6681612c51565b82525050565b6000602082019050612c816000830184612c5d565b92915050565b612c9081612bdb565b82525050565b6000602082019050612cab6000830184612c87565b92915050565b600060208284031215612cc757612cc6612b73565b5b6000612cd584828501612bc6565b91505092915050565b600080600060608486031215612cf757612cf6612b73565b5b6000612d0586828701612bc6565b9350506020612d1686828701612bc6565b9250506040612d2786828701612bfc565b9150509250925092565b600060ff82169050919050565b612d4781612d31565b82525050565b6000602082019050612d626000830184612d3e565b92915050565b612d7181612c51565b8114612d7c57600080fd5b50565b600081359050612d8e81612d68565b92915050565b600060208284031215612daa57612da9612b73565b5b6000612db884828501612d7f565b91505092915050565b600060208284031215612dd757612dd6612b73565b5b6000612de584828501612bfc565b91505092915050565b612df781612b9d565b82525050565b6000602082019050612e126000830184612dee565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e3d57612e3c612e18565b5b8235905067ffffffffffffffff811115612e5a57612e59612e1d565b5b602083019150836020820283011115612e7657612e75612e22565b5b9250929050565b600080600060408486031215612e9657612e95612b73565b5b600084013567ffffffffffffffff811115612eb457612eb3612b78565b5b612ec086828701612e27565b93509350506020612ed386828701612d7f565b9150509250925092565b60008060408385031215612ef457612ef3612b73565b5b6000612f0285828601612bc6565b9250506020612f1385828601612bc6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f53602083612acc565b9150612f5e82612f1d565b602082019050919050565b60006020820190508181036000830152612f8281612f46565b9050919050565b600081519050612f9881612be5565b92915050565b600060208284031215612fb457612fb3612b73565b5b6000612fc284828501612f89565b91505092915050565b6000604082019050612fe06000830185612dee565b612fed6020830184612c87565b9392505050565b60008151905061300381612d68565b92915050565b60006020828403121561301f5761301e612b73565b5b600061302d84828501612ff4565b91505092915050565b7f54617820746f6f20626967000000000000000000000000000000000000000000600082015250565b600061306c600b83612acc565b915061307782613036565b602082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061310b82612bdb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361313d5761313c6130d1565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a4602683612acc565b91506131af82613148565b604082019050919050565b600060208201905081810360008301526131d381613197565b9050919050565b60006131e582612bdb565b91506131f083612bdb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613229576132286130d1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061326e82612bdb565b915061327983612bdb565b92508261328957613288613234565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006132f0602183612acc565b91506132fb82613294565b604082019050919050565b6000602082019050818103600083015261331f816132e3565b9050919050565b600061333182612bdb565b915061333c83612bdb565b9250828203905081811115613354576133536130d1565b5b92915050565b7f546f6b656e206973206e6f74206c697665000000000000000000000000000000600082015250565b6000613390601183612acc565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b60006133d182612bdb565b91506133dc83612bdb565b92508282019050808211156133f4576133f36130d1565b5b92915050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b6000613430601283612acc565b915061343b826133fa565b602082019050919050565b6000602082019050818103600083015261345f81613423565b9050919050565b7f43616e6e6f742073656c6c20616e6420627579206f6e2073616d6520626c6f6360008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c2602183612acc565b91506134cd82613466565b604082019050919050565b600060208201905081810360008301526134f1816134b5565b9050919050565b6000819050919050565b6000819050919050565b600061352761352261351d846134f8565b613502565b612bdb565b9050919050565b6135378161350c565b82525050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b61357781612b9d565b82525050565b6000613589838361356e565b60208301905092915050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135d56135d083613595565b6135a2565b9050919050565b60006135e882546135c2565b9050919050565b6000600182019050919050565b60006136078261353d565b6136118185613548565b935061361c83613559565b8060005b8381101561365457613631826135dc565b61363b888261357d565b9750613646836135ef565b925050600181019050613620565b5085935050505092915050565b600060a0820190506136766000830188612c87565b613683602083018761352e565b818103604083015261369581866135fc565b90506136a46060830185612dee565b6136b16080830184612c87565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136f1601b83612acc565b91506136fc826136bb565b602082019050919050565b60006020820190508181036000830152613720816136e4565b905091905056fea2646970667358221220e4c7e6d4d803b203fc5f959295f06d786d1730fa5eaa0039b4d9d57fafa3bef564736f6c63430008100033