| line | true | false | branch | 
 
| 21 | 0 | 0 | unless ($name =~ /^\d+\.\d+\.\d+\.\d+$/) | 
 
| 23 | 0 | 0 | unless length $_ == 4 | 
 
| 69 | 0 | 0 | if ref $_[0] | 
 
| 70 | 0 | 0 | if $$self{'socket'} | 
 
| 85 | 0 | 0 | if ref $_[0] | 
 
| 90 | 0 | 0 | if !keys(%{$$self{'NickList'};}) || $$self{'NickList'}{$nick}{'oper'} and $text eq 'You are already in the hub.' | 
 
| 92 | 0 | 0 | if ($$self{'NickList'}{$nick}{'oper'} or $$self{'NickList'}{$nick}{'hubbot'} or $nick eq 'Hub-Security') | 
 
| 93 | 0 | 0 | if ($text =~ /\x{41c}\x{438}\x{43d}\x{438}\x{43c}\x{430}\x{43b}\x{44c}\x{43d}\x{44b}\x{439} \x{438}\x{43d}\x{442}\x{435}\x{440}\x{432}\x{430}\x{43b} \x{43f}\x{43e}\x{438}\x{441}\x{43a}\x{430} \x{441}\x{43e}\x{441}\x{442}\x{430}\x{432}\x{43b}\x{44f}\x{435}\x{442}: \(Minimum search interval is:\) (\d+)\x{441}\x{435}\x{43a}\x{443}\x{43d}\x{434} \(seconds\)/ or $text =~ /^(?:Minimum search interval is|\x{41c}\x{438}\x{43d}\x{438}\x{43c}\x{430}\x{43b}\x{44c}\x{43d}\x{44b}\x{439} \x{438}\x{43d}\x{442}\x{435}\x{440}\x{432}\x{430}\x{43b} \x{43f}\x{43e}\x{438}\x{441}\x{43a}\x{430}):(\d+)s/ or $text =~ /Search ignored\.  Please leave at least (\d+) seconds between search attempts\./ or $text =~ /\x{41c}\x{438}\x{43d}\x{438}\x{43c}\x{430}\x{43b}\x{44c}\x{43d}\x{44b}\x{439} \x{438}\x{43d}\x{442}\x{435}\x{440}\x{432}\x{430}\x{43b} \x{43c}\x{435}\x{436}\x{434}\x{443} \x{43f}\x{43e}\x{438}\x{441}\x{43a}\x{43e}\x{432}\x{44b}\x{43c}\x{438} \x{437}\x{430}\x{43f}\x{440}\x{43e}\x{441}\x{430}\x{43c}\x{438}:(\d+)\x{441}\x{435}\x{43a}., \x{43f}\x{43e}\x{43f}\x{440}\x{43e}\x{431}\x{443}\x{439}\x{442}\x{435} \x{447}\x{443}\x{442}\x{44c} \x{43f}\x{43e}\x{437}\x{436}\x{435}/ or $text =~ /You can do 1 searches in (\d+) seconds/) | 
 
