60806040526000600a60146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600f81526020017f4c75636b794368616c6c656e67657300000000000000000000000000000000008152506040518060400160405280600381526020017f4c4d430000000000000000000000000000000000000000000000000000000000815250620000b16301ffc9a760e01b6200020e60201b60201c565b8160069080519060200190620000c99291906200033b565b508060079080519060200190620000e29291906200033b565b50620000fb6380ac58cd60e01b6200020e60201b60201c565b62000113635b5e139f60e01b6200020e60201b60201c565b6200012b63780e9d6360e01b6200020e60201b60201c565b505060006200013f6200031760201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000208604051806060016040528060298152602001620039b8602991396200031f60201b60201c565b620003e1565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620002ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b8060099080519060200190620003379291906200033b565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037e57805160ff1916838001178555620003af565b82800160010185558215620003af579182015b82811115620003ae57825182559160200191906001019062000391565b5b509050620003be9190620003c2565b5090565b5b80821115620003dd576000816000905550600101620003c3565b5090565b6135c780620003f16000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a4e2d63411610097578063e0b6bb6711610071578063e0b6bb6714610a4f578063e985e9c514610a59578063f2fde38b14610ad3578063ffe630b514610b175761018e565b8063a4e2d63414610883578063b88d4fde146108a3578063c87b56dd146109a85761018e565b806370a08231146106d6578063715018a61461072e5780638da5cb5b1461073857806395d89b411461076c5780639dabff25146107ef578063a22cb465146108335761018e565b806323b872dd1161014b5780634f6ccce7116101255780634f6ccce7146104fe57806355f804b3146105405780636352211e146105fb5780636c0360eb146106535761018e565b806323b872dd146103c05780632f745c591461042e57806342842e0e146104905761018e565b806301ffc9a71461019357806306fdde03146101f6578063081812fc14610279578063095ea7b3146102d15780630f7309e81461031f57806318160ddd146103a2575b600080fd5b6101de600480360360208110156101a957600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610bd2565b60405180821515815260200191505060405180910390f35b6101fe610c39565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023e578082015181840152602081019050610223565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a56004803603602081101561028f57600080fd5b8101908080359060200190929190505050610cdb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031d600480360360408110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d76565b005b610327610eba565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036757808201518184015260208101905061034c565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103aa610f58565b6040518082815260200191505060405180910390f35b61042c600480360360608110156103d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f69565b005b61047a6004803603604081101561044457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fdf565b6040518082815260200191505060405180910390f35b6104fc600480360360608110156104a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b005b61052a6004803603602081101561051457600080fd5b810190808035906020019092919050505061105a565b6040518082815260200191505060405180910390f35b6105f96004803603602081101561055657600080fd5b810190808035906020019064010000000081111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111640100000000831117156105a757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061107d565b005b6106276004803603602081101561061157600080fd5b8101908080359060200190929190505050611138565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065b61116f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069b578082015181840152602081019050610680565b50505050905090810190601f1680156106c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610718600480360360208110156106ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611211565b6040518082815260200191505060405180910390f35b6107366112e6565b005b610740611456565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610774611480565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b4578082015181840152602081019050610799565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108316004803603602081101561080557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611522565b005b6108816004803603604081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611668565b005b61088b61181e565b60405180821515815260200191505060405180910390f35b6109a6600480360360808110156108b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561092057600080fd5b82018360208201111561093257600080fd5b8035906020019184600183028401116401000000008311171561095457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611831565b005b6109d4600480360360208110156109be57600080fd5b81019080803590602001909291905050506118a9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a145780820151818401526020810190506109f9565b50505050905090810190601f168015610a415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a57611b7a565b005b610abb60048036036040811015610a6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c46565b60405180821515815260200191505060405180910390f35b610b1560048036036020811015610ae957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cda565b005b610bd060048036036020811015610b2d57600080fd5b8101908080359060200190640100000000811115610b4a57600080fd5b820183602082011115610b5c57600080fd5b80359060200191846001830284011164010000000083111715610b7e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611ecf565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd15780601f10610ca657610100808354040283529160200191610cd1565b820191906000526020600020905b815481529060010190602001808311610cb457829003601f168201915b5050505050905090565b6000610ce682611f98565b610d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806134bc602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d8182611138565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135406021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610e27611fb5565b73ffffffffffffffffffffffffffffffffffffffff161480610e565750610e5581610e50611fb5565b611c46565b5b610eab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061340f6038913960400191505060405180910390fd5b610eb58383611fbd565b505050565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f505780601f10610f2557610100808354040283529160200191610f50565b820191906000526020600020905b815481529060010190602001808311610f3357829003601f168201915b505050505081565b6000610f646002612076565b905090565b610f7a610f74611fb5565b8261208b565b610fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806135616031913960400191505060405180910390fd5b610fda83838361217f565b505050565b600061103282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206123c290919063ffffffff16565b905092915050565b61105583838360405180602001604052806000815250611831565b505050565b6000806110718360026123dc90919063ffffffff16565b50905080915050919050565b611085611fb5565b73ffffffffffffffffffffffffffffffffffffffff166110a3611456565b73ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61113581612408565b50565b6000611168826040518060600160405280602981526020016134716029913960026124229092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112075780601f106111dc57610100808354040283529160200191611207565b820191906000526020600020905b8154815290600101906020018083116111ea57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613447602a913960400191505060405180910390fd5b6112df600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612441565b9050919050565b6112ee611fb5565b73ffffffffffffffffffffffffffffffffffffffff1661130c611456565b73ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115185780601f106114ed57610100808354040283529160200191611518565b820191906000526020600020905b8154815290600101906020018083116114fb57829003601f168201915b5050505050905090565b61152a611fb5565b73ffffffffffffffffffffffffffffffffffffffff16611548611456565b73ffffffffffffffffffffffffffffffffffffffff16146115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a60149054906101000a900460ff1615611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436f6e7472616374204c6f636b6564000000000000000000000000000000000081525060200191505060405180910390fd5b61166581611660610f58565b612456565b50565b611670611fb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611711576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b806005600061171e611fb5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117cb611fb5565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600a60149054906101000a900460ff1681565b61184261183c611fb5565b8361208b565b611897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806135616031913960400191505060405180910390fd5b6118a384848484612474565b50505050565b60606118b482611f98565b611909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613511602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119b25780601f10611987576101008083540402835291602001916119b2565b820191906000526020600020905b81548152906001019060200180831161199557829003601f168201915b5050505050905060606119c361116f565b90506000815114156119d9578192505050611b75565b600082511115611aaa5780826040516020018083805190602001908083835b60208310611a1b57805182526020820191506020810190506020830392506119f8565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611a6c5780518252602082019150602081019050602083039250611a49565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050611b75565b80611ab4856124e6565b6040516020018083805190602001908083835b60208310611aea5780518252602082019150602081019050602083039250611ac7565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611b3b5780518252602082019150602081019050602083039250611b18565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b611b82611fb5565b73ffffffffffffffffffffffffffffffffffffffff16611ba0611456565b73ffffffffffffffffffffffffffffffffffffffff1614611c29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ce2611fb5565b73ffffffffffffffffffffffffffffffffffffffff16611d00611456565b73ffffffffffffffffffffffffffffffffffffffff1614611d89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133736026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ed7611fb5565b73ffffffffffffffffffffffffffffffffffffffff16611ef5611456565b73ffffffffffffffffffffffffffffffffffffffff1614611f7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b9080519060200190611f94929190613281565b5050565b6000611fae82600261262d90919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661203083611138565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061208482600001612647565b9050919050565b600061209682611f98565b6120eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806133e3602c913960400191505060405180910390fd5b60006120f683611138565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061216557508373ffffffffffffffffffffffffffffffffffffffff1661214d84610cdb565b73ffffffffffffffffffffffffffffffffffffffff16145b8061217657506121758185611c46565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661219f82611138565b73ffffffffffffffffffffffffffffffffffffffff161461220b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806134e86029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133996024913960400191505060405180910390fd5b61229c838383612658565b6122a7600082611fbd565b6122f881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061265d90919063ffffffff16565b5061234a81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061267790919063ffffffff16565b50612361818360026126919092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006123d183600001836126c6565b60001c905092915050565b6000806000806123ef8660000186612749565b915091508160001c8160001c9350935050509250929050565b806009908051906020019061241e929190613281565b5050565b6000612435846000018460001b846127e2565b60001c90509392505050565b600061244f826000016128d8565b9050919050565b6124708282604051806020016040528060008152506128e9565b5050565b61247f84848461217f565b61248b8484848461295a565b6124e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806133416032913960400191505060405180910390fd5b50505050565b6060600082141561252e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612628565b600082905060005b60008214612558578080600101915050600a828161255057fe5b049150612536565b60608167ffffffffffffffff8111801561257157600080fd5b506040519080825280601f01601f1916602001820160405280156125a45781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461262057600a84816125c557fe5b0660300160f81b828280600190039350815181106125df57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161261857fe5b0493506125b3565b819450505050505b919050565b600061263f836000018360001b612b73565b905092915050565b600081600001805490509050919050565b505050565b600061266f836000018360001b612b96565b905092915050565b6000612689836000018360001b612c7e565b905092915050565b60006126bd846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b612cee565b90509392505050565b600081836000018054905011612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061331f6022913960400191505060405180910390fd5b82600001828154811061273657fe5b9060005260206000200154905092915050565b600080828460000180549050116127ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061349a6022913960400191505060405180910390fd5b60008460000184815481106127bc57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600080846001016000858152602001908152602001600020549050600081141583906128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578082015181840152602081019050612853565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508460000160018203815481106128bc57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6128f38383612dca565b612900600084848461295a565b612955576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806133416032913960400191505060405180910390fd5b505050565b600061297b8473ffffffffffffffffffffffffffffffffffffffff16612fbe565b6129885760019050612b6b565b6060612af263150b7a0260e01b61299d611fb5565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612a21578082015181840152602081019050612a06565b50505050905090810190601f168015612a4e5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001613341603291398773ffffffffffffffffffffffffffffffffffffffff16612fd19092919063ffffffff16565b90506000818060200190516020811015612b0b57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114612c725760006001820390506000600186600001805490500390506000866000018281548110612be157fe5b9060005260206000200154905080876000018481548110612bfe57fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480612c3657fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612c78565b60009150505b92915050565b6000612c8a8383612fe9565b612ce3578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612ce8565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415612d9557846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612dc3565b82856000016001830381548110612da857fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b612e7681611f98565b15612ee9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b612ef560008383612658565b612f4681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061267790919063ffffffff16565b50612f5d818360026126919092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b6060612fe0848460008561300c565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015613067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133bd6026913960400191505060405180910390fd5b61307085612fbe565b6130e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613132578051825260208201915060208101905060208303925061310f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613194576040519150601f19603f3d011682016040523d82523d6000602084013e613199565b606091505b50915091506131a98282866131b5565b92505050949350505050565b606083156131c55782905061327a565b6000835111156131d85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561323f578082015181840152602081019050613224565b50505050905090810190601f16801561326c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132c257805160ff19168380011785556132f0565b828001600101855582156132f0579182015b828111156132ef5782518255916020019190600101906132d4565b5b5090506132fd9190613301565b5090565b5b8082111561331a576000816000905550600101613302565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a26469706673582212206c20fc6572b7739e002c47a99d78ff062bb5f1a894a5b3e4de7ae395756c086464736f6c634300060c003368747470733a2f2f6c75636b796d616e656b692e636f6d2f746f6b656e2f6368616c6c656e6765732f