608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734752ba5dbc23f44d87826276bf6fd6b1c372ad24600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a6305f5e100026005556103e86101f360055402816200010157fe5b046006556103e86101f360055402816200011757fe5b0460075561070860085560006009556000600a556000600b556001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506000600c60026101000a81548160ff0219169083151502179055506001600c60036101000a81548160ff021916908315150217905550600160135560046014556000601555600060165560006017556001601c60156101000a81548160ff0219169083151502179055506000601c60166101000a81548160ff0219169083151502179055506107d0600580540281620001fb57fe5b04601d553480156200020c57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037257600080fd5b505afa15801562000387573d6000803e3d6000fd5b505050506040513d60208110156200039e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043357600080fd5b505afa15801562000448573d6000803e3d6000fd5b505050506040513d60208110156200045f57600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004db57600080fd5b505af1158015620004f0573d6000803e3d6000fd5b505050506040513d60208110156200050757600080fd5b8101908080519060200190929190505050601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507329d2cd08b6ea99107cdd379b92f76f119e4c2727601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a272be86b7943abd334dd8fc211037089b23de4c601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620009b5601554620009a160145460135462000a7860201b62001dcd1790919060201c565b62000a7860201b62001dcd1790919060201c565b601681905550601654601781905550600554600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a362000b01565b60008082840190508381101562000af7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b613f378062000b116000396000f3fe6080604052600436106102815760003560e01c80638b42507f1161014f578063cec10c11116100c1578063ed14f20a1161007a578063ed14f20a14610dc2578063ef99f34f14610e29578063f0b37c0414610e56578063f2fde38b14610ea7578063f887ea4014610ef8578063fe9fbb8014610f3957610288565b8063cec10c1114610bfc578063d5a6549414610c4b578063da00097d14610c76578063dd62ed3e14610ca3578063e2876ef414610d28578063ebbc783e14610d6557610288565b8063a9059cbb11610113578063a9059cbb14610a62578063b41e664014610ad3578063b6a5d7de14610b14578063c08d1fe514610b65578063ca33e64c14610b90578063ca987b0e14610bd157610288565b80638b42507f146108c457806395d89b411461092b57806398118cb4146109bb5780639a3df25d146109e6578063a8aa1b3114610a2157610288565b806344de2e4c116101f357806375f0a874116101ac57806375f0a8741461076e57806378337e6f146107af5780637d1db4a5146107da5780637daf4b2b14610805578063807c2d9c14610858578063893d20e81461088357610288565b806344de2e4c146105f25780634a74bb021461061f578063571ac8b01461064c5780636b67c4df146106b357806370a08231146106de578063745da76b1461074357610288565b80631df4ccfc116102455780631df4ccfc1461040f57806323b872dd1461043a5780632b112e49146104cb5780632f54bf6e146104f6578063313ce5671461055d5780633f4218e01461058b57610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146103485780630ab0df87146103b957806318160ddd146103e457610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610fa0565b6040518082815260200191505060405180910390f35b3480156102c457600080fd5b506102cd610fa6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030d5780820151818401526020810190506102f2565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035457600080fd5b506103a16004803603604081101561036b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fe3565b60405180821515815260200191505060405180910390f35b3480156103c557600080fd5b506103ce6110d5565b6040518082815260200191505060405180910390f35b3480156103f057600080fd5b506103f96110db565b6040518082815260200191505060405180910390f35b34801561041b57600080fd5b506104246110e5565b6040518082815260200191505060405180910390f35b34801561044657600080fd5b506104b36004803603606081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110eb565b60405180821515815260200191505060405180910390f35b3480156104d757600080fd5b506104e06112eb565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b506105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136d565b60405180821515815260200191505060405180910390f35b34801561056957600080fd5b506105726113c6565b604051808260ff16815260200191505060405180910390f35b34801561059757600080fd5b506105da600480360360208110156105ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113cf565b60405180821515815260200191505060405180910390f35b3480156105fe57600080fd5b506106076113ef565b60405180821515815260200191505060405180910390f35b34801561062b57600080fd5b50610634611402565b60405180821515815260200191505060405180910390f35b34801561065857600080fd5b5061069b6004803603602081101561066f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611415565b60405180821515815260200191505060405180910390f35b3480156106bf57600080fd5b506106c8611448565b6040518082815260200191505060405180910390f35b3480156106ea57600080fd5b5061072d6004803603602081101561070157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061144e565b6040518082815260200191505060405180910390f35b34801561074f57600080fd5b50610758611497565b6040518082815260200191505060405180910390f35b34801561077a57600080fd5b5061078361149d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bb57600080fd5b506107c46114c3565b6040518082815260200191505060405180910390f35b3480156107e657600080fd5b506107ef6114c9565b6040518082815260200191505060405180910390f35b34801561081157600080fd5b506108566004803603606081101561082857600080fd5b81019080803515159060200190929190803590602001909291908035151590602001909291905050506114cf565b005b34801561086457600080fd5b5061086d61158a565b6040518082815260200191505060405180910390f35b34801561088f57600080fd5b50610898611590565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d057600080fd5b50610913600480360360208110156108e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b9565b60405180821515815260200191505060405180910390f35b34801561093757600080fd5b506109406115d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610980578082015181840152602081019050610965565b50505050905090810190601f1680156109ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109c757600080fd5b506109d0611616565b6040518082815260200191505060405180910390f35b3480156109f257600080fd5b50610a1f60048036036020811015610a0957600080fd5b810190808035906020019092919050505061161c565b005b348015610a2d57600080fd5b50610a366116a1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6e57600080fd5b50610abb60048036036040811015610a8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116c7565b60405180821515815260200191505060405180910390f35b348015610adf57600080fd5b50610ae86116dc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2057600080fd5b50610b6360048036036020811015610b3757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611702565b005b348015610b7157600080fd5b50610b7a6117d7565b6040518082815260200191505060405180910390f35b348015610b9c57600080fd5b50610ba56117dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bdd57600080fd5b50610be6611803565b6040518082815260200191505060405180910390f35b348015610c0857600080fd5b50610c4960048036036060811015610c1f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611809565b005b348015610c5757600080fd5b50610c606118d8565b6040518082815260200191505060405180910390f35b348015610c8257600080fd5b50610c8b6118de565b60405180821515815260200191505060405180910390f35b348015610caf57600080fd5b50610d1260048036036040811015610cc657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f1565b6040518082815260200191505060405180910390f35b348015610d3457600080fd5b50610d6360048036036020811015610d4b57600080fd5b81019080803515159060200190929190505050611978565b005b348015610d7157600080fd5b50610dc060048036036040811015610d8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611a10565b005b348015610dce57600080fd5b50610e1160048036036020811015610de557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae6565b60405180821515815260200191505060405180910390f35b348015610e3557600080fd5b50610e3e611b06565b60405180821515815260200191505060405180910390f35b348015610e6257600080fd5b50610ea560048036036020811015610e7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b19565b005b348015610eb357600080fd5b50610ef660048036036020811015610eca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bef565b005b348015610f0457600080fd5b50610f0d611d51565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f4557600080fd5b50610f8860048036036020811015610f5c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d77565b60405180821515815260200191505060405180910390f35b601d5481565b60606040518060400160405280600f81526020017f426173656447656e65726963446f670000000000000000000000000000000000815250905090565b600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60095481565b6000600554905090565b60165481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112d757611256826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e559092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112e2848484611f15565b90509392505050565b600061136861131b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661144e565b61135a611349600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661144e565b60055461253690919063ffffffff16565b61253690919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b600f6020528060005260406000206000915054906101000a900460ff1681565b600c60039054906101000a900460ff1681565b601c60159054906101000a900460ff1681565b6000611441827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610fe3565b9050919050565b60145481565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60155481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b60065481565b6114d833611d77565b61154a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601c60156101000a81548160ff02191690831515021790555081601d8190555080601c60166101000a81548160ff021916908315150217905550505050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60106020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f42444f4700000000000000000000000000000000000000000000000000000000815250905090565b60135481565b61162533611d77565b611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116d4338484611f15565b905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61170b3361136d565b61177d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b61181233611d77565b611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260138190555081601481905550806015819055506118c46015546118b6601454601354611dcd90919063ffffffff16565b611dcd90919063ffffffff16565b601681905550601654601781905550505050565b600b5481565b601c60169054906101000a900460ff1681565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61198133611d77565b6119f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b611a1933611d77565b611a8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60116020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900460ff1681565b611b223361136d565b611b94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bf83361136d565b611c6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015611e4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ec7578082015181840152602081019050611eac565b50505050905090810190601f168015611ef45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60149054906101000a900460ff1615611f3e57611f37848484612580565b905061252f565b60065482111580611f985750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61200a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120755750601c60149054906101000a900460ff16155b801561208d5750601c60159054906101000a900460ff165b80156120da5750601d54600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156120e8576120e7612753565b5b6120f3848484612e2b565b6120fd84846139a7565b15612170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f446f6e277420636865617400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6121f9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e559092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122a25750600c60039054906101000a900460ff165b15612371576007546122fc83600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcd90919063ffffffff16565b1115612370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d61782077616c6c65742076696f6c617465642100000000000000000000000081525060200191505060405180910390fd5b5b6000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124175750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612421578261242d565b61242c858585613b31565b5b905061248181600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcd90919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061257883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e55565b905092915050565b600061260b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e559092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcd90919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601c60146101000a81548160ff0219169083151502179055506000600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006127f060026127e26016546127d460135487613cd990919063ffffffff16565b613d5f90919063ffffffff16565b613d5f90919063ffffffff16565b90506000612807828461253690919063ffffffff16565b90506000600267ffffffffffffffff8111801561282357600080fd5b506040519080825280602002602001820160405280156128525781602001602082028036833780820191505090505b509050308160008151811061286357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561290557600080fd5b505afa158015612919573d6000803e3d6000fd5b505050506040513d602081101561292f57600080fd5b81019080805190602001909291905050508160018151811061294d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612a4b578082015181840152602081019050612a30565b505050509050019650505050505050600060405180830381600087803b158015612a7457600080fd5b505af1158015612a88573d6000803e3d6000fd5b5050505060004790506000612abd612aac6002601354613d5f90919063ffffffff16565b60165461253690919063ffffffff16565b90506000612ae882612ada60145486613cd990919063ffffffff16565b613d5f90919063ffffffff16565b90506000612b1383612b0560155487613cd990919063ffffffff16565b613d5f90919063ffffffff16565b90506000612b516002612b4386612b356013548a613cd990919063ffffffff16565b613d5f90919063ffffffff16565b613d5f90919063ffffffff16565b90506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d8060008114612bda576040519150601f19603f3d011682016040523d82523d6000602084013e612bdf565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d8060008114612c6a576040519150601f19603f3d011682016040523d82523d6000602084013e612c6f565b606091505b50509050600091506000905060008a1115612e0357601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308d600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612d7057600080fd5b505af1158015612d84573d6000803e3d6000fd5b50505050506040513d6060811015612d9b57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601c60146101000a81548160ff021916908315150217905550565b60065481111580612e855750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ef7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f9f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ff55750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561304f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130a95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156131035750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561313b57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156135f95761314982613da9565b600c60009054906101000a900460ff1615613545576000600267ffffffffffffffff8111801561317857600080fd5b506040519080825280602002602001820160405280156131a75781602001602082028036833780820191505090505b509050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561321257600080fd5b505afa158015613226573d6000803e3d6000fd5b505050506040513d602081101561323c57600080fd5b81019080805190602001909291905050508160008151811061325a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106132a257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561337657808201518184015260208101905061335b565b50505050905001935050505060006040518083038186803b15801561339a57600080fd5b505afa1580156133ae573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156133d857600080fd5b81019080805160405193929190846401000000008211156133f857600080fd5b8382019150602082018581111561340e57600080fd5b825186602082028301116401000000008211171561342b57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015613462578082015181840152602081019050613447565b5050505090500160405250505060008151811061347b57fe5b60200260200101519050601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134e05750600a5481115b1561353e5783601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600981905550600a54600b8190555080600a819055505b50506135f8565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135a05750600a5481115b156135f75781601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600b8190555080600a819055505b5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156136a1575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136f75750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137515750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561378957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561390957601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137e557600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138b057601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600b819055506000600a819055505b6001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600c60009054906101000a900460ff16156139a257426008546009540110156139a157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600b819055506000600a819055505b5b505050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4a5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613a615750600c60029054906101000a900460ff165b15613a6f5760009050613b2b565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613b185750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15613b265760009050613b2b565b600190505b92915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613b9157601654613b95565b6017545b90506000613bbf6064613bb18487613cd990919063ffffffff16565b613d5f90919063ffffffff16565b9050613c1381600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcd90919063ffffffff16565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613cce818561253690919063ffffffff16565b925050509392505050565b600080831415613cec5760009050613d59565b6000828402905082848281613cfd57fe5b0414613d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613ee16021913960400191505060405180910390fd5b809150505b92915050565b6000613da183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e1a565b905092915050565b600c60019054906101000a900460ff1615613e17576001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b60008083118290613ec6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613e8b578082015181840152602081019050613e70565b50505050905090810190601f168015613eb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ed257fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c694d616e696f6e206f766572666c6f77a2646970667358221220ac2e256f0eced3d7934b8ce06a3b3c9ff9639d809586bda25978b59f00bba2ed64736f6c63430007060033