| line | !l | l&&!r | l&&r | condition | 
 
| 246 | 0 | 0 | 0 | -f $cache_pn && (stat _)[9] | 
 
| 382 | 0 | 10 | 0 | my $meta_hr = $container_ar->[0] and $cache_inode_hr->{'meta'} | 
 
| 406 | 0 | 0 | 10 | my $cgi_or = $self->{'_CGI'} and $WebDyne::WEBDYNE_CGI_PARAM_EXPAND | 
 
| 459 | 10 | 0 | 0 | my $cache = $self->{'_cache'} || $meta_hr->{'cache'} and not $self->{'_cache_run_fg'}++ | 
 
| 511 | 0 | 10 | 0 | $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'} | 
 
| 514 | 1 | 0 | 0 | $cache_pn and -f (my $fn = "$cache_pn.html") | 
 
|  | 1 | 0 | 0 | $cache_pn and -f (my $fn = "$cache_pn.html") and (stat _)[9] >= $srce_mtime | 
 
|  | 0 | 0 | 0 | $cache_pn and -f (my $fn = "$cache_pn.html") and (stat _)[9] >= $srce_mtime and not $self->{'_compile'} | 
 
| 664 | 0 | 0 | 10 | ($meta_hr->{'no_cache'} || $WebDyne::WEBDYNE_NO_CACHE) && ('Cache-Control', 'no-cache', 'Pragma', 'no-cache', 'Expires', '-5') | 
 
| 700 | 0 | 0 | 10 | $WebDyne::WEBDYNE_CACHE_CHECK_FREQ and $r eq ($r->main || $r) | 
 
|  | 0 | 10 | 0 | $WebDyne::WEBDYNE_CACHE_CHECK_FREQ and $r eq ($r->main || $r) and not +(my $nrun = ++$Package{'_nrun'}) % $WebDyne::WEBDYNE_CACHE_CHECK_FREQ | 
 
| 845 | 0 | 2 | 0 | $WebDyne::WEBDYNE_STARTUP_CACHE_FLUSH and -d $WebDyne::WEBDYNE_CACHE_DN | 
 
| 1150 | 31 | 2 | 4 | ref $html_sr eq 'ARRAY' and not $tag_fg | 
 
| 1176 | 1 | 0 | 0 | not exists $_[2]{$_[3]} and $WebDyne::WEBDYNE_STRICT_VARS | 
 
| 1182 | 24 | 2 | 0 | ref $value and overload::Overloaded($value) | 
 
| 1618 | 0 | 0 | 0 | $status != &Apache::OK and not &is_success($status) | 
 
|  | 0 | 0 | 0 | $status != &Apache::OK and not &is_success($status) and not &is_redirect($status) | 
 
| 1799 | 0 | 0 | 0 | $status and not &is_success($status) | 
 
| 2285 | 20 | 0 | 0 | $package and not $INC{$package_fn} | 
 
| 2925 | 69 | 0 | 0 | $depth_max and ++$depth > $depth_max | 
| line | l | !l | condition | 
 
| 178 | 10 | 0 | $r->filename || (return $self->err_html('unable to get request filename')) | 
 
| 199 | 10 | 0 | md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!")) | 
 
| 209 | 10 | 0 | ($Package{'_cache'}{$srce_inode} ||= {'data', undef, 'mtime', undef, 'nrun', undef, 'lrun', undef}) || (return $self->err_html('unable to initialize cache_inode_hr ref')) | 
 
| 318 | 0 | 0 | $@ || 'undefined error' | 
 
| 325 | 10 | 0 | $self->compile({'srce', $srce_pn, 'dest', $cache_pn}) || (return $self->err_html) | 
 
| 359 | 0 | 0 | Storable::lock_retrieve($cache_pn) || (return $self->err_html("Storable error when retreiveing cached file '${cache_pn}', $!")) | 
 
| 372 | 0 | 0 | $meta_hr->{'perl_debug'} || (return err('unable to load perl_debug array reference')) | 
 
| 469 | 0 | 0 | errstr() || $@ || 'no inode returned' | 
 
| 478 | 0 | 0 | errstr() || $@ || 'no inode returned' | 
 
| 936 | 43 | 0 | $self->{'_inode'} || 'ANON' | 
 
| 1021 | 0 | 0 | $self->{'_inode'} || 'ANON' | 
 
| 1058 | 0 | 0 | $safe_or->reval("sub{$eval_text}->(\$::_self, \$::_eval_param_hr)", $WebDyne::WEBDYNE_EVAL_USE_STRICT) || (return errstr() ? err() : err($@ || 'undefined return from Safe->reval()')) | 
 