| 107 | 0 | 0 | if ($text =~ /(?:\x{41f}\x{43e}\x{436}\x{430}\x{43b}\x{443}\x{439}\x{441}\x{442}\x{430} )?\x{43f}\x{43e}\x{434}\x{43e}\x{436}\x{434}\x{438}\x{442}\x{435} (\d+) \x{441}\x{435}\x{43a}\x{443}\x{43d}\x{434} \x{43f}\x{435}\x{440}\x{435}\x{434} \x{441}\x{43b}\x{435}\x{434}\x{443}\x{44e}\x{449}\x{438}\x{43c} \x{43f}\x{43e}\x{438}\x{441}\x{43a}\x{43e}\x{43c}\./i or $text =~ /(?:Please )?wait (\d+) seconds before next search\./i or $text eq 'Пожалуйста не используйте поиск так часто!' or $text eq q[Please don't flood with searches!] or $text eq 'Sorry Hub is busy now, no search, try later..') | 
 
| 119 | 0 | 0 | if (not $$self{'count_parse'}{'chatline'} and $text =~ /PtokaX/i) | 
 
| 123 | 0 | 0 | if $$self{'NickList'}{$nick}{'oper'} and $text eq 'Sorry Hub is busy now, no search, try later..' | 
 
| 127 | 0 | 0 | if ref $_[0] | 
 
| 129 | 0 | 0 | if (not keys %{$$self{'NickList'};} && exists $$self{'NickList'}{$nick} or $$self{'NickList'}{$nick}{'oper'}) | 
 
| 130 | 0 | 0 | if ($text =~ /^Bad nickname: unallowed characters, use these (\S+)/) { } | 
 
|  | 0 | 0 | elsif ($text =~ /Bad nickname: Wait (\d+)sec before reconnecting/i or $text =~ /\x{41f}\x{43e}\x{436}\x{430}\x{43b}\x{443}\x{439}\x{441}\x{442}\x{430} \x{43f}\x{43e}\x{434}\x{43e}\x{436}\x{434}\x{438}\x{442}\x{435} (\d+) \x{441}\x{435}\x{43a}\x{443}\x{43d}\x{434} \x{434}\x{43e} \x{43f}\x{43e}\x{432}\x{442}\x{43e}\x{440}\x{43d}\x{43e}\x{433}\x{43e} \x{43f}\x{43e}\x{434}\x{43a}\x{43b}\x{44e}\x{447}\x{435}\x{43d}\x{438}\x{44f}\./ or $text =~ /Do not reconnect too fast. Wait (\d+) secs before reconnecting./) { } | 
 
|  | 0 | 0 | elsif ($$self{'auto_bug'} and $nick eq 'VerliHub' and $text =~ /^This Hub Is Running Version 0.9.8d/i) { } | 
 
| 136 | 0 | 0 | if length $try | 
 
| 151 | 0 | 0 | if ref $_[0] | 
 
| 163 | 0 | 0 | if ref $_[0] | 
 
| 165 | 0 | 0 | unless $_[0] eq $$self{'Nick'} | 
 
| 168 | 0 | 0 | unless $$self{'auto_GetNickList'} | 
 
| 169 | 0 | 0 | unless $$self{'bug_MyINFO_last'} | 
 
| 170 | 0 | 0 | if $$self{'auto_GetNickList'} | 
 
| 171 | 0 | 0 | if $$self{'bug_MyINFO_last'} | 
 
| 173 | 0 | 0 | if $$self{'botinfo'} | 
 
| 177 | 0 | 0 | if ref $_[0] | 
 
| 181 | 0 | 0 | if ref $_[0] | 
 
| 187 | 0 | 0 | if ref $_[0] | 
 
| 193 | 0 | 0 | if ref $_[0] | 
 
| 200 | 0 | 0 | if ref $_[0] | 
 
| 206 | 0 | 0 | if ref $_[0] | 
 
| 210 | 0 | 0 | if ref $_[0] | 
 
| 214 | 0 | 0 | if ref $_[0] | 
 
| 216 | 0 | 0 | if $$self{'auto_GetINFO'} | 
 
| 219 | 0 | 0 | if ref $_[0] | 
 
| 223 | 0 | 0 | if ref $_[0] | 
 
| 228 | 0 | 0 | if $$self{'follow_forcemove'} and $to | 
 
| 231 | 0 | 0 | if ref $_[0] | 
 
| 235 | 0 | 0 | if ref $_[0] | 
 
| 239 | 0 | 0 | if $$self{'flood'}{$host} > time | 
 
| 243 | 0 | 0 | if $$self{'clients'}{$host . ':' . $port}{'socket'} | 
 
| 259 | 0 | 0 | if ref $_[0] | 
 
| 263 | 0 | 0 | if $from eq $$self{'Nick'} | 
 
| 266 | 0 | 0 | if ref $_[0] | 
 
| 270 | 0 | 0 | if ref $_[0] | 
 
| 273 | 0 | 0 | if ref $_[0] | 
 
| 276 | 0 | 0 | if ref $_[0] | 
 
| 282 | 0 | 0 | if ($$params{'who'} =~ /^Hub:(.+)$/) { } | 
 
| 284 | 0 | 0 | if ($$params{'cmd'}[4] =~ /^TTH:([0-9A-Z]{39})$/) { } | 
 
| 286 | 0 | 0 | if $$params{'udp'} | 
 
| 292 | 0 | 0 | if ($found and $tth) | 
 
| 306 | 0 | 0 | if ($$self{'adc'}) { } | 
 
| 316 | 0 | 0 | if $$self{'charset_fs'} ne $$self{'charset_protocol'} | 
 
| 320 | 0 | 0 | $$params{'tth'} ? : | 
 
|  | 0 | 0 | $$params{'ip'} && $$params{'udp'} ? : | 
 
| 343 | 0 | 0 | if ($$params{'ip'} and $$params{'udp'}) { } | 
 
| 366 | 0 | 0 | if ref $_[0] | 
 
| 377 | 0 | 0 | unless $$params{'tth'} | 
 
| 396 | 0 | 0 | if ($wdl) | 
 
| 399 | 0 | 0 | if ($$params{'filename'}) | 
 
| 405 | 0 | 0 | if ref $_[0] | 
 
| 425 | 0 | 0 | if ref $_[0] | 
 
| 429 | 0 | 0 | if ref $_[0] | 
 
| 431 | 0 | 0 | if ($$self{'min_chat_delay'} and time - $$self{'last_chat_time'} < $$self{'min_chat_delay'}) | 
 
| 445 | 0 | 0 | if ref $_[0] | 
 
| 450 | 0 | 0 | if ref $_[0] | 
 
| 454 | 0 | 0 | if ref $_[0] | 
 
| 458 | 0 | 0 | if ref $_[0] | 
 
| 462 | 0 | 0 | if ref $_[0] | 
 
| 469 | 0 | 0 | if ref $_[0] | 
 
| 470 | 0 | 0 | if $$self{'NickList'}{$_}{'online'} | 
 
|  | 0 | 0 | unless @_ | 
 
| 477 | 0 | 0 | if ref $_[0] | 
 
| 481 | 0 | 0 | if ref $_[0] | 
 
| 482 | 0 | 0 | if $$self{'M'} eq 'P' and not $$self{'allow_passive_ConnectToMe'} | 
 
| 484 | 0 | 0 | unless $$self{'myip'} | 
 
| 488 | 0 | 0 | if ref $_[0] | 
 
| 493 | 0 | 0 | if ref $_[0] | 
 
| 495 | 0 | 0 | if $pass | 
 
| 498 | 0 | 0 | if ref $_[0] | 
 
| 502 | 0 | 0 | if ref $_[0] | 
 
| 507 | 0 | 0 | if ref $_[0] | 
 
| 511 | 0 | 0 | if ref $_[0] | 
 
| 513 | 0 | 0 | $$self{'M'} eq 'P' ? : | 
 
| 517 | 0 | 0 | if ref $_[0] | 
 
| 521 | 0 | 0 | $_[4] =~ s/^(TTH:)?([A-Z0-9]{39})$/TTH:$2/ ? : | 
 
|  | 0 | 0 | unless defined $_[3] | 
 
| 527 | 0 | 0 | if ref $_[0] | 
 
| 532 | 0 | 0 | if ref $_[0] | 
 
| 539 | 0 | 0 | if ref $_[0] | 
 
| 541 | 0 | 0 | unless $_[0] | 
 
| 548 | 0 | 0 | $$self{'M'} ne 'P' && $$self{'myip'} && $$self{'myport_udp'} ? : | 
 
| 553 | 0 | 0 | if ref $_[0] | 
 
| 557 | 0 | 0 | if length $_ | 
 
| 567 | 0 | 0 | if ($$self{'M'} eq 'A' or not $$self{'M'}) | 
 
| 582 | 0 | 0 | unless $$self{'myport_tcp'} | 
 
| 600 | 0 | 0 | if ref $_[0] | 
 
| 602 | 0 | 0 | if $self | 
 
| 605 | 0 | 0 | if ref $_[0] | 
 
| 608 | 0 | 0 | if /^\$SR/ | 
 
| 622 | 0 | 0 | unless $$self{'myport_udp'} |