0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108bb578063d78e139d146108f8578063dd62ed3e14610921578063f2fde38b1461095e578063f6a78e1714610987578063f887ea401461099e57610267565b8063b2bdfa7b146107fe578063bc33718214610829578063ccf8c03614610852578063cec10c111461087b578063d148b74c146108a457610267565b8063918924761161010857806391892476146106f057806395d89b41146107195780639acb773e146107445780639f11080e1461076d578063a8aa1b3114610796578063a9059cbb146107c157610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638a8c523c146106ae5780638da5cb5b146106c557610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ad0565b6109c9565b005b3480156102a157600080fd5b506102aa610a83565b6040516102b79190613b1f565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b98565b610a89565b6040516102f49190613bd4565b60405180910390f35b34801561030957600080fd5b50610312610abc565b60405161031f9190613c7f565b60405180910390f35b34801561033457600080fd5b5061033d610af9565b60405161034a9190613bd4565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613ca1565b610b0c565b6040516103879190613bd4565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613ce1565b610bfe565b6040516103c49190613bd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e69565b610c13565b005b34801561040257600080fd5b5061040b610d3d565b6040516104189190613b1f565b60405180910390f35b34801561042d57600080fd5b50610436610d47565b6040516104439190613b1f565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ec5565b610d4d565b6040516104809190613bd4565b60405180910390f35b34801561049557600080fd5b5061049e610f4d565b6040516104ab9190613b1f565b60405180910390f35b3480156104c057600080fd5b506104c9610fcf565b6040516104d69190613f34565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f4f565b610fd8565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f8f565b6110c8565b005b34801561053d57600080fd5b5061054661119f565b6040516105539190613bd4565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b98565b6111b2565b6040516105909190613b1f565b60405180910390f35b3480156105a557600080fd5b506105ae6111fb565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613ca1565b61134e565b6040516105e49190613bd4565b60405180910390f35b3480156105f957600080fd5b506106026114b1565b60405161060f9190613b1f565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fbc565b6114b7565b005b34801561064d57600080fd5b50610656611698565b6040516106639190613b1f565b60405180910390f35b34801561067857600080fd5b5061068161169e565b60405161068e9190614046565b60405180910390f35b3480156106a357600080fd5b506106ac6116ad565b005b3480156106ba57600080fd5b506106c361174c565b005b3480156106d157600080fd5b506106da611817565b6040516106e79190614046565b60405180910390f35b3480156106fc57600080fd5b5061071760048036038101906107129190614061565b611840565b005b34801561072557600080fd5b5061072e6119a8565b60405161073b9190613c7f565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613f4f565b6119e5565b005b34801561077957600080fd5b50610794600480360381019061078f9190613ce1565b611ad5565b005b3480156107a257600080fd5b506107ab611b7c565b6040516107b89190614046565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613ca1565b611ba2565b6040516107f59190613bd4565b60405180910390f35b34801561080a57600080fd5b50610813611bb7565b6040516108209190614046565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613f8f565b611bdb565b005b34801561085e57600080fd5b5061087960048036038101906108749190613f4f565b611cb2565b005b34801561088757600080fd5b506108a2600480360381019061089d91906140ee565b611df9565b005b3480156108b057600080fd5b506108b9611ea8565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613f8f565b611f47565b6040516108ef9190613b1f565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613f8f565b611fb9565b005b34801561092d57600080fd5b5061094860048036038101906109439190614141565b612042565b6040516109559190613b1f565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190613b98565b6120c9565b005b34801561099357600080fd5b5061099c61228a565b005b3480156109aa57600080fd5b506109b3612333565b6040516109c091906141e0565b60405180910390f35b6109d1612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590614247565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ab5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b0c565b9050919050565b60606040518060400160405280601681526020017f4669746e6573734772616d205061636572205465737400000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bec9190613b1f565b60405180910390a36001905092915050565b600082610c0a83611f47565b11905092915050565b610c1b612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90614247565b60405180910390fd5b60005b8251811015610d385781600c6000858481518110610ccc57610ccb614267565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d30906142c5565b915050610cab565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3957610eb8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f448484846123c5565b90509392505050565b6000610fca610f7d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b610fbc610fab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b600554612b2090919063ffffffff16565b612b2090919063ffffffff16565b905090565b60006009905090565b610fe0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614247565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110d0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490614247565b60405180910390fd5b6103e860055461116d919061433c565b600754101561117b57600080fd5b6103e88160055461118c919061436d565b611196919061433c565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611203612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790614247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b6000820361142b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113e79190614046565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142891906143c4565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114669291906143f1565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a9919061442f565b905092915050565b60075481565b6114bf612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390614247565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116a8611817565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661170357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b50565b611754612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614247565b60405180910390fd5b6001602360146101000a81548160ff02191690831515021790555060fa60158190555060fa6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611848612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90614247565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506119418261193385611925886119178b8d612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b60128190555080601381905550600560135461195d919061433c565b601254106119a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611997906144a8565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017f52554e4e45520000000000000000000000000000000000000000000000000000815250905090565b6119ed612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190614247565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611add612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190614247565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611baf3384846123c5565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be3612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790614247565b60405180910390fd5b6103e8600554611c80919061433c565b6006541015611c8e57600080fd5b6103e881600554611c9f919061436d565b611ca9919061433c565b60068190555050565b611cba612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e90614247565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e01612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8590614247565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611eb0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490614247565b60405180910390fd5b611f45612bc8565b565b6000611fb2611f54610f4d565b611fa4611f956002611f87602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b6131ef90919063ffffffff16565b856131ef90919063ffffffff16565b61326990919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484612008919061436d565b612012919061433c565b9081150290604051600060405180830381858888f1935050505015801561203d573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120d1612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590614247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c49061453a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612292612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461231f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231690614247565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008383111582906123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a09190613c7f565b60405180910390fd5b50600083856123b8919061455a565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561246b5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a1906145da565b60405180910390fd5b602560009054906101000a900460ff16156124d1576124ca8484846132b3565b9050612b19565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125755750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ca57602360149054906101000a900460ff166125c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c090614646565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561265057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126aa5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127045750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561275e5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127b85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561280e5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561287257600061281e846111b2565b9050600754838261282f9190614666565b1115612870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128679061470c565b60405180910390fd5b505b61287c8483613486565b612884613523565b1561289257612891612bc8565b5b61291b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a015750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a1557612a108584866135fa565b612a17565b825b9050612a6b81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b0b9190613b1f565b60405180910390a360019150505b9392505050565b6000612b6283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612361565b905092915050565b6000808284612b799190614666565b905083811015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590614778565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612bf3601f54602054610bfe565b612bff57600d54612c02565b60005b90506000612c426002612c34601254612c26866024546131ef90919063ffffffff16565b61326990919063ffffffff16565b61326990919063ffffffff16565b90506000612c5b82602454612b2090919063ffffffff16565b90506000600267ffffffffffffffff811115612c7a57612c79613d26565b5b604051908082528060200260200182016040528015612ca85781602001602082028036833780820191505090505b5090503081600081518110612cc057612cbf614267565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d3157612d30614267565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dd4959493929190614891565b600060405180830381600087803b158015612dee57600080fd5b505af1158015612e02573d6000803e3d6000fd5b505050506000612e1b8247612b2090919063ffffffff16565b90506000612e47612e3660028961326990919063ffffffff16565b601254612b2090919063ffffffff16565b90506000612e836002612e7584612e678c886131ef90919063ffffffff16565b61326990919063ffffffff16565b61326990919063ffffffff16565b90506000612eae83612ea0600e54876131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000612ed984612ecb601054886131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000612f0485612ef6600f54896131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612f4e9061491c565b60006040518083038185875af1925050503d8060008114612f8b576040519150601f19603f3d011682016040523d82523d6000602084013e612f90565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612fda9061491c565b60006040518083038185875af1925050503d8060008114613017576040519150601f19603f3d011682016040523d82523d6000602084013e61301c565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516130689061491c565b60006040518083038185875af1925050503d80600081146130a5576040519150601f19603f3d011682016040523d82523d6000602084013e6130aa565b606091505b5050809150506000905060008b11156131c657602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161314696959493929190614931565b60606040518083038185885af1158015613164573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131899190614992565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516131bd9291906149e5565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083036132015760009050613263565b6000828461320f919061436d565b905082848261321e919061433c565b1461325e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325590614a80565b60405180910390fd5b809150505b92915050565b60006132ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506139eb565b905092915050565b600061333e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133d382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134739190613b1f565b60405180910390a3600190509392505050565b600654811115806134e05750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61351f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161351690614aec565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135905750602560009054906101000a900460ff16155b80156135a85750602360159054906101000a900460ff165b80156135f55750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136615760145490506136bd565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036136bc5760155490505b5b600061370660646013546136d1919061436d565b6136f8846136ea6012548a6131ef90919063ffffffff16565b6131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000613733601254613725601154856131ef90919063ffffffff16565b61326990919063ffffffff16565b9050600061374a8284612b2090919063ffffffff16565b905061379e81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138558260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139179190613b1f565b60405180910390a360008211156139cb5761393d82600554612b2090919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139c29190613b1f565b60405180910390a35b6139de8388612b2090919063ffffffff16565b9450505050509392505050565b60008083118290613a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a299190613c7f565b60405180910390fd5b5060008385613a41919061433c565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a7781613a62565b8114613a8257600080fd5b50565b600081359050613a9481613a6e565b92915050565b6000819050919050565b613aad81613a9a565b8114613ab857600080fd5b50565b600081359050613aca81613aa4565b92915050565b60008060408385031215613ae757613ae6613a58565b5b6000613af585828601613a85565b9250506020613b0685828601613abb565b9150509250929050565b613b1981613a9a565b82525050565b6000602082019050613b346000830184613b10565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6582613b3a565b9050919050565b613b7581613b5a565b8114613b8057600080fd5b50565b600081359050613b9281613b6c565b92915050565b600060208284031215613bae57613bad613a58565b5b6000613bbc84828501613b83565b91505092915050565b613bce81613a62565b82525050565b6000602082019050613be96000830184613bc5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c29578082015181840152602081019050613c0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c5182613bef565b613c5b8185613bfa565b9350613c6b818560208601613c0b565b613c7481613c35565b840191505092915050565b60006020820190508181036000830152613c998184613c46565b905092915050565b60008060408385031215613cb857613cb7613a58565b5b6000613cc685828601613b83565b9250506020613cd785828601613abb565b9150509250929050565b60008060408385031215613cf857613cf7613a58565b5b6000613d0685828601613abb565b9250506020613d1785828601613abb565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5e82613c35565b810181811067ffffffffffffffff82111715613d7d57613d7c613d26565b5b80604052505050565b6000613d90613a4e565b9050613d9c8282613d55565b919050565b600067ffffffffffffffff821115613dbc57613dbb613d26565b5b602082029050602081019050919050565b600080fd5b6000613de5613de084613da1565b613d86565b90508083825260208201905060208402830185811115613e0857613e07613dcd565b5b835b81811015613e315780613e1d8882613b83565b845260208401935050602081019050613e0a565b5050509392505050565b600082601f830112613e5057613e4f613d21565b5b8135613e60848260208601613dd2565b91505092915050565b60008060408385031215613e8057613e7f613a58565b5b600083013567ffffffffffffffff811115613e9e57613e9d613a5d565b5b613eaa85828601613e3b565b9250506020613ebb85828601613a85565b9150509250929050565b600080600060608486031215613ede57613edd613a58565b5b6000613eec86828701613b83565b9350506020613efd86828701613b83565b9250506040613f0e86828701613abb565b9150509250925092565b600060ff82169050919050565b613f2e81613f18565b82525050565b6000602082019050613f496000830184613f25565b92915050565b60008060408385031215613f6657613f65613a58565b5b6000613f7485828601613b83565b9250506020613f8585828601613a85565b9150509250929050565b600060208284031215613fa557613fa4613a58565b5b6000613fb384828501613abb565b91505092915050565b600080600080600060a08688031215613fd857613fd7613a58565b5b6000613fe688828901613b83565b9550506020613ff788828901613b83565b945050604061400888828901613b83565b935050606061401988828901613b83565b925050608061402a88828901613b83565b9150509295509295909350565b61404081613b5a565b82525050565b600060208201905061405b6000830184614037565b92915050565b60008060008060008060c0878903121561407e5761407d613a58565b5b600061408c89828a01613abb565b965050602061409d89828a01613abb565b95505060406140ae89828a01613abb565b94505060606140bf89828a01613abb565b93505060806140d089828a01613abb565b92505060a06140e189828a01613abb565b9150509295509295509295565b60008060006060848603121561410757614106613a58565b5b600061411586828701613abb565b935050602061412686828701613abb565b925050604061413786828701613abb565b9150509250925092565b6000806040838503121561415857614157613a58565b5b600061416685828601613b83565b925050602061417785828601613b83565b9150509250929050565b6000819050919050565b60006141a66141a161419c84613b3a565b614181565b613b3a565b9050919050565b60006141b88261418b565b9050919050565b60006141ca826141ad565b9050919050565b6141da816141bf565b82525050565b60006020820190506141f560008301846141d1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614231602083613bfa565b915061423c826141fb565b602082019050919050565b6000602082019050818103600083015261426081614224565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d082613a9a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361430257614301614296565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434782613a9a565b915061435283613a9a565b9250826143625761436161430d565b5b828204905092915050565b600061437882613a9a565b915061438383613a9a565b925082820261439181613a9a565b915082820484148315176143a8576143a7614296565b5b5092915050565b6000815190506143be81613aa4565b92915050565b6000602082840312156143da576143d9613a58565b5b60006143e8848285016143af565b91505092915050565b60006040820190506144066000830185614037565b6144136020830184613b10565b9392505050565b60008151905061442981613a6e565b92915050565b60006020828403121561444557614444613a58565b5b60006144538482850161441a565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614492601d83613bfa565b915061449d8261445c565b602082019050919050565b600060208201905081810360008301526144c181614485565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614524602683613bfa565b915061452f826144c8565b604082019050919050565b6000602082019050818103600083015261455381614517565b9050919050565b600061456582613a9a565b915061457083613a9a565b925082820390508181111561458857614587614296565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006145c4600d83613bfa565b91506145cf8261458e565b602082019050919050565b600060208201905081810360008301526145f3816145b7565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614630601483613bfa565b915061463b826145fa565b602082019050919050565b6000602082019050818103600083015261465f81614623565b9050919050565b600061467182613a9a565b915061467c83613a9a565b925082820190508082111561469457614693614296565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006146f6603e83613bfa565b91506147018261469a565b604082019050919050565b60006020820190508181036000830152614725816146e9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614762601b83613bfa565b915061476d8261472c565b602082019050919050565b6000602082019050818103600083015261479181614755565b9050919050565b6000819050919050565b60006147bd6147b86147b384614798565b614181565b613a9a565b9050919050565b6147cd816147a2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61480881613b5a565b82525050565b600061481a83836147ff565b60208301905092915050565b6000602082019050919050565b600061483e826147d3565b61484881856147de565b9350614853836147ef565b8060005b8381101561488457815161486b888261480e565b975061487683614826565b925050600181019050614857565b5085935050505092915050565b600060a0820190506148a66000830188613b10565b6148b360208301876147c4565b81810360408301526148c58186614833565b90506148d46060830185614037565b6148e16080830184613b10565b9695505050505050565b600081905092915050565b50565b60006149066000836148eb565b9150614911826148f6565b600082019050919050565b6000614927826148f9565b9150819050919050565b600060c0820190506149466000830189614037565b6149536020830188613b10565b61496060408301876147c4565b61496d60608301866147c4565b61497a6080830185614037565b61498760a0830184613b10565b979650505050505050565b6000806000606084860312156149ab576149aa613a58565b5b60006149b9868287016143af565b93505060206149ca868287016143af565b92505060406149db868287016143af565b9150509250925092565b60006040820190506149fa6000830185613b10565b614a076020830184613b10565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a6a602183613bfa565b9150614a7582614a0e565b604082019050919050565b60006020820190508181036000830152614a9981614a5d565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614ad6601183613bfa565b9150614ae182614aa0565b602082019050919050565b60006020820190508181036000830152614b0581614ac9565b905091905056fea26469706673582212208a6b2ce4712abd30efd56a45b0d54f657c2f43e92b4ea234c592897c8e87dca264736f6c63430008130033
0x608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ede565b64e8d4a51000620000ab919062000f2f565b600555620000db6064620000cc600260055462000bff60201b90919060201c565b62000c8260201b90919060201c565b6006556200010b6064620000fc600260055462000bff60201b90919060201c565b62000c8260201b90919060201c565b6007556000600d55600a600e556000600f5560006010556000601155601154600f54600d54600e5460105462000142919062000f7a565b6200014e919062000f7a565b6200015a919062000f7a565b62000166919062000f7a565b6012556064601355606460145560646015556103e86016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff0219169083151502179055506127106064600554620001d2919062000f2f565b620001de919062000fe4565b602455348015620001ee57600080fd5b5060006200020162000cd460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000400919062001086565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d4919062001086565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000532929190620010c9565b6020604051808303816000875af115801562000552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000578919062001086565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733a52393a05e2a0c20806833e697e7f681583fada601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000bf1919062001107565b60405180910390a36200127a565b600080830362000c13576000905062000c7c565b6000828462000c23919062000f2f565b905082848262000c34919062000fe4565b1462000c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c6e90620011ab565b60405180910390fd5b809150505b92915050565b600062000ccc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cdc60201b60201c565b905092915050565b600033905090565b6000808311829062000d26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d1d919062001256565b60405180910390fd5b506000838562000d37919062000fe4565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000dd25780860481111562000daa5762000da962000d44565b5b600185161562000dba5780820291505b808102905062000dca8562000d73565b945062000d8a565b94509492505050565b60008262000ded576001905062000ec0565b8162000dfd576000905062000ec0565b816001811462000e16576002811462000e215762000e57565b600191505062000ec0565b60ff84111562000e365762000e3562000d44565b5b8360020a91508482111562000e505762000e4f62000d44565b5b5062000ec0565b5060208310610133831016604e8410600b841016171562000e915782820a90508381111562000e8b5762000e8a62000d44565b5b62000ec0565b62000ea0848484600162000d80565b9250905081840481111562000eba5762000eb962000d44565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000eeb8262000ec7565b915062000ef88362000ed1565b925062000f277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ddb565b905092915050565b600062000f3c8262000ec7565b915062000f498362000ec7565b925082820262000f598162000ec7565b9150828204841483151762000f735762000f7262000d44565b5b5092915050565b600062000f878262000ec7565b915062000f948362000ec7565b925082820190508082111562000faf5762000fae62000d44565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ff18262000ec7565b915062000ffe8362000ec7565b92508262001011576200101062000fb5565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200104e8262001021565b9050919050565b620010608162001041565b81146200106c57600080fd5b50565b600081519050620010808162001055565b92915050565b6000602082840312156200109f576200109e6200101c565b5b6000620010af848285016200106f565b91505092915050565b620010c38162001041565b82525050565b6000604082019050620010e06000830185620010b8565b620010ef6020830184620010b8565b9392505050565b620011018162000ec7565b82525050565b60006020820190506200111e6000830184620010f6565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200119360218362001124565b9150620011a08262001135565b604082019050919050565b60006020820190508181036000830152620011c68162001184565b9050919050565b600081519050919050565b60005b83811015620011f8578082015181840152602081019050620011db565b60008484015250505050565b6000601f19601f8301169050919050565b60006200122282620011cd565b6200122e818562001124565b935062001240818560208601620011d8565b6200124b8162001204565b840191505092915050565b6000602082019050818103600083015262001272818462001215565b905092915050565b614b42806200128a6000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108bb578063d78e139d146108f8578063dd62ed3e14610921578063f2fde38b1461095e578063f6a78e1714610987578063f887ea401461099e57610267565b8063b2bdfa7b146107fe578063bc33718214610829578063ccf8c03614610852578063cec10c111461087b578063d148b74c146108a457610267565b8063918924761161010857806391892476146106f057806395d89b41146107195780639acb773e146107445780639f11080e1461076d578063a8aa1b3114610796578063a9059cbb146107c157610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638a8c523c146106ae5780638da5cb5b146106c557610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ad0565b6109c9565b005b3480156102a157600080fd5b506102aa610a83565b6040516102b79190613b1f565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b98565b610a89565b6040516102f49190613bd4565b60405180910390f35b34801561030957600080fd5b50610312610abc565b60405161031f9190613c7f565b60405180910390f35b34801561033457600080fd5b5061033d610af9565b60405161034a9190613bd4565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613ca1565b610b0c565b6040516103879190613bd4565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613ce1565b610bfe565b6040516103c49190613bd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e69565b610c13565b005b34801561040257600080fd5b5061040b610d3d565b6040516104189190613b1f565b60405180910390f35b34801561042d57600080fd5b50610436610d47565b6040516104439190613b1f565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ec5565b610d4d565b6040516104809190613bd4565b60405180910390f35b34801561049557600080fd5b5061049e610f4d565b6040516104ab9190613b1f565b60405180910390f35b3480156104c057600080fd5b506104c9610fcf565b6040516104d69190613f34565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f4f565b610fd8565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f8f565b6110c8565b005b34801561053d57600080fd5b5061054661119f565b6040516105539190613bd4565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b98565b6111b2565b6040516105909190613b1f565b60405180910390f35b3480156105a557600080fd5b506105ae6111fb565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613ca1565b61134e565b6040516105e49190613bd4565b60405180910390f35b3480156105f957600080fd5b506106026114b1565b60405161060f9190613b1f565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fbc565b6114b7565b005b34801561064d57600080fd5b50610656611698565b6040516106639190613b1f565b60405180910390f35b34801561067857600080fd5b5061068161169e565b60405161068e9190614046565b60405180910390f35b3480156106a357600080fd5b506106ac6116ad565b005b3480156106ba57600080fd5b506106c361174c565b005b3480156106d157600080fd5b506106da611817565b6040516106e79190614046565b60405180910390f35b3480156106fc57600080fd5b5061071760048036038101906107129190614061565b611840565b005b34801561072557600080fd5b5061072e6119a8565b60405161073b9190613c7f565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613f4f565b6119e5565b005b34801561077957600080fd5b50610794600480360381019061078f9190613ce1565b611ad5565b005b3480156107a257600080fd5b506107ab611b7c565b6040516107b89190614046565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613ca1565b611ba2565b6040516107f59190613bd4565b60405180910390f35b34801561080a57600080fd5b50610813611bb7565b6040516108209190614046565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613f8f565b611bdb565b005b34801561085e57600080fd5b5061087960048036038101906108749190613f4f565b611cb2565b005b34801561088757600080fd5b506108a2600480360381019061089d91906140ee565b611df9565b005b3480156108b057600080fd5b506108b9611ea8565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613f8f565b611f47565b6040516108ef9190613b1f565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613f8f565b611fb9565b005b34801561092d57600080fd5b5061094860048036038101906109439190614141565b612042565b6040516109559190613b1f565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190613b98565b6120c9565b005b34801561099357600080fd5b5061099c61228a565b005b3480156109aa57600080fd5b506109b3612333565b6040516109c091906141e0565b60405180910390f35b6109d1612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590614247565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ab5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b0c565b9050919050565b60606040518060400160405280601681526020017f4669746e6573734772616d205061636572205465737400000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bec9190613b1f565b60405180910390a36001905092915050565b600082610c0a83611f47565b11905092915050565b610c1b612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90614247565b60405180910390fd5b60005b8251811015610d385781600c6000858481518110610ccc57610ccb614267565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d30906142c5565b915050610cab565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3957610eb8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f448484846123c5565b90509392505050565b6000610fca610f7d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b610fbc610fab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b600554612b2090919063ffffffff16565b612b2090919063ffffffff16565b905090565b60006009905090565b610fe0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614247565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110d0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490614247565b60405180910390fd5b6103e860055461116d919061433c565b600754101561117b57600080fd5b6103e88160055461118c919061436d565b611196919061433c565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611203612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790614247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b6000820361142b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113e79190614046565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142891906143c4565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114669291906143f1565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a9919061442f565b905092915050565b60075481565b6114bf612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390614247565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116a8611817565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661170357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b50565b611754612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614247565b60405180910390fd5b6001602360146101000a81548160ff02191690831515021790555060fa60158190555060fa6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611848612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90614247565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506119418261193385611925886119178b8d612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b612b6a90919063ffffffff16565b60128190555080601381905550600560135461195d919061433c565b601254106119a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611997906144a8565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017f52554e4e45520000000000000000000000000000000000000000000000000000815250905090565b6119ed612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190614247565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611add612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190614247565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611baf3384846123c5565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be3612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790614247565b60405180910390fd5b6103e8600554611c80919061433c565b6006541015611c8e57600080fd5b6103e881600554611c9f919061436d565b611ca9919061433c565b60068190555050565b611cba612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e90614247565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e01612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8590614247565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611eb0612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490614247565b60405180910390fd5b611f45612bc8565b565b6000611fb2611f54610f4d565b611fa4611f956002611f87602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b6131ef90919063ffffffff16565b856131ef90919063ffffffff16565b61326990919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484612008919061436d565b612012919061433c565b9081150290604051600060405180830381858888f1935050505015801561203d573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120d1612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590614247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c49061453a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612292612359565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461231f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231690614247565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008383111582906123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a09190613c7f565b60405180910390fd5b50600083856123b8919061455a565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561246b5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a1906145da565b60405180910390fd5b602560009054906101000a900460ff16156124d1576124ca8484846132b3565b9050612b19565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125755750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ca57602360149054906101000a900460ff166125c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c090614646565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561265057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126aa5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127045750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561275e5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127b85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561280e5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561287257600061281e846111b2565b9050600754838261282f9190614666565b1115612870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128679061470c565b60405180910390fd5b505b61287c8483613486565b612884613523565b1561289257612891612bc8565b5b61291b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a015750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a1557612a108584866135fa565b612a17565b825b9050612a6b81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b0b9190613b1f565b60405180910390a360019150505b9392505050565b6000612b6283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612361565b905092915050565b6000808284612b799190614666565b905083811015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590614778565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612bf3601f54602054610bfe565b612bff57600d54612c02565b60005b90506000612c426002612c34601254612c26866024546131ef90919063ffffffff16565b61326990919063ffffffff16565b61326990919063ffffffff16565b90506000612c5b82602454612b2090919063ffffffff16565b90506000600267ffffffffffffffff811115612c7a57612c79613d26565b5b604051908082528060200260200182016040528015612ca85781602001602082028036833780820191505090505b5090503081600081518110612cc057612cbf614267565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d3157612d30614267565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dd4959493929190614891565b600060405180830381600087803b158015612dee57600080fd5b505af1158015612e02573d6000803e3d6000fd5b505050506000612e1b8247612b2090919063ffffffff16565b90506000612e47612e3660028961326990919063ffffffff16565b601254612b2090919063ffffffff16565b90506000612e836002612e7584612e678c886131ef90919063ffffffff16565b61326990919063ffffffff16565b61326990919063ffffffff16565b90506000612eae83612ea0600e54876131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000612ed984612ecb601054886131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000612f0485612ef6600f54896131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612f4e9061491c565b60006040518083038185875af1925050503d8060008114612f8b576040519150601f19603f3d011682016040523d82523d6000602084013e612f90565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612fda9061491c565b60006040518083038185875af1925050503d8060008114613017576040519150601f19603f3d011682016040523d82523d6000602084013e61301c565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516130689061491c565b60006040518083038185875af1925050503d80600081146130a5576040519150601f19603f3d011682016040523d82523d6000602084013e6130aa565b606091505b5050809150506000905060008b11156131c657602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161314696959493929190614931565b60606040518083038185885af1158015613164573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131899190614992565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516131bd9291906149e5565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083036132015760009050613263565b6000828461320f919061436d565b905082848261321e919061433c565b1461325e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325590614a80565b60405180910390fd5b809150505b92915050565b60006132ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506139eb565b905092915050565b600061333e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123619092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133d382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134739190613b1f565b60405180910390a3600190509392505050565b600654811115806134e05750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61351f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161351690614aec565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135905750602560009054906101000a900460ff16155b80156135a85750602360159054906101000a900460ff165b80156135f55750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136615760145490506136bd565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036136bc5760155490505b5b600061370660646013546136d1919061436d565b6136f8846136ea6012548a6131ef90919063ffffffff16565b6131ef90919063ffffffff16565b61326990919063ffffffff16565b90506000613733601254613725601154856131ef90919063ffffffff16565b61326990919063ffffffff16565b9050600061374a8284612b2090919063ffffffff16565b905061379e81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138558260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6a90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139179190613b1f565b60405180910390a360008211156139cb5761393d82600554612b2090919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139c29190613b1f565b60405180910390a35b6139de8388612b2090919063ffffffff16565b9450505050509392505050565b60008083118290613a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a299190613c7f565b60405180910390fd5b5060008385613a41919061433c565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a7781613a62565b8114613a8257600080fd5b50565b600081359050613a9481613a6e565b92915050565b6000819050919050565b613aad81613a9a565b8114613ab857600080fd5b50565b600081359050613aca81613aa4565b92915050565b60008060408385031215613ae757613ae6613a58565b5b6000613af585828601613a85565b9250506020613b0685828601613abb565b9150509250929050565b613b1981613a9a565b82525050565b6000602082019050613b346000830184613b10565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6582613b3a565b9050919050565b613b7581613b5a565b8114613b8057600080fd5b50565b600081359050613b9281613b6c565b92915050565b600060208284031215613bae57613bad613a58565b5b6000613bbc84828501613b83565b91505092915050565b613bce81613a62565b82525050565b6000602082019050613be96000830184613bc5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c29578082015181840152602081019050613c0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c5182613bef565b613c5b8185613bfa565b9350613c6b818560208601613c0b565b613c7481613c35565b840191505092915050565b60006020820190508181036000830152613c998184613c46565b905092915050565b60008060408385031215613cb857613cb7613a58565b5b6000613cc685828601613b83565b9250506020613cd785828601613abb565b9150509250929050565b60008060408385031215613cf857613cf7613a58565b5b6000613d0685828601613abb565b9250506020613d1785828601613abb565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5e82613c35565b810181811067ffffffffffffffff82111715613d7d57613d7c613d26565b5b80604052505050565b6000613d90613a4e565b9050613d9c8282613d55565b919050565b600067ffffffffffffffff821115613dbc57613dbb613d26565b5b602082029050602081019050919050565b600080fd5b6000613de5613de084613da1565b613d86565b90508083825260208201905060208402830185811115613e0857613e07613dcd565b5b835b81811015613e315780613e1d8882613b83565b845260208401935050602081019050613e0a565b5050509392505050565b600082601f830112613e5057613e4f613d21565b5b8135613e60848260208601613dd2565b91505092915050565b60008060408385031215613e8057613e7f613a58565b5b600083013567ffffffffffffffff811115613e9e57613e9d613a5d565b5b613eaa85828601613e3b565b9250506020613ebb85828601613a85565b9150509250929050565b600080600060608486031215613ede57613edd613a58565b5b6000613eec86828701613b83565b9350506020613efd86828701613b83565b9250506040613f0e86828701613abb565b9150509250925092565b600060ff82169050919050565b613f2e81613f18565b82525050565b6000602082019050613f496000830184613f25565b92915050565b60008060408385031215613f6657613f65613a58565b5b6000613f7485828601613b83565b9250506020613f8585828601613a85565b9150509250929050565b600060208284031215613fa557613fa4613a58565b5b6000613fb384828501613abb565b91505092915050565b600080600080600060a08688031215613fd857613fd7613a58565b5b6000613fe688828901613b83565b9550506020613ff788828901613b83565b945050604061400888828901613b83565b935050606061401988828901613b83565b925050608061402a88828901613b83565b9150509295509295909350565b61404081613b5a565b82525050565b600060208201905061405b6000830184614037565b92915050565b60008060008060008060c0878903121561407e5761407d613a58565b5b600061408c89828a01613abb565b965050602061409d89828a01613abb565b95505060406140ae89828a01613abb565b94505060606140bf89828a01613abb565b93505060806140d089828a01613abb565b92505060a06140e189828a01613abb565b9150509295509295509295565b60008060006060848603121561410757614106613a58565b5b600061411586828701613abb565b935050602061412686828701613abb565b925050604061413786828701613abb565b9150509250925092565b6000806040838503121561415857614157613a58565b5b600061416685828601613b83565b925050602061417785828601613b83565b9150509250929050565b6000819050919050565b60006141a66141a161419c84613b3a565b614181565b613b3a565b9050919050565b60006141b88261418b565b9050919050565b60006141ca826141ad565b9050919050565b6141da816141bf565b82525050565b60006020820190506141f560008301846141d1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614231602083613bfa565b915061423c826141fb565b602082019050919050565b6000602082019050818103600083015261426081614224565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d082613a9a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361430257614301614296565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434782613a9a565b915061435283613a9a565b9250826143625761436161430d565b5b828204905092915050565b600061437882613a9a565b915061438383613a9a565b925082820261439181613a9a565b915082820484148315176143a8576143a7614296565b5b5092915050565b6000815190506143be81613aa4565b92915050565b6000602082840312156143da576143d9613a58565b5b60006143e8848285016143af565b91505092915050565b60006040820190506144066000830185614037565b6144136020830184613b10565b9392505050565b60008151905061442981613a6e565b92915050565b60006020828403121561444557614444613a58565b5b60006144538482850161441a565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614492601d83613bfa565b915061449d8261445c565b602082019050919050565b600060208201905081810360008301526144c181614485565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614524602683613bfa565b915061452f826144c8565b604082019050919050565b6000602082019050818103600083015261455381614517565b9050919050565b600061456582613a9a565b915061457083613a9a565b925082820390508181111561458857614587614296565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006145c4600d83613bfa565b91506145cf8261458e565b602082019050919050565b600060208201905081810360008301526145f3816145b7565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614630601483613bfa565b915061463b826145fa565b602082019050919050565b6000602082019050818103600083015261465f81614623565b9050919050565b600061467182613a9a565b915061467c83613a9a565b925082820190508082111561469457614693614296565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006146f6603e83613bfa565b91506147018261469a565b604082019050919050565b60006020820190508181036000830152614725816146e9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614762601b83613bfa565b915061476d8261472c565b602082019050919050565b6000602082019050818103600083015261479181614755565b9050919050565b6000819050919050565b60006147bd6147b86147b384614798565b614181565b613a9a565b9050919050565b6147cd816147a2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61480881613b5a565b82525050565b600061481a83836147ff565b60208301905092915050565b6000602082019050919050565b600061483e826147d3565b61484881856147de565b9350614853836147ef565b8060005b8381101561488457815161486b888261480e565b975061487683614826565b925050600181019050614857565b5085935050505092915050565b600060a0820190506148a66000830188613b10565b6148b360208301876147c4565b81810360408301526148c58186614833565b90506148d46060830185614037565b6148e16080830184613b10565b9695505050505050565b600081905092915050565b50565b60006149066000836148eb565b9150614911826148f6565b600082019050919050565b6000614927826148f9565b9150819050919050565b600060c0820190506149466000830189614037565b6149536020830188613b10565b61496060408301876147c4565b61496d60608301866147c4565b61497a6080830185614037565b61498760a0830184613b10565b979650505050505050565b6000806000606084860312156149ab576149aa613a58565b5b60006149b9868287016143af565b93505060206149ca868287016143af565b92505060406149db868287016143af565b9150509250925092565b60006040820190506149fa6000830185613b10565b614a076020830184613b10565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a6a602183613bfa565b9150614a7582614a0e565b604082019050919050565b60006020820190508181036000830152614a9981614a5d565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614ad6601183613bfa565b9150614ae182614aa0565b602082019050919050565b60006020820190508181036000830152614b0581614ac9565b905091905056fea26469706673582212208a6b2ce4712abd30efd56a45b0d54f657c2f43e92b4ea234c592897c8e87dca264736f6c63430008130033