| 1142 | 37 | 0 | &$eval_cr(@_) || (return err()) | 
 
| 1151 | 4 | 0 | \join(undef, map({ref $_ eq 'SCALAR' ? ${$_;} : $_;} @{$html_sr;})) || (return err('unable to generate scalar from %s', Dumper($html_sr))) | 
 
| 1319 | 23 | 10 | ref $param_hr or $param_hr = {'param', {@_[1 .. $#_]}} | 
 
| 1329 | 21 | 0 | $param_hr->{'data'} || $self->{'_perl'}[0][$WebDyne::WEBDYNE_NODE_CHLD_IX] || (return err('unable to get HTML data array')) | 
 
| 1342 | 0 | 0 | $self->render_block($param_hr) or return err() | 
 
| 1348 | 43 | 0 | $self->{'_CGI'} || $self->CGI || (return err('unable to get CGI object from self ref')) | 
 
| 1395 | 18 | 0 | $self->subst_attr($data_ar, $attr_hr, $param_data_hr) || (return err()) | 
 
| 1476 | 56 | 0 | $self->$html_tag($data_ar, $attr_hr, $param_data_hr, $html_chld) || (return err()) | 
 
| 1499 | 21 | 0 | $cgi_or->$html_tag(grep({$_;} $attr_hr, $html_chld)) || (return err("CGI tag '<$html_tag>' " . 'did not return any text')) | 
 
| 1513 | 0 | 0 | $cgi_or->$html_tag($html_chld) || (return err("CGI tag '<$html_tag>' " . 'did not return any text')) | 
 
| 1527 | 0 | 0 | $cgi_or->$html_tag || (return err("CGI tag '<$html_tag>' " . 'did not return any text')) | 
 
| 1537 | 42 | 1 | $Package{'_render_cr'} ||= sub {
	my($render_cr, $self, $cgi_or, $data_ar, $param_data_hr) = @_;
my($html_tag, $html_line_no) = @{$data_ar;}[$WebDyne::WEBDYNE_NODE_NAME_IX, $WebDyne::WEBDYNE_NODE_LINE_IX];
my $html_chld;
$self->{'_data_ar'} = $data_ar;
'???';
my $attr_hr = $data_ar->[$WebDyne::WEBDYNE_NODE_ATTR_IX];
if ($data_ar->[$WebDyne::WEBDYNE_NODE_SBST_IX]) {
	$attr_hr = $self->subst_attr($data_ar, $attr_hr, $param_data_hr) || (return err());
};
$param_data_hr = $attr_hr->{'param'} if $attr_hr->{'param'};
if (not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq 'subst') {
	my(@data_child_ar) = $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX] ? @{$data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX];} : undef;
foreach my $data_chld_ar (@data_child_ar) {
	'???';
if (ref $data_chld_ar) {
	$html_chld .= ${return err() unless &$render_cr($render_cr, $self, $cgi_or, $data_chld_ar, $param_data_hr);};
}
else {
	$html_chld .= $data_chld_ar;
};
};
}
else {
	'???';
};
'???';
if ($WebDyne::CGI_TAG_WEBDYNE{$html_tag}) {
	'???';
my $html_sr = $self->$html_tag($data_ar, $attr_hr, $param_data_hr, $html_chld) || (return err());
'???';
return $html_sr;
}
elsif ($attr_hr) {
	return \($cgi_or->$html_tag(grep({$_;} $attr_hr, $html_chld)) || (return err("CGI tag '<$html_tag>' " . 'did not return any text')));
}
elsif ($html_chld) {
	return \($cgi_or->$html_tag($html_chld) || (return err("CGI tag '<$html_tag>' " . 'did not return any text')));
}
else {
	return \($cgi_or->$html_tag || (return err("CGI tag '<$html_tag>' " . 'did not return any text')));
};
} | 
 
| 1608 | 0 | 0 | $self->subrequest($param_hr) || (return err()) | 
 
| 1616 | 0 | 0 | $self->r || (return err()) | 
 
| 1641 | 0 | 0 | $param_hr->{'html'} || $param_hr->{'text'} || (return err('no data supplied to redirect method')) | 
 
| 1647 | 0 | 0 | $self->r || (return err()) | 
 
| 1658 | 0 | 0 | $r->headers_out || (return err()) | 
 
| 1724 | 0 | 0 | $r->headers_out || (return err()) | 
 
| 1750 | 0 | 0 | $r->lookup_uri($uri) || (return err('undefined lookup_uri error')) | 
 
| 1770 | 0 | 0 | $r->lookup_file($file_pn) || (return err('undefined lookup_file error')) | 
 
| 1872 | 0 | 0 | $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified')) | 
 
| 1905 | 0 | 0 | $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified')) | 
 
| 1949 | 4 | 0 | $self->find_node({'data_ar', $data_ar, 'tag', 'block', 'all_fg', 1}) || (return err()) | 
 
| 1978 | 1 | 4 | $self->{'_block_cache'}{$name} ||= [] | 
 
| 2014 | 0 | 4 | $self->{'_block_param'}{$name} ||= [] | 
 
| 2049 | 4 | 0 | $self->render({'data', $data_block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'}}) || (return err()) | 
 
| 2061 | 0 | 4 | $self->{'_block_render'}{$name}{$data_block_ar} ||= [] | 
 
| 2115 | 11 | 0 | $attr_hr->{'name'} || (return err('no block name specified')) | 
 
| 2175 | 3 | 0 | $self->render({'data', $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_data_block_hr}) || (return err()) | 
 
| 2253 | 20 | 0 | join('::', grep({$_;} map({$attr_hr->{$_} if exists $attr_hr->{$_};} 'package', 'class', 'method'))) || (return err('could not determine perl routine to run')) | 
 
| 2291 | 0 | 0 | errstr() || $@ || 'undefined error' | 
 
| 2373 | 18 | 0 | $self->{'_inode'} || 'ANON' | 
 
| 2533 | 16 | 0 | $Package{'_eval_cr'} || (return err('unable to get eval code ref table')) | 
 
| 2543 | 19 | 0 | $$eval_cr{$_[0]}($self, $data_ar, $param_data_hr, $_[1], $_[2]) || (return err()) | 
 
| 2575 | 18 | 0 | $Package{'_eval_cr'} || (return err('unable to get eval code ref table')) | 
 
| 2606 | 16 | 0 | $eval_cr->{$oper}->($self, $data_ar, $param_hr, $eval_text, $index++, 1) || (return err()) | 
 
| 2617 | 10 | 0 | $$eval_cr{$_[0]}($self, $data_ar, $param_hr, $_[1], $_[2]) || (return err()) | 
 
| 2685 | 5 | 0 | $self->r || (return err()) | 
 
| 2686 | 5 | 0 | ('File::Spec'->splitpath($r->filename))[1] || (return err('unable to determine cwd for requested file %s', $r->filename)) | 
 
| 2692 | 5 | 0 | $param_hr->{'file'} || (return err('no file name supplied with include tag')) | 
 
| 2717 | 2 | 0 | $self->compile(\%option) || (return err()) | 
 
| 2725 | 2 | 0 | $self->find_node({'data_ar', $block_data_ar, 'tag', $node}) || (return err()) | 
 
| 2783 | 2 | 0 | $self->compile(\%option) || (return err()) | 
 
| 2792 | 2 | 0 | $self->find_node({'data_ar', $block_data_ar, 'tag', 'block', 'attr_hr', {'name', $block}}) || (return err()) | 
 
| 2834 | 1 | 0 | 'IO::File'->new($pn, 0) || (return err("unable to open file '${fn}' for read, $!")) | 
 
| 3003 | 0 | 0 | $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX][$data_chld_ix] || (return err("unable to get chld node from $data_ar")) | 
 
| 3096 | 10 | 0 | shift() || (return err('unable to get CGI object')) | 
 
| 3210 | 0 | 0 | 'IO::File'->new($cache_pn, 577) || (return warn("unable to open cache file $cache_pn for write, $!")) | 
 
| 3251 | 0 | 0 | delete $self->{'_meta_hr'} || {} | 
 
| 3285 | 0 | 0 | shift() || (return err('cache code ref or method name must be supplied')) | 
 
| 3297 | 0 | 0 | shift() || (return err('filter name must be supplied')) | 
 
| 3310 | 0 | 0 | $self->meta || (return err()) | 
 
| 3380 | 0 | 3 | $self->{'_print_ar'}{$data_ar} ||= [] | 
 
| 3390 | 0 | 0 | $self->{'_print_ar'}{$data_ar} ||= [] | 
| line | l | !l&&r | !l&&!r | condition | 
 
| 125 | 0 | 10 | 0 | ref $self || do {
	my(%self) = ('_time', $time, '_r', $r, %{delete $self->{'_self'};});
$self = bless(\%self, $self);
ref $self
} | 
 
| 180 | 10 | 0 | 0 | -f $srce_pn && (stat _)[9] || do {
	'???';
return &Apache::DECLINED
} | 
 
| 199 | 0 | 10 | 0 | $self->{'_inode'} ||= md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!")) | 
 
| 231 | 0 | 10 | 0 | ${return $self->err_html unless $self->source_mtime($srce_mtime);} || $srce_mtime | 
 
| 255 | 0 | 0 | 10 | $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'} | 
 
|  | 0 | 10 | 0 | $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime | 
 
|  | 10 | 0 | 0 | $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime or $cache_mtime > $cache_inode_hr->{'mtime'} | 
 
| 308 | 0 | 10 | 0 | $self->{'_compile'} or $cache_mtime < $srce_mtime | 
 
| 346 | 0 | 10 | 0 | $cache_mtime || &WebDyne::time() | 
 
| 386 | 0 | 0 | 0 | $cache_inode_hr->{'meta'}{$_} ||= $meta_hr->{$_} | 
 
| 427 | 0 | 0 | 10 | $meta_hr->{'handler'} || $r->dir_config('WebDyneHandler') | 
 
| 459 | 0 | 0 | 10 | $self->{'_cache'} || $meta_hr->{'cache'} | 
 
| 493 | 0 | 0 | 0 | $cache_inode ne $srce_inode or $self->{'_compile'} | 
 
| 511 | 1 | 0 | 9 | $meta_hr->{'html'} || $meta_hr->{'static'} | 
 
|  | 0 | 0 | 10 | $self->{'_static'} or $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'} | 
 
| 520 | 0 | 0 | 0 | $WebDyne::MP2 or $ENV{'FCGI_ROLE'} | 
 
| 552 | 0 | 0 | 0 | $meta_hr->{'static'} || $self->{'_static'} | 
 
| 564 | 0 | 0 | 1 | $meta_hr->{'static'} || $self->{'_static'} | 
 
| 585 | 0 | 10 | 0 | $self->{'_select'} ||= CORE::select | 
 
| 594 | 10 | 0 | 0 | $self->render({'data', $data_ar, 'param', $param_hr}) || do {
	RENDER_ERROR: '???';
'???';
CORE::select $select if $select;
untie *WEBDYNE;
return $self->err_html
} | 
 
| 700 | 10 | 0 | 0 | $r->main || $r | 
 
| 913 | 2 | 0 | 0 | \&WebDyne::request || *r | 
 
| 943 | 34 | 9 | 0 | $self->{'_eval_cgi_hr'} ||= do {
	my $cgi_or = $self->{'_CGI'} || $self->CGI;
$cgi_or->Vars
} | 
 
| 945 | 9 | 0 | 0 | $self->{'_CGI'} || $self->CGI | 
 
| 955 | 0 | 43 | 0 | $Package{'_cache'}{$inode}{'eval_cr'}{$data_ar}{$index} ||= do {
	$Package{'_cache'}{$inode}{'perl_init'}{undef()} ||= $self->perl_init;
no strict 'vars';
'???';
return $self->err_eval("$@", \$eval_text) unless &eval_cr($inode, \$eval_text, $html_line_no)
} | 
 
| 956 | 34 | 9 | 0 | $Package{'_cache'}{$inode}{'perl_init'}{undef()} ||= $self->perl_init | 
 
| 980 | 0 | 0 | 43 | not @eval or $@ | 
 
|  | 0 | 0 | 43 | not @eval or $@ or not $eval[0] | 
 
| 984 | 0 | 0 | 0 | errstr() or $@ | 
 
| 1027 | 0 | 0 | 0 | $self->{'_eval_cgi_hr'} ||= do {
	my $cgi_or = $self->{'_CGI'} || $self->CGI;
$cgi_or->Vars
} | 
 
| 1029 | 0 | 0 | 0 | $self->{'_CGI'} || $self->CGI | 
 
| 1037 | 0 | 0 | 0 | $self->{'_eval_safe'} || do {
	'???';
require Safe;
require Opcode;
'Safe'->new
} | 
 
| 1046 | 0 | 0 | 0 | $self->{'_eval_safe'} ||= do {
	$safe_or->permit_only(@{$WebDyne::WEBDYNE_EVAL_SAFE_OPCODE_AR;});
$safe_or
} | 
 
| 1064 | 0 | 0 | 0 | not defined $html_sr or $@ | 
 
| 1069 | 0 | 0 | 0 | errstr() or $@ | 
 
| 1131 | 5 | 0 | 0 | &$eval_cr(@_) || err() | 
 
| 1408 | 21 | 16 | 40 | not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq 'subst' | 
 
| 1603 | 0 | 0 | 0 | $param_hr->{'uri'} or $param_hr->{'file'} | 
 
|  | 0 | 0 | 0 | $param_hr->{'uri'} or $param_hr->{'file'} or $param_hr->{'location'} | 
 
| 1799 | 0 | 0 | 0 | $status and not &is_success($status) or my $errstr = errstr() | 
 
| 1803 | 0 | 0 | 0 | $r_child->uri || $param_hr->{'file'} | 
 
| 1809 | 0 | 0 | 0 | $r_child->uri || $param_hr->{'file'} | 
 
| 1845 | 0 | 0 | 0 | $status || $r_child->status | 
 
| 1914 | 4 | 0 | 0 | $self->{'_perl'}[0] || do {
	push @{$self->{'_block_param'}{$name} ||= [];}, $param_hr->{'param'};
return \(undef)
} | 
 
| 2165 | 3 | 0 | 0 | $param_data_block_hr ||= $param_data_hr | 
 
| 2196 | 1 | 0 | 0 | $self->render({'data', $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_data_hr}) || err() | 
 
| 2242 | 6 | 0 | 0 | $Package{'_eval_cr'}{'!'}->($self, $data_ar, $perl_param_hr, $perl_code) || err() | 
 
| 2309 | 20 | 0 | 0 | $Package{'_eval_cr'}{'!'}->($self, $data_ar, $attr_hr->{'param'}, "&$function") || do {
	shift @{$$self{'_perl'};};
return err()
} | 
 
| 2416 | 0 | 0 | 0 | $self->{'_eval_safe'} || do {
	'???';
require Safe;
require Opcode;
'Safe'->new
} | 
 
| 2424 | 0 | 0 | 0 | $self->{'_eval_safe'} ||= do {
	$safe_or->permit_only(@{$WebDyne::WEBDYNE_EVAL_SAFE_OPCODE_AR;});
$safe_or
} | 
 
| 2433 | 0 | 0 | 0 | $@ or errstr() | 
 
| 2469 | 2 | 0 | 7 | &perl_init_cr($inode, $perl_sr, $perl_line_no) || do {
	if ($@ or errstr()) {
	undef *{"WebDyne::${inode}::self";};
my @data;
@data[$WebDyne::WEBDYNE_NODE_LINE_IX, $WebDyne::WEBDYNE_NODE_LINE_TAG_END_IX, $WebDyne::WEBDYNE_NODE_SRCE_IX] = ($perl_line_no, $perl_line_no, $perl_srce_fn);
$self->{'_data_ar'} = \@data;
return $self->err_eval($@ ? "error in __PERL__ block: $@" : undef, $perl_sr);
}
} | 
 
| 2600 | 12 | 4 | 11 | $attr_value =~ /^\s*([\@%!+*^]){1}{(\1?)(.*)\2}\s*$/so or $attr_value =~ /^\s*(\$){1}{(\1?)([^{]+)\2}\s*$/so | 
 
| 2763 | 2 | 0 | 0 | $self->render({'data', $block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'}}) || err() | 
 
| 2825 | 2 | 0 | 0 | $self->render({'data', $block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'} || $param_data_hr}) || err() | 
 
| 3038 | 0 | 0 | 0 | &$find_cr($find_cr, $data_ar) || err() | 
 
| 3048 | 1 | 10 | 0 | +(shift())->{'_CGI'} ||= do {
	'???';
$CGI::XHTML = 0;
$CGI::NOSTICKY = 1;
$CGI::DISABLE_UPLOADS = $WebDyne::WEBDYNE_CGI_DISABLE_UPLOADS;
$CGI::POST_MAX = $WebDyne::WEBDYNE_CGI_POST_MAX;
my $cgi_or = 'CGI'->new;
$cgi_or->autoEscape($WebDyne::WEBDYNE_CGI_AUTOESCAPE);
&CGI_param_expand($cgi_or) if $WebDyne::WEBDYNE_CGI_PARAM_EXPAND;
$cgi_or
} | 
 
| 3103 | 0 | 0 | 0 | $value ||= $cgi_or->param($param) | 
 
| 3132 | 0 | 0 | 0 | $WebDyne::WEBDYNE_DUMP_FLAG || $attr_hr->{'force'} || $attr_hr->{'display'} | 
 
| 3251 | 0 | 0 | 0 | $Package{'_cache'}{$inode}{'meta'} ||= delete $self->{'_meta_hr'} || {} | 
 
| 3355 | 0 | 0 | 0 | $data_ar ||= $self->data_ar | 
 
| 3368 | 0 | 0 | 0 | $data_ar ||= $self->data_ar |