60806040526000601160006101000a81548160ff021916908315150217905550600160125560016013553480156200003657600080fd5b50604051620066a4380380620066a4833981810160405260408110156200005c57600080fd5b8101908080519060200190929190805190602001909291905050506000620000896200014160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200013982826200014960201b60201c565b505062000928565b600033905090565b6040518060400160405280600581526020017f5374616379000000000000000000000000000000000000000000000000000000815250600490805190602001906200019692919062000882565b506040518060400160405280600581526020017f535441435900000000000000000000000000000000000000000000000000000081525060059080519060200190620001e492919062000882565b506012600660006101000a81548160ff021916908360ff1602179055506200021f306b033b2e3c9fd0803ce80000006200035a60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200027057737a250d5630b4cf539739df2c5dacb4c659f2488d62000272565b815b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200030357735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f62000305565b805b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003556200053a60201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200041260008383620007f460201b60201c565b6200042e81600354620007f960201b62004d2f1790919060201c565b6003819055506200048d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620007f960201b62004d2f1790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f546f6b656e3a20706f6f6c20616c72656164792063726561746564000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006a757600080fd5b505afa158015620006bc573d6000803e3d6000fd5b505050506040513d6020811015620006d357600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200074f57600080fd5b505af115801562000764573d6000803e3d6000fd5b505050506040513d60208110156200077b57600080fd5b8101908080519060200190929190505050600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b60008082840190508381101562000878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008c557805160ff1916838001178555620008f6565b82800160010185558215620008f6579182015b82811115620008f5578251825591602001919060010190620008d8565b5b50905062000905919062000909565b5090565b5b80821115620009245760008160009055506001016200090a565b5090565b615d6c80620009386000396000f3fe6080604052600436106103b05760003560e01c8063715018a6116101e7578063af3337d81161010d578063dd62ed3e116100a0578063f08ccfcb1161006f578063f08ccfcb14611362578063f2fde38b1461138d578063f96f5b35146113de578063f98df2be14611443576103bf565b8063dd62ed3e14611281578063dd661bda14611306578063e64fef5d14611341578063e8078d9414611358576103bf565b8063c71df532116100dc578063c71df532146110df578063c72359f11461111a578063ccfc2e8d14611155578063d4b0a23b146111a6576103bf565b8063af3337d814610fff578063b2aef26b14611016578063b39d900914611057578063b5d3fa71146110b2576103bf565b806390933dd111610185578063a3a7e7f311610154578063a3a7e7f314610eb5578063a457c2d714610f06578063a69df4b514610f77578063a9059cbb14610f8e576103bf565b806390933dd114610da257806395d89b4114610dcd5780639762f80214610e5d5780639dbc623514610e8a576103bf565b80638bdb2afa116101c15780638bdb2afa14610cca5780638cfeb1e114610d0b5780638da5cb5b14610d365780638e875e1a14610d77576103bf565b8063715018a614610c0d57806375b208bc14610c2457806389a2867c14610c65576103bf565b806331a22a20116102d75780634d3324571161026a57806360a025901161023957806360a0259014610b1557806366fc237b14610b425780636d2ecfc314610b6d57806370a0823114610ba8576103bf565b80634d33245714610a175780634f1a0f7d14610a58578063596fa9e314610a6f5780635a46d3b514610ab0576103bf565b806339509351116102a657806339509351146108eb5780633bd748801461095c5780633d22b544146109875780634b0ee02a146109b2576103bf565b806331a22a2014610853578063378dc3dc1461087e57806338af6632146108a9578063393ac7ae146108c0576103bf565b80631e7be2101161034f578063282d3fdf1161031e578063282d3fdf146107605780632b21a0f2146107bb5780632fae81c2146107e8578063313ce56714610825576103bf565b80631e7be210146105da578063202b17601461063f57806323399434146106a457806323b872dd146106cf576103bf565b80630d43e8ad1161038b5780630d43e8ad146104f057806310a7a6591461053157806314b8fecc1461058257806318160ddd146105af576103bf565b80622b1329146103c457806306fdde03146103ef578063095ea7b31461047f576103bf565b366103bf576103bd61146e565b005b600080fd5b3480156103d057600080fd5b506103d9611769565b6040518082815260200191505060405180910390f35b3480156103fb57600080fd5b5061040461176f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610444578082015181840152602081019050610429565b50505050905090810190601f1680156104715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048b57600080fd5b506104d8600480360360408110156104a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611811565b60405180821515815260200191505060405180910390f35b3480156104fc57600080fd5b5061050561182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053d57600080fd5b506105806004803603602081101561055457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611855565b005b34801561058e57600080fd5b50610597611961565b60405180821515815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611974565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b50610629600480360360208110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061197e565b6040518082815260200191505060405180910390f35b34801561064b57600080fd5b5061068e6004803603602081101561066257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611996565b6040518082815260200191505060405180910390f35b3480156106b057600080fd5b506106b9611b17565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b50610748600480360360608110156106f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b1d565b60405180821515815260200191505060405180910390f35b34801561076c57600080fd5b506107b96004803603604081101561078357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bf6565b005b3480156107c757600080fd5b506107d0611f7c565b60405180821515815260200191505060405180910390f35b3480156107f457600080fd5b506108236004803603602081101561080b57600080fd5b81019080803515159060200190929190505050611f8f565b005b34801561083157600080fd5b5061083a612074565b604051808260ff16815260200191505060405180910390f35b34801561085f57600080fd5b5061086861208b565b6040518082815260200191505060405180910390f35b34801561088a57600080fd5b50610893612091565b6040518082815260200191505060405180910390f35b3480156108b557600080fd5b506108be6120a1565b005b3480156108cc57600080fd5b506108d56123bc565b6040518082815260200191505060405180910390f35b3480156108f757600080fd5b506109446004803603604081101561090e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061244b565b60405180821515815260200191505060405180910390f35b34801561096857600080fd5b506109716124fe565b6040518082815260200191505060405180910390f35b34801561099357600080fd5b5061099c61250b565b6040518082815260200191505060405180910390f35b3480156109be57600080fd5b50610a01600480360360208110156109d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612511565b6040518082815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c612574565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6457600080fd5b50610a6d61259a565b005b348015610a7b57600080fd5b50610a8461286a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610abc57600080fd5b50610aff60048036036020811015610ad357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612890565b6040518082815260200191505060405180910390f35b348015610b2157600080fd5b50610b2a6128d9565b60405180821515815260200191505060405180910390f35b348015610b4e57600080fd5b50610b576128f8565b6040518082815260200191505060405180910390f35b348015610b7957600080fd5b50610ba660048036036020811015610b9057600080fd5b81019080803590602001909291905050506128fe565b005b348015610bb457600080fd5b50610bf760048036036020811015610bcb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d0565b6040518082815260200191505060405180910390f35b348015610c1957600080fd5b50610c22612a19565b005b348015610c3057600080fd5b50610c39612b9f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c7157600080fd5b50610cb460048036036020811015610c8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e52565b6040518082815260200191505060405180910390f35b348015610cd657600080fd5b50610cdf612e9b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1757600080fd5b50610d20612ec1565b6040518082815260200191505060405180910390f35b348015610d4257600080fd5b50610d4b612ec9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8357600080fd5b50610d8c612ef2565b6040518082815260200191505060405180910390f35b348015610dae57600080fd5b50610db7612ef8565b6040518082815260200191505060405180910390f35b348015610dd957600080fd5b50610de2612efe565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e22578082015181840152602081019050610e07565b50505050905090810190601f168015610e4f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e6957600080fd5b50610e72612fa0565b60405180821515815260200191505060405180910390f35b348015610e9657600080fd5b50610e9f612fb5565b6040518082815260200191505060405180910390f35b348015610ec157600080fd5b50610f0460048036036020811015610ed857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fbb565b005b348015610f1257600080fd5b50610f5f60048036036040811015610f2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132c9565b60405180821515815260200191505060405180910390f35b348015610f8357600080fd5b50610f8c613396565b005b348015610f9a57600080fd5b50610fe760048036036040811015610fb157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613576565b60405180821515815260200191505060405180910390f35b34801561100b57600080fd5b50611014613594565b005b34801561102257600080fd5b5061102b613c76565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561106357600080fd5b506110b06004803603604081101561107a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c9c565b005b3480156110be57600080fd5b506110c7613dac565b60405180821515815260200191505060405180910390f35b3480156110eb57600080fd5b506111186004803603602081101561110257600080fd5b8101908080359060200190929190505050613dba565b005b34801561112657600080fd5b506111536004803603602081101561113d57600080fd5b8101908080359060200190929190505050613e8c565b005b34801561116157600080fd5b506111a46004803603602081101561117857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6c565b005b3480156111b257600080fd5b5061127f600480360360408110156111c957600080fd5b81019080803590602001906401000000008111156111e657600080fd5b8201836020820111156111f857600080fd5b8035906020019184602083028401116401000000008311171561121a57600080fd5b90919293919293908035906020019064010000000081111561123b57600080fd5b82018360208201111561124d57600080fd5b8035906020019184602083028401116401000000008311171561126f57600080fd5b9091929391929390505050614078565b005b34801561128d57600080fd5b506112f0600480360360408110156112a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614221565b6040518082815260200191505060405180910390f35b34801561131257600080fd5b5061133f6004803603602081101561132957600080fd5b81019080803590602001909291905050506142a8565b005b34801561134d57600080fd5b50611356614388565b005b61136061146e565b005b34801561136e57600080fd5b50611377614afe565b6040518082815260200191505060405180910390f35b34801561139957600080fd5b506113dc600480360360208110156113b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614b06565b005b3480156113ea57600080fd5b5061142d6004803603602081101561140157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614d11565b6040518082815260200191505060405180910390f35b34801561144f57600080fd5b50611458614d29565b6040518082815260200191505060405180910390f35b6114766128d9565b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c69717569646974792047656e65726174696f6e204576656e74206f7665720081525060200191505060405180910390fd5b682567ac70392b88000061154434600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b11156115b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f686172636170207265616368656400000000000000000000000000000000000081525060200191505060405180910390fd5b6115c0613dac565b158061165c5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165934600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b11155b6116b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615c57602a913960400191505060405180910390fd5b34600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061171334600a54614d2f90919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167f20b711375edba008429d2f91787c68aa13aab7f267c346bf91be1a104d8b7b8b346040518082815260200191505060405180910390a2565b60095481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118075780601f106117dc57610100808354040283529160200191611807565b820191906000526020600020905b8154815290600101906020018083116117ea57829003601f168201915b5050505050905090565b600061182561181e614db7565b8484614dbf565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61185d614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461191d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900460ff1681565b6000600354905090565b600d6020528060005260406000206000915090505481565b60006017544310156119ab5760009050611b12565b60185443106119fb57601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611b12565b6000611a4f601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205443614fb690919063ffffffff16565b90506000611aa7601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601854614fb690919063ffffffff16565b9050611b0d81611aff84601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500090919063ffffffff16565b61508690919063ffffffff16565b925050505b919050565b600a5481565b6000611b2a8484846150d0565b611beb84611b36614db7565b611be685604051806060016040528060288152602001615be960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611b9c614db7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461574f9092919063ffffffff16565b614dbf565b600190509392505050565b611bfe614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206c6f636b20746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611d6a826129d0565b811115611ddf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f45524332303a206c6f636b20616d6f756e74206f76657220626c616e6365000081525060200191505060405180910390fd5b611dea8230836150d0565b611e3c81601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9481601654614d2f90919063ffffffff16565b601681905550601754601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f2a57601754601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427826040518082815260200191505060405180910390a25050565b601160009054906101000a900460ff1681565b611f97614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612057576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900460ff16905090565b600b5481565b6b033b2e3c9fd0803ce800000081565b600c60009054906101000a900460ff16612123576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4576656e74206e6f74206f76657220796574000000000000000000000000000081525060200191505060405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116121d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e6f7468696e6720746f20636c61696d2c206d6f766520616c6f6e670000000081525060200191505060405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061226f670de0b6b3a7640000612261600b54600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500090919063ffffffff16565b61508690919063ffffffff16565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122e257600080fd5b505af11580156122f6573d6000803e3d6000fd5b505050506040513d602081101561230c57600080fd5b8101908080519060200190929190505050506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f586e28f4f60b4d906fc69694ea6d7fe5c5668730ce3286d7af8eca868f3c27603382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600080600f544203905060006123f3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166129d0565b90506124446064612436620151806124288661241a6012548861500090919063ffffffff16565b61500090919063ffffffff16565b61508690919063ffffffff16565b61508690919063ffffffff16565b9250505090565b60006124f4612458614db7565b846124ef8560026000612469614db7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b614dbf565b6001905092915050565b682567ac70392b88000081565b60135481565b600061256d61251f836129d0565b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b9050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125a2614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b62015180635f9c46900142116126c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615b99602f913960400191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d8060008114612723576040519150601f19603f3d011682016040523d82523d6000602084013e612728565b606091505b505090508061279f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5472616e73666572206661696c65642e0000000000000000000000000000000081525060200191505060405180910390fd5b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600042635f9c46901180156128f357506128f1612fa0565b155b905090565b60175481565b612906614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060138190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612a21614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f546f6b656e3a20706f6f6c20616c72656164792063726561746564000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d0a57600080fd5b505afa158015612d1e573d6000803e3d6000fd5b505050506040513d6020811015612d3457600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015612daf57600080fd5b505af1158015612dc3573d6000803e3d6000fd5b505050506040513d6020811015612dd957600080fd5b8101908080519060200190929190505050600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b635f9c388081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b600f5481565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f965780601f10612f6b57610100808354040283529160200191612f96565b820191906000526020600020905b815481529060010190602001808311612f7957829003601f168201915b5050505050905090565b6000682567ac70392b880000600a5411905090565b60105481565b61304c601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601754601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561311f57601754601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561322957601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c633826132c1336129d0565b6150d0565b50565b600061338c6132d6614db7565b8461338785604051806060016040528060258152602001615ced6025913960026000613300614db7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461574f9092919063ffffffff16565b614dbf565b6001905092915050565b6000601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161344b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f45524332303a2063616e6e6f7420756e6c6f636b00000000000000000000000081525060200191505060405180910390fd5b600061345633611996565b9050613461306129d0565b81111561347457613471306129d0565b90505b61347f3033836150d0565b6134d181601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fb690919063ffffffff16565b601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061356d81601654614fb690919063ffffffff16565b60168190555050565b600061358a613583614db7565b84846150d0565b6001905092915050565b600c60009054906101000a900460ff166135f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615cc96024913960400191505060405180910390fd5b69021e19e0c9bab24000007369692d3345010a207b759a7d1af6fc7f38b35c5e73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561367f57600080fd5b505afa158015613693573d6000803e3d6000fd5b505050506040513d60208110156136a957600080fd5b81019080805190602001909291905050501015806137855750683635c9adc5dea0000073bd2949f67dcdc549c6ebe98696449fa79d988a9f73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561374757600080fd5b505afa15801561375b573d6000803e3d6000fd5b505050506040513d602081101561377157600080fd5b810190808051906020019092919050505010155b6137da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615aa16024913960400191505060405180910390fd5b60006137e46123bc565b9050670de0b6b3a7640000811015613847576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b526021913960400191505060405180910390fd5b42600f819055506000613878606461386a6013548561500090919063ffffffff16565b61508690919063ffffffff16565b90506138a7600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633836150d0565b60006138bc8284614fb690919063ffffffff16565b9050601160009054906101000a900460ff1615613904576138ff600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261580f565b613b79565b6000811180156139635750600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15613b78576139dc8160016000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b60016000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663423d6fa0826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613b5f57600080fd5b505af1158015613b73573d6000803e3d6000fd5b505050505b5b613b8e81601054614d2f90919063ffffffff16565b6010819055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c0357600080fd5b505af1158015613c17573d6000803e3d6000fd5b505050507fcf9f69df084d4a025fbc4f4dec61ecf630acc5a830d711799fdccc0726df2a133385604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b613ca4614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613d64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000635f9c38804210905090565b613dc2614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060128190555050565b613e94614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6018548111613f6257600080fd5b8060188190555050565b613f74614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b614080614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614140576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8181905084849050146141bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f646966662061727261797300000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b8484905081101561421a5761420d8585838181106141d857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1684848481811061420157fe5b90506020020135613c9c565b80806001019150506141be565b5050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6142b0614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601754811161437e57600080fd5b8060178190555050565b614390614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000151561445c6128d9565b1515146144d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c69717569646974792067656e65726174696f6e206f6e67696e67000000000081525060200191505060405180910390fd5b60001515600c60009054906101000a900460ff1615151461453d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615d126025913960400191505060405180910390fd5b47600a819055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156145d557600080fd5b505afa1580156145e9573d6000803e3d6000fd5b505050506040513d60208110156145ff57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0600a546040518263ffffffff1660e01b81526004016000604051808303818588803b15801561465c57600080fd5b505af1158015614670573d6000803e3d6000fd5b5050505050600047146146eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5472616e73666572204661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561475e57600080fd5b505af1158015614772573d6000803e3d6000fd5b505050506040513d602081101561478857600080fd5b810190808051906020019092919050505050600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16636a627842306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156148cb57600080fd5b505af11580156148df573d6000803e3d6000fd5b505050506040513d60208110156148f557600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561496e57600080fd5b505afa158015614982573d6000803e3d6000fd5b505050506040513d602081101561499857600080fd5b810190808051906020019092919050505060098190555060006009541415614a28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4c50206372656174696f6e206661696c6564000000000000000000000000000081525060200191505060405180910390fd5b614a59600a54614a4b670de0b6b3a764000060095461500090919063ffffffff16565b61508690919063ffffffff16565b600b819055506000600b541415614ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4c50206372656174696f6e206661696c6564000000000000000000000000000081525060200191505060405180910390fd5b6001600c60006101000a81548160ff02191690831515021790555042600f819055505050565b635f9c469081565b614b0e614db7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614bce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615b0a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e6020528060005260406000206000915090505481565b60125481565b600080828401905083811015614dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615ca56024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b306022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000614ff883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061574f565b905092915050565b6000808314156150135760009050615080565b600082840290508284828161502457fe5b041461507b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615bc86021913960400191505060405180910390fd5b809150505b92915050565b60006150c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415615156576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615c326025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156151dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615ac56023913960400191505060405180910390fd5b6151e7838383615a9b565b61525381604051806060016040528060268152602001615b7360269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461574f9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663301a58018686866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040805180830381600087803b15801561534957600080fd5b505af115801561535d573d6000803e3d6000fd5b505050506040513d604081101561537357600080fd5b81019080805190602001909291908051906020019092919050505091509150826153a68284614d2f90919063ffffffff16565b146153fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615c816024913960400191505060405180910390fd5b61544e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36000811180156155555750600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15615748576155ce8160016000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d2f90919063ffffffff16565b60016000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663423d6fa0826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561572f57600080fd5b505af1158015615743573d6000803e3d6000fd5b505050505b5050505050565b60008383111582906157fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156157c15780820151818401526020810190506157a6565b50505050905090810190601f1680156157ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415615895576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615c116021913960400191505060405180910390fd5b6158a182600083615a9b565b61590d81604051806060016040528060228152602001615ae860229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461574f9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061596581600354614fb690919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008083118290615a81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615a46578082015181840152602081019050615a2b565b50505050905090810190601f168015615a735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581615a8d57fe5b049050809150509392505050565b50505056fe6d75737420686f6c642031302c303030204348414453206f7220312c30303020454d545245524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d696e2063686572727920706f7020616d6f756e74206e6f74207265616368656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654c69717569646974792067656e65726174696f6e20677261636520706572696f64207374696c6c206f6e676f696e67536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373696e646976696475616c20636170206578636565646564206f72206e6f742077686974656c69737465644d6174682062726f6b652c20646f65732067726176697479207374696c6c20776f726b3f45524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734c69717569646974792067656e65726174696f6e206973206e6f742066696e697368656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4c69717569646974792067656e65726174696f6e20616c72656164792066696e6973686564a26469706673582212206e579e4c4fc12fe59938d53e86869203dec520bdbfe17410e6d7d2e21ac7e89164736f6c634300060c00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f