60806040523480156200001157600080fd5b5060405162003ef138038062003ef18339810180604052810190808051906020019092919080518201929190602001805190602001909291908051820192919060200180519060200190929190505050836002908051906020019062000079929190620001f1565b50816003908051906020019062000092929190620001f1565b5082600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a8502600581905550600554601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550635e197115600981905550600460009054906101000a900460ff1660ff16600a0a61018402600f8190555065978595d1d000600881905550611772600b819055506005600a81905550620151806011819055505050505050620002a0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023457805160ff191683800117855562000265565b8280016001018555821562000265579182015b828111156200026457825182559160200191906001019062000247565b5b50905062000274919062000278565b5090565b6200029d91905b80821115620002995760008160009055506001016200027f565b5090565b90565b613c4180620002b06000396000f3006080604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302ca053c146101ae57806306fdde03146101db578063095ea7b31461026b5780631019ab83146102d05780631557d4ff1461031e57806318160ddd1461038b5780631dae6529146103b657806323b872dd1461040d578063313ce5671461049257806331b43663146104c357806339740f18146104da57806342966c68146105275780634e6730bd1461056c5780635dc43514146105c35780636623fc46146106065780636f77926b1461064b57806370a08231146106be5780638a6babac146107155780638da5cb5b14610740578063900cd58e1461079757806395d89b41146107ae57806399a9e03f1461083e578063a0b24e8214610874578063a27b377a146108a1578063a354d3f6146108b8578063a9059cbb1461091e578063c00f23b21461096b578063c1bf75d814610998578063c45ff7c7146109ef578063c9bd90c414610a62578063cd4217c114610a79578063d7a78db814610ad0578063dd62ed3e14610b15578063fe0174bd14610b8c575b005b3480156101ba57600080fd5b506101d960048036038101908080359060200190929190505050610bbe565b005b3480156101e757600080fd5b506101f0611104565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610230578082015181840152602081019050610215565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506102b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111a2565b604051808215151515815260200191505060405180910390f35b3480156102dc57600080fd5b506102e561123d565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b34801561032a57600080fd5b506103496004803603810190808035906020019092919050505061126c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039757600080fd5b506103a06112aa565b6040518082815260200191505060405180910390f35b3480156103c257600080fd5b506103cb6112b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041957600080fd5b50610478600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d5565b604051808215151515815260200191505060405180910390f35b34801561049e57600080fd5b506104a76117d6565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104cf57600080fd5b506104d86117e9565b005b3480156104e657600080fd5b50610525600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a7f565b005b34801561053357600080fd5b5061055260048036038101908080359060200190929190505050611b56565b604051808215151515815260200191505060405180910390f35b34801561057857600080fd5b50610581611ca8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cf57600080fd5b50610604600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cce565b005b34801561061257600080fd5b5061063160048036038101908080359060200190929190505050611d7f565b604051808215151515815260200191505060405180910390f35b34801561065757600080fd5b5061068c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612027565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156106ca57600080fd5b506106ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120d3565b6040518082815260200191505060405180910390f35b34801561072157600080fd5b5061072a6120eb565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b5061075561210a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a357600080fd5b506107ac612130565b005b3480156107ba57600080fd5b506107c3612678565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610872600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612716565b005b34801561088057600080fd5b5061089f60048036038101908080359060200190929190505050612a6a565b005b3480156108ad57600080fd5b506108b6612bba565b005b3480156108c457600080fd5b5061091c60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612de2565b005b34801561092a57600080fd5b50610969600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e58565b005b34801561097757600080fd5b50610996600480360381019080803590602001909291905050506131c2565b005b3480156109a457600080fd5b506109d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061337a565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613392565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b348015610a6e57600080fd5b50610a776133c8565b005b348015610a8557600080fd5b50610aba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136c5565b6040518082815260200191505060405180910390f35b348015610adc57600080fd5b50610afb600480360381019080803590602001909291905050506136dd565b604051808215151515815260200191505060405180910390f35b348015610b2157600080fd5b50610b76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613985565b6040518082815260200191505060405180910390f35b348015610b9857600080fd5b50610ba16139aa565b604051808381526020018281526020019250505060405180910390f35b60008060008060008060008088111515610bd757600080fd5b600b54670de0b6b3a7640000028810151515610c5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f424542205468652073756d20697320746f6f20736d616c6c000000000000000081525060200191505060405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020965087601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ce857600080fd5b610cf488600b54613a82565b9550610d3f601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489613ac3565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611000576001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610f6857610e286905150ae84a8cdf000000600c54613a82565b9450610e38428860020154613ac3565b935060115484811515610e4757fe5b0492506000831115610f6357610e65670de0b6b3a764000086613adc565b9150610e718284613adc565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610f3857600080fd5b505af1158015610f4c573d6000803e3d6000fd5b50505050610f5c600e5483613b0f565b600e819055505b610fff565b610fb3600e54601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b0f565b600e819055506000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b61100e876001015487613b0f565b87600101819055504287600201819055506000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061107060055489613ac3565b600581905550611082600c5487613b0f565b600c8190555061109460075489613b0f565b6007819055506110a6600e5489613ac3565b600e819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5896040518082815260200191505060405180910390a25050505050505050565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b505050505081565b600080821115156111b257600080fd5b81601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b600080600080600080600c54600754600e54600854600d54600f54955095509550955095509550909192939495565b60128181548110151561127b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156113b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614156113d757600080fd5b6000821115156113e657600080fd5b81601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561143257600080fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110156114bf57600080fd5b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561154857600080fd5b611591601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613ac3565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061161d601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613b0f565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e6601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613ac3565b601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b60006011546009544203111561185057611807600954601154613b0f565b60098190555061181e6008546499ab10c800613b0f565b6008819055506001600d60008282540192505081905550611849670de0b6b3a7640000600854613a82565b600b819055505b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515611a10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f492063616e2774206765742069742e20596f7520616c7265616479206861766581526020017f2061206d696e657200000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611a268160010154670de0b6b3a7640000613b0f565b81600101819055504281600201819055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611add57600080fd5b635e34ce90421115611aee57600080fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816001018190555042816002018190555081600c60008282540192505081905550505050565b600081601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ba457600080fd5b600082111515611bb357600080fd5b611bfc601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613ac3565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4b60055483613ac3565b6005819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d2a57600080fd5b635e34ce90421115611d3b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b81601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ea957600080fd5b600082111515611eb857600080fd5b611f01601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613ac3565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8d601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613b0f565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a260019050919050565b600080600080600080600080601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600c546932d26d12e980b600000081151561208b57fe5b0491508183600101540290508260000154836001015484600201548384601154886002015442038115156120bb57fe5b04029750975097509750975050505091939590929450565b60156020528060005260406000206000915090505481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080601154600954420311156121a157612158600954601154613b0f565b60098190555061216f6008546499ab10c800613b0f565b6008819055506001600d6000828254019250508190555061219a670de0b6b3a7640000600854613a82565b600b819055505b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209750670de0b6b3a7640000886001015411156122d6576001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156122d557612289600e54601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b0f565b600e819055506000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b60008860010154111515612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f596f7520646f6e277420686176652061206d696e65720000000000000000000081525060200191505060405180910390fd5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b87600101549650612444428960020154613ac3565b9550601154861115156124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4e6f207769746864726177616c20666f72206c657373207468616e203234206881526020017f6f7572730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124f186601154613a82565b94506125096932d26d12e980b6000000600c54613a82565b93506125158785613adc565b92506125218386613adc565b9150846103e86005890281151561253457fe5b04029050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156125fd57600080fd5b505af1158015612611573d6000803e3d6000fd5b50505050612623886001015482613ac3565b8860010181905550428860020181905550612640600e5483613b0f565b600e81905550612652600c5482613ac3565b600c81905550612666886000015483613b0f565b88600001819055505050505050505050565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561270e5780601f106126e35761010080835404028352916020019161270e565b820191906000526020600020905b8154815290600101906020018083116126f157829003601f168201915b505050505081565b6000806000806011546009544203111561278157612738600954601154613b0f565b60098190555061274f6008546499ab10c800613b0f565b6008819055506001600d6000828254019250508190555061277a670de0b6b3a7640000600854613a82565b600b819055505b34935060008411151561279357600080fd5b61279f84600b54613adc565b92506064600285028115156127b057fe5b0491506064606285028115156127c257fe5b04905082601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156128a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536f7272792c20796f7572206372656469742069732072756e6e696e67206c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8633866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561299b57600080fd5b505af11580156129af573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a1b573d6000803e3d6000fd5b508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a62573d6000803e3d6000fd5b505050505050565b60115460095442031115612acf57612a86600954601154613b0f565b600981905550612a9d6008546499ab10c800613b0f565b6008819055506001600d60008282540192505081905550612ac8670de0b6b3a7640000600854613a82565b600b819055505b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515612bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b612bb630826111a2565b5050565b6000635e8d1d65421015612bcd57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c2957600080fd5b600090505b601280549050811015612ddf57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601283815481101515612c8857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612d3b57600080fd5b505af1158015612d4f573d6000803e3d6000fd5b50505050600f5460146000601284815481101515612d6957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050612c2e565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e3e57600080fd5b8060129080519060200190612e54929190613b48565b5050565b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515612f35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415612f5957600080fd5b600081111515612f6857600080fd5b80601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612fb457600080fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561304157600080fd5b61308a601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613ac3565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613116601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613b0f565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080635e546ce54210156131d657600080fd5b6131e283600b54613a82565b91506000821115156131f357600080fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561332c57600080fd5b505af1158015613340573d6000803e3d6000fd5b50505050613352816001015483613b0f565b816001018190555042816002018190555061336f600c5483613b0f565b600c81905550505050565b60146020528060005260406000206000915090505481565b60136020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b60008060115460095442031115613430576133e7600954601154613b0f565b6009819055506133fe6008546499ab10c800613b0f565b6008819055506001600d60008282540192505081905550613429670de0b6b3a7640000600854613a82565b600b819055505b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600082600101541115151561348557600080fd5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515613562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b613574600f5465978595d1d000613adc565b905061358281600854613a82565b600f81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600f546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561364f57600080fd5b505af1158015613663573d6000803e3d6000fd5b50505050600f54601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136bb601054600f54613b0f565b6010819055505050565b60166020528060005260406000206000915090505481565b600080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156137bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c65617365206163746976617465206f6e207468652077656273697465207781526020017f77772e65786265622e636f6d000000000000000000000000000000000000000081525060400191505060405180910390fd5b81601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561380757600080fd5b60008211151561381657600080fd5b61385f601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613ac3565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138eb601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613b0f565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0836040518082815260200191505060405180910390a260019050919050565b6017602052816000526040600020602052806000526040600020600091509150505481565b600080600060136000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806001015460156000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492509250509091565b600080613a9160008411613b39565b8284811515613a9c57fe5b049050613ab98385811515613aad57fe5b06828502018514613b39565b8091505092915050565b6000613ad183831115613b39565b818303905092915050565b6000808284029050613b056000851480613b005750838583811515613afd57fe5b04145b613b39565b8091505092915050565b6000808284019050613b2f848210158015613b2a5750838210155b613b39565b8091505092915050565b801515613b4557600080fd5b50565b828054828255906000526020600020908101928215613bc1579160200282015b82811115613bc05782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613b68565b5b509050613bce9190613bd2565b5090565b613c1291905b80821115613c0e57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613bd8565b5090565b905600a165627a7a7230582078ce32dbd5db8235a46f6769edee3f265275abb75bbed221dd8637590389a58100290000000000000000000000000000000000000000000000000000000218711a0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000e00000000000000000000000006798cc8ad079a7e663536f83ee26d63aabe03da9000000000000000000000000000000000000000000000000000000000000000a6265746265622e636f6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034245420000000000000000000000000000000000000000000000000000000000