line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package YAML::Perl::Base; |
2
|
23
|
|
|
23
|
|
126
|
use strict; |
|
23
|
|
|
|
|
46
|
|
|
23
|
|
|
|
|
902
|
|
3
|
23
|
|
|
23
|
|
543
|
use warnings; |
|
23
|
|
|
|
|
44
|
|
|
23
|
|
|
|
|
848
|
|
4
|
23
|
|
|
23
|
|
16523
|
use Error ':try'; |
|
23
|
|
|
|
|
82338
|
|
|
23
|
|
|
|
|
138
|
|
5
|
|
|
|
|
|
|
|
6
|
23
|
|
|
23
|
|
4980
|
use constant True => 1; |
|
23
|
|
|
|
|
46
|
|
|
23
|
|
|
|
|
1945
|
|
7
|
23
|
|
|
23
|
|
123
|
use constant False => 0; |
|
23
|
|
|
|
|
51
|
|
|
23
|
|
|
|
|
3911
|
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
sub import { |
10
|
800
|
|
|
800
|
|
2326
|
my ($class, $flag) = @_; |
11
|
800
|
|
|
|
|
5078
|
my ($package, $module) = caller(0); |
12
|
|
|
|
|
|
|
|
13
|
800
|
100
|
66
|
|
|
9576
|
if ($class->isa(__PACKAGE__) and |
|
|
|
100
|
|
|
|
|
14
|
|
|
|
|
|
|
defined $flag and |
15
|
|
|
|
|
|
|
$flag eq '-base' |
16
|
|
|
|
|
|
|
) { |
17
|
685
|
|
|
|
|
2467
|
$class->import_base($package, $module); |
18
|
|
|
|
|
|
|
} |
19
|
|
|
|
|
|
|
else { |
20
|
115
|
|
|
|
|
636
|
require Exporter; |
21
|
115
|
|
|
|
|
8654
|
goto &Exporter::import; |
22
|
|
|
|
|
|
|
} |
23
|
|
|
|
|
|
|
} |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
sub import_base { |
26
|
685
|
|
|
685
|
0
|
1135
|
my ($class, $package, $module) = @_; |
27
|
23
|
|
|
23
|
|
138
|
no strict 'refs'; |
|
23
|
|
|
|
|
52
|
|
|
23
|
|
|
|
|
4062
|
|
28
|
685
|
|
|
|
|
844
|
push @{$package . '::ISA'}, $class; |
|
685
|
|
|
|
|
8841
|
|
29
|
685
|
|
|
|
|
2523
|
$class->import_fake($package, $module); |
30
|
685
|
|
|
|
|
2363
|
$class->export_base($package); |
31
|
|
|
|
|
|
|
} |
32
|
|
|
|
|
|
|
|
33
|
|
|
|
|
|
|
sub import_fake { |
34
|
685
|
|
|
685
|
0
|
2792
|
my ($class, $package, $module) = @_; |
35
|
685
|
|
|
|
|
1274
|
my $inc_module = $package . '.pm'; |
36
|
685
|
|
|
|
|
4363
|
$inc_module =~ s/::/\//g; |
37
|
685
|
100
|
|
|
|
2285
|
return if defined $INC{$inc_module}; |
38
|
550
|
|
|
|
|
1991
|
$INC{$inc_module} = $module; |
39
|
|
|
|
|
|
|
} |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
sub export_base { |
42
|
685
|
|
|
685
|
0
|
978
|
my ($source, $target) = @_; |
43
|
23
|
|
|
23
|
|
153
|
no strict 'refs'; |
|
23
|
|
|
|
|
65
|
|
|
23
|
|
|
|
|
21569
|
|
44
|
685
|
50
|
|
|
|
2087
|
for my $sub (map { |
|
6165
|
|
|
|
|
13630
|
|
45
|
|
|
|
|
|
|
/::/ ? $_ : "${source}::$_" |
46
|
|
|
|
|
|
|
} $source->EXPORT_BASE()) { |
47
|
6165
|
|
|
|
|
9311
|
my $name = $sub; |
48
|
6165
|
|
|
|
|
18947
|
$name =~ s/.*:://; |
49
|
6165
|
|
|
|
|
14896
|
*{$target . "::$name"} = \&$sub; |
|
6165
|
|
|
|
|
177999
|
|
50
|
|
|
|
|
|
|
} |
51
|
|
|
|
|
|
|
} |
52
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
sub new { |
54
|
2010
|
|
|
2010
|
0
|
4626
|
my $class = shift; |
55
|
2010
|
|
|
|
|
8837
|
my $self = bless {}, $class; |
56
|
2010
|
|
|
|
|
6453
|
$self->init(@_); |
57
|
2010
|
|
|
|
|
24571
|
return $self; |
58
|
|
|
|
|
|
|
} |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
sub dump_object { |
61
|
0
|
|
|
0
|
0
|
0
|
my $class = shift; |
62
|
0
|
|
|
|
|
0
|
my $args = '('; |
63
|
0
|
|
|
|
|
0
|
while (my ($k, $v) = splice(@_, 0, 2)) { |
64
|
0
|
0
|
|
|
|
0
|
last unless $k; |
65
|
0
|
0
|
|
|
|
0
|
if (not defined $v) { |
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
66
|
0
|
|
|
|
|
0
|
$v = '~'; |
67
|
|
|
|
|
|
|
} |
68
|
|
|
|
|
|
|
elsif (ref $v) { |
69
|
0
|
|
|
|
|
0
|
$v = '@'; |
70
|
|
|
|
|
|
|
} |
71
|
|
|
|
|
|
|
elsif (length $v > 15) { |
72
|
0
|
|
|
|
|
0
|
$v = substr $v, 0, 15; |
73
|
|
|
|
|
|
|
} |
74
|
0
|
|
|
|
|
0
|
$args .= "${k}:$v,"; |
75
|
|
|
|
|
|
|
} |
76
|
0
|
|
|
|
|
0
|
$args =~ s/,$//; |
77
|
0
|
|
|
|
|
0
|
$args .= ')'; |
78
|
|
|
|
|
|
|
# printf "\t\t\t\t\t\t\t%s :\n%26s %s\n", (caller(2))[3], $class, $args; |
79
|
0
|
|
|
|
|
0
|
printf "%26s %s\n", $class, $args; |
80
|
|
|
|
|
|
|
} |
81
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
sub init { |
83
|
2010
|
|
|
2010
|
0
|
2485
|
my $self = shift; |
84
|
2010
|
|
|
|
|
7625
|
while (my ($property, $value) = splice(@_, 0, 2)) { |
85
|
6127
|
50
|
|
|
|
29394
|
unless ($self->can($property)) { |
86
|
0
|
|
|
|
|
0
|
my $class = ref $self; |
87
|
0
|
|
|
|
|
0
|
Carp::confess("Class '$class' has no property '$property'"); |
88
|
|
|
|
|
|
|
} |
89
|
6127
|
|
|
|
|
178495
|
$self->$property($value); |
90
|
|
|
|
|
|
|
} |
91
|
|
|
|
|
|
|
} |
92
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
sub create { |
94
|
250
|
|
|
250
|
0
|
405
|
my $self = shift; |
95
|
250
|
|
|
|
|
545
|
my $object_class = (shift) . '_class'; |
96
|
250
|
|
|
|
|
7544
|
my $module_name = $self->$object_class; |
97
|
250
|
|
|
|
|
15560
|
eval "require $module_name"; |
98
|
250
|
50
|
33
|
|
|
1360
|
$self->die("Error in require $module_name - $@") |
99
|
|
|
|
|
|
|
if $@ and "$@" !~ /Can't locate/; |
100
|
250
|
|
|
|
|
1588
|
return $module_name->new; |
101
|
|
|
|
|
|
|
} |
102
|
|
|
|
|
|
|
|
103
|
|
|
|
|
|
|
sub die { |
104
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
105
|
0
|
|
|
|
|
0
|
Carp::confess(@_); |
106
|
|
|
|
|
|
|
} |
107
|
|
|
|
|
|
|
|
108
|
|
|
|
|
|
|
my %code = ( |
109
|
|
|
|
|
|
|
sub_start => |
110
|
|
|
|
|
|
|
"sub {\n", |
111
|
|
|
|
|
|
|
set_default => |
112
|
|
|
|
|
|
|
" \$_[0]->{%s} = %s\n unless exists \$_[0]->{%s};\n", |
113
|
|
|
|
|
|
|
class => |
114
|
|
|
|
|
|
|
" return do { my \$class = \$_[0]; %s } unless ref \$_[0];\n", |
115
|
|
|
|
|
|
|
init => |
116
|
|
|
|
|
|
|
" return \$_[0]->{%s} = do { my \$self = \$_[0]; %s }\n" . |
117
|
|
|
|
|
|
|
" unless \$#_ > 0 or defined \$_[0]->{%s};\n", |
118
|
|
|
|
|
|
|
return_if_get => |
119
|
|
|
|
|
|
|
" return \$_[0]->{%s} unless \$#_ > 0;\n", |
120
|
|
|
|
|
|
|
set => |
121
|
|
|
|
|
|
|
" \$_[0]->{%s} = \$_[1];\n", |
122
|
|
|
|
|
|
|
onset => |
123
|
|
|
|
|
|
|
" do { local \$_ = \$_[1]; my \$self = \$_[0]; %s };\n", |
124
|
|
|
|
|
|
|
chain => |
125
|
|
|
|
|
|
|
" return \$_[0];\n}\n", |
126
|
|
|
|
|
|
|
sub_end => |
127
|
|
|
|
|
|
|
" return \$_[0]->{%s};\n}\n", |
128
|
|
|
|
|
|
|
); |
129
|
|
|
|
|
|
|
|
130
|
|
|
|
|
|
|
my $parse_arguments = sub { |
131
|
|
|
|
|
|
|
my $paired_arguments = shift || []; |
132
|
|
|
|
|
|
|
my ($args, @values) = ({}, ()); |
133
|
|
|
|
|
|
|
my %pairs = map { ($_, 1) } @$paired_arguments; |
134
|
|
|
|
|
|
|
while (@_) { |
135
|
|
|
|
|
|
|
my $elem = shift; |
136
|
|
|
|
|
|
|
if (defined $elem and defined $pairs{$elem} and @_) { |
137
|
|
|
|
|
|
|
$args->{$elem} = shift; |
138
|
|
|
|
|
|
|
} |
139
|
|
|
|
|
|
|
elsif ($elem eq '-chain') { |
140
|
|
|
|
|
|
|
$args->{-chain} = 1; |
141
|
|
|
|
|
|
|
} |
142
|
|
|
|
|
|
|
else { |
143
|
|
|
|
|
|
|
push @values, $elem; |
144
|
|
|
|
|
|
|
} |
145
|
|
|
|
|
|
|
} |
146
|
|
|
|
|
|
|
return wantarray ? ($args, @values) : $args; |
147
|
|
|
|
|
|
|
}; |
148
|
|
|
|
|
|
|
|
149
|
|
|
|
|
|
|
my $default_as_code = sub { |
150
|
23
|
|
|
23
|
|
158
|
no warnings 'once'; |
|
23
|
|
|
|
|
58
|
|
|
23
|
|
|
|
|
13327
|
|
151
|
|
|
|
|
|
|
require Data::Dumper; |
152
|
|
|
|
|
|
|
local $Data::Dumper::Sortkeys = 1; |
153
|
|
|
|
|
|
|
my $code = Data::Dumper::Dumper(shift); |
154
|
|
|
|
|
|
|
$code =~ s/^\$VAR1 = //; |
155
|
|
|
|
|
|
|
$code =~ s/;$//; |
156
|
|
|
|
|
|
|
return $code; |
157
|
|
|
|
|
|
|
}; |
158
|
|
|
|
|
|
|
|
159
|
|
|
|
|
|
|
sub field { |
160
|
1782
|
|
|
1782
|
0
|
3685
|
my $package = caller; |
161
|
1782
|
|
|
|
|
6020
|
my ($args, @values) = &$parse_arguments( |
162
|
|
|
|
|
|
|
[ qw(-package -class -init -onset) ], |
163
|
|
|
|
|
|
|
@_, |
164
|
|
|
|
|
|
|
); |
165
|
1782
|
|
|
|
|
4921
|
my ($field, $default) = @values; |
166
|
1782
|
50
|
|
|
|
5187
|
$package = $args->{-package} if defined $args->{-package}; |
167
|
1782
|
50
|
|
|
|
2025
|
return if defined &{"${package}::$field"}; |
|
1782
|
|
|
|
|
16287
|
|
168
|
1782
|
100
|
100
|
|
|
9394
|
my $default_string = |
|
|
100
|
66
|
|
|
|
|
169
|
|
|
|
|
|
|
( ref($default) eq 'ARRAY' and not @$default ) |
170
|
|
|
|
|
|
|
? '[]' |
171
|
|
|
|
|
|
|
: (ref($default) eq 'HASH' and not keys %$default ) |
172
|
|
|
|
|
|
|
? '{}' |
173
|
|
|
|
|
|
|
: &$default_as_code($default); |
174
|
|
|
|
|
|
|
|
175
|
1782
|
|
|
|
|
4327
|
my $code = $code{sub_start}; |
176
|
|
|
|
|
|
|
|
177
|
1782
|
100
|
|
|
|
4994
|
if ($args->{-class}) { |
178
|
72
|
50
|
|
|
|
279
|
if ($args->{-class} eq '-init') { |
179
|
72
|
|
|
|
|
160
|
$args->{-class} = $args->{-init}; |
180
|
72
|
|
|
|
|
219
|
$args->{-class} =~ s/\$self/\$class/g; |
181
|
|
|
|
|
|
|
} |
182
|
72
|
|
|
|
|
296
|
my $fragment = $code{class}; |
183
|
72
|
|
|
|
|
305
|
$code .= sprintf |
184
|
|
|
|
|
|
|
$fragment, |
185
|
|
|
|
|
|
|
$args->{-class}; |
186
|
|
|
|
|
|
|
} |
187
|
|
|
|
|
|
|
|
188
|
1782
|
100
|
|
|
|
3875
|
if ($args->{-init}) { |
189
|
243
|
|
|
|
|
438
|
my $fragment = $code{init}; |
190
|
243
|
|
|
|
|
1199
|
$code .= sprintf |
191
|
|
|
|
|
|
|
$fragment, |
192
|
|
|
|
|
|
|
$field, |
193
|
|
|
|
|
|
|
$args->{-init}, |
194
|
|
|
|
|
|
|
($field) x 4; |
195
|
|
|
|
|
|
|
} |
196
|
1782
|
100
|
|
|
|
5946
|
$code .= sprintf $code{set_default}, $field, $default_string, $field |
197
|
|
|
|
|
|
|
if defined $default; |
198
|
1782
|
|
|
|
|
5574
|
$code .= sprintf $code{return_if_get}, $field; |
199
|
1782
|
|
|
|
|
3962
|
$code .= sprintf $code{set}, $field; |
200
|
1782
|
100
|
|
|
|
4143
|
$code .= sprintf $code{onset}, $args->{-onset} |
201
|
|
|
|
|
|
|
if defined $args->{-onset}; |
202
|
1782
|
100
|
|
|
|
3559
|
if (defined $args->{-chain}) { |
203
|
136
|
|
|
|
|
247
|
$code .= $code{chain}; |
204
|
|
|
|
|
|
|
} |
205
|
|
|
|
|
|
|
else { |
206
|
1646
|
|
|
|
|
11473
|
$code .= sprintf $code{sub_end}, $field; |
207
|
|
|
|
|
|
|
} |
208
|
|
|
|
|
|
|
|
209
|
1782
|
100
|
66
|
580
|
|
256938
|
my $sub = eval $code; |
|
580
|
100
|
100
|
|
|
4039
|
|
|
160
|
100
|
100
|
|
|
1714
|
|
|
139
|
100
|
66
|
|
|
661
|
|
|
341
|
100
|
100
|
|
|
2511
|
|
|
109
|
100
|
66
|
|
|
1054
|
|
|
109
|
100
|
66
|
|
|
953
|
|
|
188
|
100
|
100
|
|
|
2663
|
|
|
73
|
100
|
100
|
|
|
443
|
|
|
57
|
100
|
100
|
|
|
339
|
|
|
189
|
100
|
100
|
|
|
11112
|
|
|
80
|
100
|
66
|
|
|
284
|
|
|
232
|
100
|
66
|
|
|
2406
|
|
|
158
|
100
|
66
|
|
|
825
|
|
|
78
|
100
|
66
|
|
|
224
|
|
|
53
|
100
|
66
|
|
|
397
|
|
|
65
|
100
|
0
|
|
|
213
|
|
|
349
|
100
|
66
|
|
|
8548
|
|
|
149
|
100
|
33
|
|
|
594
|
|
|
149
|
100
|
100
|
|
|
2150
|
|
|
187
|
100
|
0
|
|
|
725
|
|
|
149
|
100
|
33
|
|
|
646
|
|
|
121
|
100
|
66
|
|
|
382
|
|
|
96
|
100
|
100
|
|
|
238
|
|
|
26
|
100
|
33
|
|
|
160
|
|
|
115
|
100
|
0
|
|
|
1444
|
|
|
25
|
100
|
33
|
|
|
80
|
|
|
449
|
100
|
33
|
|
|
1279
|
|
|
502
|
100
|
0
|
|
|
4866
|
|
|
89
|
100
|
0
|
|
|
475
|
|
|
68
|
100
|
0
|
|
|
229
|
|
|
63
|
100
|
0
|
|
|
362
|
|
|
407
|
100
|
0
|
|
|
1776
|
|
|
394
|
100
|
0
|
|
|
2646
|
|
|
60
|
100
|
0
|
|
|
245
|
|
|
70
|
100
|
0
|
|
|
878
|
|
|
106
|
100
|
0
|
|
|
450
|
|
|
60
|
100
|
0
|
|
|
1151
|
|
|
67
|
100
|
0
|
|
|
327
|
|
|
83
|
100
|
0
|
|
|
288
|
|
|
111
|
100
|
0
|
|
|
1705
|
|
|
48
|
100
|
|
|
|
759
|
|
|
1699
|
100
|
|
|
|
4866
|
|
|
1683
|
100
|
|
|
|
13365
|
|
|
147
|
100
|
|
|
|
1001
|
|
|
1785
|
100
|
|
|
|
5448
|
|
|
1671
|
100
|
|
|
|
12115
|
|
|
71
|
100
|
|
|
|
290
|
|
|
594
|
100
|
|
|
|
2723
|
|
|
773
|
100
|
|
|
|
4209
|
|
|
255
|
100
|
|
|
|
1182
|
|
|
540
|
100
|
|
|
|
3425
|
|
|
693
|
100
|
|
|
|
8186
|
|
|
105
|
100
|
|
|
|
428
|
|
|
567
|
100
|
|
|
|
3071
|
|
|
40
|
100
|
|
|
|
205
|
|
|
41
|
100
|
|
|
|
145
|
|
|
53
|
100
|
|
|
|
640
|
|
|
31
|
100
|
|
|
|
371
|
|
|
25
|
100
|
|
|
|
129
|
|
|
140
|
100
|
|
|
|
1466
|
|
|
221
|
100
|
|
|
|
991
|
|
|
317
|
100
|
|
|
|
1887
|
|
|
96
|
100
|
|
|
|
308
|
|
|
121
|
100
|
|
|
|
444
|
|
|
276
|
100
|
|
|
|
4531
|
|
|
56
|
100
|
|
|
|
465
|
|
|
48
|
100
|
|
|
|
177
|
|
|
181
|
100
|
|
|
|
525
|
|
|
470
|
100
|
|
|
|
2327
|
|
|
361
|
100
|
|
|
|
1536
|
|
|
173
|
100
|
|
|
|
367
|
|
|
198
|
100
|
|
|
|
604
|
|
|
565
|
100
|
|
|
|
2755
|
|
|
293
|
100
|
|
|
|
2543
|
|
|
759
|
100
|
|
|
|
10720
|
|
|
313
|
100
|
|
|
|
2247
|
|
|
944
|
100
|
|
|
|
11921
|
|
|
426
|
100
|
|
|
|
1406
|
|
|
466
|
100
|
|
|
|
2408
|
|
|
113
|
100
|
|
|
|
684
|
|
|
106
|
100
|
|
|
|
821
|
|
|
7
|
100
|
|
|
|
27
|
|
|
578
|
100
|
|
|
|
1736
|
|
|
585
|
100
|
|
|
|
2451
|
|
|
35
|
100
|
|
|
|
185
|
|
|
351
|
100
|
|
|
|
2216
|
|
|
1167
|
100
|
|
|
|
3286
|
|
|
1168
|
100
|
|
|
|
8040
|
|
|
412
|
100
|
|
|
|
1153
|
|
|
412
|
100
|
|
|
|
2081
|
|
|
187
|
100
|
|
|
|
1444
|
|
|
665
|
100
|
|
|
|
10487
|
|
|
223
|
100
|
|
|
|
909
|
|
|
336
|
100
|
|
|
|
2502
|
|
|
151
|
100
|
|
|
|
703
|
|
|
79
|
100
|
|
|
|
346
|
|
|
52
|
100
|
|
|
|
327
|
|
|
263
|
100
|
|
|
|
1262
|
|
|
355
|
100
|
|
|
|
3842
|
|
|
254
|
100
|
|
|
|
2604
|
|
|
185
|
100
|
|
|
|
476
|
|
|
323
|
100
|
|
|
|
2590
|
|
|
228
|
100
|
|
|
|
665
|
|
|
222
|
100
|
|
|
|
1136
|
|
|
227
|
100
|
|
|
|
2379
|
|
|
283
|
100
|
|
|
|
1230
|
|
|
252
|
100
|
|
|
|
2153
|
|
|
619
|
100
|
|
|
|
3559
|
|
|
494
|
100
|
|
|
|
7874
|
|
|
468
|
100
|
|
|
|
4781
|
|
|
314
|
100
|
|
|
|
1501
|
|
|
123
|
100
|
|
|
|
318
|
|
|
112
|
100
|
|
|
|
541
|
|
|
15
|
100
|
|
|
|
174
|
|
|
6
|
100
|
|
|
|
32
|
|
|
31
|
100
|
|
|
|
134
|
|
|
224
|
100
|
|
|
|
2132
|
|
|
236
|
100
|
|
|
|
1936
|
|
|
210
|
100
|
|
|
|
1731
|
|
|
568
|
100
|
|
|
|
3262
|
|
|
372
|
100
|
|
|
|
7511
|
|
|
174
|
100
|
|
|
|
1763
|
|
|
141
|
100
|
|
|
|
1732
|
|
|
413
|
100
|
|
|
|
5811
|
|
|
273
|
100
|
|
|
|
1761
|
|
|
266
|
100
|
|
|
|
1365
|
|
|
186
|
100
|
|
|
|
1444
|
|
|
98
|
100
|
|
|
|
428
|
|
|
123
|
100
|
|
|
|
1644
|
|
|
331
|
100
|
|
|
|
1968
|
|
|
247
|
100
|
|
|
|
2480
|
|
|
92
|
100
|
|
|
|
770
|
|
|
366
|
100
|
|
|
|
1714
|
|
|
72
|
100
|
|
|
|
387
|
|
|
42
|
100
|
|
|
|
115
|
|
|
111
|
100
|
|
|
|
475
|
|
|
87
|
100
|
|
|
|
598
|
|
|
408
|
100
|
|
|
|
18208
|
|
|
357
|
100
|
|
|
|
2918
|
|
|
434
|
100
|
|
|
|
1470
|
|
|
503
|
100
|
|
|
|
7895
|
|
|
121
|
100
|
|
|
|
1374
|
|
|
82
|
100
|
|
|
|
368
|
|
|
88
|
100
|
|
|
|
278
|
|
|
240
|
100
|
|
|
|
1140
|
|
|
142
|
100
|
|
|
|
638
|
|
|
25
|
100
|
|
|
|
276
|
|
|
187
|
100
|
|
|
|
583
|
|
|
258
|
100
|
|
|
|
919
|
|
|
358
|
100
|
|
|
|
1568
|
|
|
227
|
100
|
|
|
|
1482
|
|
|
108
|
100
|
|
|
|
398
|
|
|
268
|
100
|
|
|
|
2627
|
|
|
126
|
100
|
|
|
|
696
|
|
|
47
|
100
|
|
|
|
114
|
|
|
90
|
100
|
|
|
|
328
|
|
|
210
|
100
|
|
|
|
1186
|
|
|
157
|
100
|
|
|
|
1418
|
|
|
110
|
100
|
|
|
|
810
|
|
|
291
|
100
|
|
|
|
4004
|
|
|
149
|
100
|
|
|
|
427
|
|
|
150
|
100
|
|
|
|
928
|
|
|
411
|
100
|
|
|
|
2534
|
|
|
237
|
100
|
|
|
|
616
|
|
|
227
|
100
|
|
|
|
1085
|
|
|
127
|
100
|
|
|
|
967
|
|
|
357
|
100
|
|
|
|
1391
|
|
|
198
|
50
|
|
|
|
487
|
|
|
203
|
100
|
|
|
|
856
|
|
|
279
|
100
|
|
|
|
2638
|
|
|
145
|
100
|
|
|
|
2170
|
|
|
139
|
100
|
|
|
|
1149
|
|
|
78
|
100
|
|
|
|
246
|
|
|
83
|
50
|
|
|
|
1256
|
|
|
118
|
0
|
|
|
|
1829
|
|
|
254
|
50
|
|
|
|
1545
|
|
|
177
|
100
|
|
|
|
2704
|
|
|
154
|
100
|
|
|
|
826
|
|
|
342
|
100
|
|
|
|
1381
|
|
|
407
|
100
|
|
|
|
1358
|
|
|
336
|
100
|
|
|
|
1287
|
|
|
244
|
100
|
|
|
|
1862
|
|
|
128
|
100
|
|
|
|
2515
|
|
|
77
|
100
|
|
|
|
447
|
|
|
616
|
100
|
|
|
|
2047
|
|
|
556
|
100
|
|
|
|
4067
|
|
|
41
|
100
|
|
|
|
215
|
|
|
348
|
100
|
|
|
|
1258
|
|
|
555
|
100
|
|
|
|
3449
|
|
|
183
|
0
|
|
|
|
1866
|
|
|
167
|
100
|
|
|
|
948
|
|
|
245
|
100
|
|
|
|
932
|
|
|
318
|
50
|
|
|
|
1283
|
|
|
240
|
100
|
|
|
|
1112
|
|
|
64
|
100
|
|
|
|
617
|
|
|
233
|
100
|
|
|
|
1717
|
|
|
177
|
50
|
|
|
|
1816
|
|
|
1660
|
100
|
|
|
|
8587
|
|
|
310
|
100
|
|
|
|
5325
|
|
|
68
|
50
|
|
|
|
1278
|
|
|
1585
|
100
|
|
|
|
43491
|
|
|
114
|
50
|
|
|
|
506
|
|
|
86
|
100
|
|
|
|
251
|
|
|
235
|
100
|
|
|
|
783
|
|
|
192
|
0
|
|
|
|
547
|
|
|
257
|
0
|
|
|
|
939
|
|
|
103
|
100
|
|
|
|
1075
|
|
|
49
|
100
|
|
|
|
215
|
|
|
342
|
100
|
|
|
|
1781
|
|
|
25
|
100
|
|
|
|
77
|
|
|
39
|
100
|
|
|
|
1214
|
|
|
335
|
100
|
|
|
|
2196
|
|
|
23
|
100
|
|
|
|
1166
|
|
|
75
|
50
|
|
|
|
619
|
|
|
1146
|
0
|
|
|
|
7120
|
|
|
239
|
0
|
|
|
|
795
|
|
|
212
|
100
|
|
|
|
705
|
|
|
89
|
100
|
|
|
|
480
|
|
|
248
|
50
|
|
|
|
877
|
|
|
400
|
100
|
|
|
|
2318
|
|
|
338
|
100
|
|
|
|
2244
|
|
|
549
|
0
|
|
|
|
4285
|
|
|
240
|
0
|
|
|
|
1378
|
|
|
129
|
100
|
|
|
|
789
|
|
|
77
|
50
|
|
|
|
298
|
|
|
193
|
0
|
|
|
|
1603
|
|
|
116
|
50
|
|
|
|
635
|
|
|
106
|
0
|
|
|
|
317
|
|
|
225
|
100
|
|
|
|
983
|
|
|
413
|
50
|
|
|
|
1591
|
|
|
394
|
0
|
|
|
|
6729
|
|
|
209
|
0
|
|
|
|
584
|
|
|
183
|
0
|
|
|
|
1467
|
|
|
120
|
0
|
|
|
|
381
|
|
|
777
|
50
|
|
|
|
10721
|
|
|
465
|
0
|
|
|
|
1740
|
|
|
531
|
100
|
|
|
|
3556
|
|
|
340
|
50
|
|
|
|
1900
|
|
|
339
|
50
|
|
|
|
4013
|
|
|
292
|
0
|
|
|
|
1288
|
|
|
447
|
0
|
|
|
|
1363
|
|
|
648
|
100
|
|
|
|
9802
|
|
|
1687
|
100
|
|
|
|
4559
|
|
|
1689
|
100
|
|
|
|
13499
|
|
|
295
|
100
|
|
|
|
5149
|
|
|
72
|
50
|
|
|
|
937
|
|
|
28
|
0
|
|
|
|
138
|
|
|
1214
|
0
|
|
|
|
7385
|
|
|
223
|
0
|
|
|
|
654
|
|
|
243
|
0
|
|
|
|
898
|
|
|
116
|
100
|
|
|
|
5173
|
|
|
116
|
100
|
|
|
|
431
|
|
|
57
|
100
|
|
|
|
440
|
|
|
17
|
100
|
|
|
|
68
|
|
|
264
|
0
|
|
|
|
900
|
|
|
301
|
0
|
|
|
|
2669
|
|
|
60
|
100
|
|
|
|
162
|
|
|
100
|
100
|
|
|
|
741
|
|
|
82
|
100
|
|
|
|
408
|
|
|
122
|
50
|
|
|
|
1226
|
|
|
55
|
50
|
|
|
|
642
|
|
|
180
|
0
|
|
|
|
754
|
|
|
140
|
0
|
|
|
|
422
|
|
|
136
|
0
|
|
|
|
337
|
|
|
172
|
0
|
|
|
|
1861
|
|
|
196
|
0
|
|
|
|
674
|
|
|
240
|
0
|
|
|
|
1023
|
|
|
234
|
0
|
|
|
|
541
|
|
|
234
|
0
|
|
|
|
592
|
|
|
136
|
0
|
|
|
|
577
|
|
|
98
|
0
|
|
|
|
311
|
|
|
149
|
0
|
|
|
|
469
|
|
|
125
|
0
|
|
|
|
2022
|
|
|
104
|
0
|
|
|
|
478
|
|
|
81
|
0
|
|
|
|
619
|
|
|
227
|
0
|
|
|
|
1812
|
|
|
69
|
0
|
|
|
|
1361
|
|
|
22
|
0
|
|
|
|
143
|
|
|
48
|
0
|
|
|
|
425
|
|
|
81
|
0
|
|
|
|
646
|
|
|
140
|
0
|
|
|
|
458
|
|
|
167
|
0
|
|
|
|
640
|
|
|
116
|
0
|
|
|
|
604
|
|
|
89
|
0
|
|
|
|
1612
|
|
|
14
|
0
|
|
|
|
44
|
|
|
821
|
0
|
|
|
|
2853
|
|
|
709
|
0
|
|
|
|
2927
|
|
|
99
|
0
|
|
|
|
1189
|
|
|
78
|
0
|
|
|
|
576
|
|
|
247
|
0
|
|
|
|
1015
|
|
|
227
|
0
|
|
|
|
3296
|
|
|
439
|
0
|
|
|
|
2389
|
|
|
471
|
0
|
|
|
|
2930
|
|
|
171
|
0
|
|
|
|
1848
|
|
|
108
|
0
|
|
|
|
1360
|
|
|
109
|
0
|
|
|
|
384
|
|
|
87
|
0
|
|
|
|
2000
|
|
|
21
|
0
|
|
|
|
76
|
|
|
17
|
0
|
|
|
|
152
|
|
|
0
|
0
|
|
|
|
0
|
|
|
139
|
0
|
|
|
|
1765
|
|
|
392
|
0
|
|
|
|
1360
|
|
|
527
|
0
|
|
|
|
4132
|
|
|
597
|
0
|
|
|
|
2069
|
|
|
1014
|
0
|
|
|
|
4060
|
|
|
671
|
0
|
|
|
|
3782
|
|
|
72
|
0
|
|
|
|
242
|
|
|
78
|
0
|
|
|
|
413
|
|
|
188
|
0
|
|
|
|
4520
|
|
|
29
|
0
|
|
|
|
105
|
|
|
25
|
0
|
|
|
|
78
|
|
|
59
|
0
|
|
|
|
983
|
|
|
245
|
0
|
|
|
|
695
|
|
|
327
|
0
|
|
|
|
1504
|
|
|
277
|
0
|
|
|
|
1185
|
|
|
502
|
0
|
|
|
|
1414
|
|
|
620
|
0
|
|
|
|
12442
|
|
|
364
|
0
|
|
|
|
1225
|
|
|
182
|
0
|
|
|
|
392
|
|
|
306
|
0
|
|
|
|
2839
|
|
|
78
|
0
|
|
|
|
561
|
|
|
48
|
0
|
|
|
|
163
|
|
|
187
|
0
|
|
|
|
855
|
|
|
129
|
0
|
|
|
|
572
|
|
|
40
|
0
|
|
|
|
130
|
|
|
76
|
0
|
|
|
|
490
|
|
|
93
|
0
|
|
|
|
564
|
|
|
42
|
0
|
|
|
|
145
|
|
|
64
|
0
|
|
|
|
328
|
|
|
280
|
0
|
|
|
|
2104
|
|
|
174
|
0
|
|
|
|
774
|
|
|
214
|
0
|
|
|
|
1313
|
|
|
2104
|
0
|
|
|
|
12178
|
|
|
365
|
0
|
|
|
|
4676
|
|
|
34
|
0
|
|
|
|
218
|
|
|
1751
|
0
|
|
|
|
22839
|
|
|
31
|
0
|
|
|
|
156
|
|
|
51
|
0
|
|
|
|
245
|
|
|
129
|
0
|
|
|
|
465
|
|
|
113
|
0
|
|
|
|
1659
|
|
|
26
|
0
|
|
|
|
192
|
|
|
29
|
0
|
|
|
|
158
|
|
|
49
|
0
|
|
|
|
226
|
|
|
154
|
0
|
|
|
|
593
|
|
|
243
|
0
|
|
|
|
878
|
|
|
309
|
0
|
|
|
|
915
|
|
|
1310
|
0
|
|
|
|
4747
|
|
|
1195
|
0
|
|
|
|
13238
|
|
|
186
|
0
|
|
|
|
556
|
|
|
102
|
0
|
|
|
|
632
|
|
|
57
|
0
|
|
|
|
186
|
|
|
68
|
0
|
|
|
|
243
|
|
|
51
|
0
|
|
|
|
161
|
|
|
33
|
|
|
|
|
204
|
|
|
6
|
|
|
|
|
35
|
|
|
281
|
|
|
|
|
830
|
|
|
465
|
|
|
|
|
2338
|
|
|
153
|
|
|
|
|
602
|
|
|
143
|
|
|
|
|
528
|
|
|
156
|
|
|
|
|
822
|
|
|
86
|
|
|
|
|
304
|
|
|
276
|
|
|
|
|
906
|
|
|
618
|
|
|
|
|
7007
|
|
|
448
|
|
|
|
|
4491
|
|
|
36
|
|
|
|
|
110
|
|
|
53
|
|
|
|
|
251
|
|
|
32
|
|
|
|
|
118
|
|
|
33
|
|
|
|
|
147
|
|
|
58
|
|
|
|
|
379
|
|
|
87
|
|
|
|
|
333
|
|
|
51
|
|
|
|
|
927
|
|
|
72
|
|
|
|
|
403
|
|
|
24
|
|
|
|
|
121
|
|
|
47
|
|
|
|
|
198
|
|
|
39
|
|
|
|
|
167
|
|
|
27
|
|
|
|
|
190
|
|
|
12
|
|
|
|
|
60
|
|
|
35
|
|
|
|
|
168
|
|
|
50
|
|
|
|
|
118
|
|
|
50
|
|
|
|
|
129
|
|
|
51
|
|
|
|
|
220
|
|
|
45
|
|
|
|
|
279
|
|
|
205
|
|
|
|
|
523
|
|
|
205
|
|
|
|
|
704
|
|
|
674
|
|
|
|
|
3430
|
|
|
132
|
|
|
|
|
1221
|
|
|
97
|
|
|
|
|
321
|
|
|
590
|
|
|
|
|
3474
|
|
|
54
|
|
|
|
|
483
|
|
|
27
|
|
|
|
|
100
|
|
|
30
|
|
|
|
|
180
|
|
|
60
|
|
|
|
|
821
|
|
|
33
|
|
|
|
|
713
|
|
|
24
|
|
|
|
|
301
|
|
|
67
|
|
|
|
|
364
|
|
|
51
|
|
|
|
|
160
|
|
|
63
|
|
|
|
|
404
|
|
|
23
|
|
|
|
|
86
|
|
|
17
|
|
|
|
|
55
|
|
|
7
|
|
|
|
|
52
|
|
|
70
|
|
|
|
|
1259
|
|
|
35
|
|
|
|
|
108
|
|
|
87
|
|
|
|
|
228
|
|
|
212
|
|
|
|
|
778
|
|
|
134
|
|
|
|
|
497
|
|
|
80
|
|
|
|
|
170
|
|
|
72
|
|
|
|
|
165
|
|
|
217
|
|
|
|
|
647
|
|
|
271
|
|
|
|
|
1318
|
|
|
117
|
|
|
|
|
217
|
|
|
117
|
|
|
|
|
264
|
|
|
282
|
|
|
|
|
1873
|
|
|
180
|
|
|
|
|
1354
|
|
|
39
|
|
|
|
|
202
|
|
|
148
|
|
|
|
|
1853
|
|
|
74
|
|
|
|
|
258
|
|
|
63
|
|
|
|
|
162
|
|
|
206
|
|
|
|
|
1308
|
|
|
74
|
|
|
|
|
190
|
|
|
68
|
|
|
|
|
204
|
|
|
9
|
|
|
|
|
51
|
|
|
0
|
|
|
|
|
0
|
|
|
3
|
|
|
|
|
12
|
|
|
53
|
|
|
|
|
161
|
|
|
62
|
|
|
|
|
1404
|
|
|
30
|
|
|
|
|
105
|
|
|
48
|
|
|
|
|
267
|
|
|
31
|
|
|
|
|
288
|
|
|
77
|
|
|
|
|
416
|
|
|
256
|
|
|
|
|
773
|
|
|
272
|
|
|
|
|
1433
|
|
|
328
|
|
|
|
|
2242
|
|
|
100
|
|
|
|
|
451
|
|
|
7
|
|
|
|
|
57
|
|
|
173
|
|
|
|
|
1899
|
|
|
6
|
|
|
|
|
53
|
|
|
0
|
|
|
|
|
0
|
|
|
12
|
|
|
|
|
72
|
|
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
16
|
|
|
101
|
|
|
|
|
413
|
|
|
110
|
|
|
|
|
618
|
|
|
32
|
|
|
|
|
117
|
|
|
84
|
|
|
|
|
1935
|
|
|
62
|
|
|
|
|
1058
|
|
|
1
|
|
|
|
|
6
|
|
|
35
|
|
|
|
|
177
|
|
|
59
|
|
|
|
|
668
|
|
|
18
|
|
|
|
|
64
|
|
|
12
|
|
|
|
|
353
|
|
|
46
|
|
|
|
|
190
|
|
|
36
|
|
|
|
|
325
|
|
|
29
|
|
|
|
|
114
|
|
|
10
|
|
|
|
|
28
|
|
|
1
|
|
|
|
|
6
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
9
|
|
|
|
|
63
|
|
|
9
|
|
|
|
|
14
|
|
|
13
|
|
|
|
|
63
|
|
|
4
|
|
|
|
|
1201
|
|
|
1285
|
|
|
|
|
3504
|
|
|
1285
|
|
|
|
|
8365
|
|
|
95
|
|
|
|
|
169
|
|
|
95
|
|
|
|
|
229
|
|
|
55
|
|
|
|
|
318
|
|
|
32
|
|
|
|
|
251
|
|
|
26
|
|
|
|
|
151
|
|
|
12
|
|
|
|
|
52
|
|
|
160
|
|
|
|
|
2377
|
|
|
56
|
|
|
|
|
141
|
|
|
348
|
|
|
|
|
2072
|
|
|
79
|
|
|
|
|
269
|
|
|
59
|
|
|
|
|
244
|
|
|
299
|
|
|
|
|
1948
|
|
|
35
|
|
|
|
|
547
|
|
|
40
|
|
|
|
|
192
|
|
|
51
|
|
|
|
|
353
|
|
|
28
|
|
|
|
|
106
|
|
|
23
|
|
|
|
|
120
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
217
|
|
|
|
|
1715
|
|
|
121
|
|
|
|
|
2072
|
|
|
121
|
|
|
|
|
833
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
23
|
|
|
|
|
67
|
|
|
24
|
|
|
|
|
302
|
|
|
24
|
|
|
|
|
116
|
|
|
25
|
|
|
|
|
152
|
|
|
18
|
|
|
|
|
44
|
|
|
18
|
|
|
|
|
99
|
|
|
1641
|
|
|
|
|
8716
|
|
|
17
|
|
|
|
|
80
|
|
|
11
|
|
|
|
|
43
|
|
|
1650
|
|
|
|
|
20397
|
|
|
22
|
|
|
|
|
199
|
|
|
8
|
|
|
|
|
17
|
|
|
17
|
|
|
|
|
96
|
|
|
11
|
|
|
|
|
69
|
|
|
1
|
|
|
|
|
465
|
|
|
1
|
|
|
|
|
17
|
|
|
21
|
|
|
|
|
364
|
|
|
15
|
|
|
|
|
91
|
|
|
0
|
|
|
|
|
0
|
|
|
3
|
|
|
|
|
14
|
|
|
18
|
|
|
|
|
104
|
|
|
12
|
|
|
|
|
53
|
|
|
12
|
|
|
|
|
106
|
|
|
39
|
|
|
|
|
490
|
|
|
18
|
|
|
|
|
65
|
|
|
9
|
|
|
|
|
106
|
|
|
3
|
|
|
|
|
44
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
23
|
|
|
|
|
188
|
|
|
13
|
|
|
|
|
691
|
|
|
94
|
|
|
|
|
342
|
|
|
113
|
|
|
|
|
489
|
|
|
41
|
|
|
|
|
722
|
|
|
9
|
|
|
|
|
38
|
|
|
0
|
|
|
|
|
0
|
|
|
24
|
|
|
|
|
298
|
|
|
6
|
|
|
|
|
14
|
|
|
6
|
|
|
|
|
38
|
|
|
33
|
|
|
|
|
291
|
|
|
17
|
|
|
|
|
32
|
|
|
17
|
|
|
|
|
60
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
95
|
|
|
|
|
685
|
|
|
17
|
|
|
|
|
36
|
|
|
17
|
|
|
|
|
50
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
17
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
55
|
|
|
|
|
350
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
10
|
|
|
54
|
|
|
|
|
366
|
|
|
2
|
|
|
|
|
17
|
|
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
16
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
3
|
|
|
|
|
27
|
|
|
3
|
|
|
|
|
321
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
21
|
|
|
|
|
70
|
|
|
21
|
|
|
|
|
55
|
|
|
21
|
|
|
|
|
97
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
3
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
41
|
|
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
21
|
|
|
21
|
|
|
|
|
396
|
|
|
6
|
|
|
|
|
20
|
|
|
6
|
|
|
|
|
32
|
|
|
183
|
|
|
|
|
538
|
|
|
183
|
|
|
|
|
1405
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
5
|
|
|
|
|
22
|
|
|
5
|
|
|
|
|
15
|
|
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
10
|
|
|
9
|
|
|
|
|
59
|
|
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
15
|
|
|
6
|
|
|
|
|
96
|
|
|
3
|
|
|
|
|
11
|
|
|
3
|
|
|
|
|
16
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
13
|
|
|
|
|
45
|
|
|
13
|
|
|
|
|
72
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
17
|
|
|
2
|
|
|
|
|
63
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
1
|
|
|
|
|
23
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
5
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
210
|
1782
|
50
|
|
|
|
7782
|
CORE::die $@ if $@; |
211
|
23
|
|
|
23
|
|
146
|
no strict 'refs'; |
|
23
|
|
|
|
|
52
|
|
|
23
|
|
|
|
|
12726
|
|
212
|
1782
|
|
|
|
|
4884
|
*{"${package}::$field"} = $sub; |
|
1782
|
|
|
|
|
14835
|
|
213
|
1782
|
50
|
|
|
|
10075
|
return $code if defined wantarray; |
214
|
|
|
|
|
|
|
} |
215
|
|
|
|
|
|
|
|
216
|
|
|
|
|
|
|
sub node_info { |
217
|
33
|
|
50
|
33
|
0
|
157
|
my $stringify = $_[1] || 0; |
218
|
|
|
|
|
|
|
my ($class, $type, $id) = |
219
|
|
|
|
|
|
|
ref($_[0]) |
220
|
|
|
|
|
|
|
? $stringify |
221
|
|
|
|
|
|
|
? _info("$_[0]") |
222
|
33
|
50
|
|
|
|
121
|
: do { |
|
|
50
|
|
|
|
|
|
223
|
33
|
|
|
|
|
166
|
require overload; |
224
|
33
|
|
|
|
|
149
|
my @info = _info(overload::StrVal($_[0])); |
225
|
33
|
50
|
|
|
|
143
|
if (ref($_[0]) eq 'Regexp') { |
226
|
0
|
|
|
|
|
0
|
@info[0, 1] = (undef, 'REGEXP'); |
227
|
|
|
|
|
|
|
} |
228
|
33
|
|
|
|
|
110
|
@info; |
229
|
|
|
|
|
|
|
} |
230
|
|
|
|
|
|
|
: scalar_info($_[0]); |
231
|
33
|
50
|
|
|
|
92
|
($class, $type, $id) = scalar_info("$_[0]") |
232
|
|
|
|
|
|
|
unless $id; |
233
|
33
|
50
|
|
|
|
180
|
return wantarray ? ($class, $type, $id) : $id; |
234
|
|
|
|
|
|
|
} |
235
|
|
|
|
|
|
|
|
236
|
|
|
|
|
|
|
sub _info { |
237
|
33
|
|
|
33
|
|
509
|
return (($_[0]) =~ qr{^(?:(.*)\=)?([^=]*)\(([^\(]*)\)$}o); |
238
|
|
|
|
|
|
|
}; |
239
|
|
|
|
|
|
|
|
240
|
|
|
|
|
|
|
sub scalar_info { |
241
|
0
|
|
|
0
|
0
|
0
|
my $id = 'undef'; |
242
|
0
|
|
|
|
|
0
|
my $type = ''; |
243
|
0
|
|
|
|
|
0
|
my $ext = '-S'; |
244
|
0
|
0
|
|
|
|
0
|
if (defined $_[0]) { |
245
|
0
|
0
|
|
|
|
0
|
if (ref(\ $_[0]) eq 'GLOB') { |
246
|
0
|
|
|
|
|
0
|
$type = 'GLOB'; |
247
|
0
|
|
|
|
|
0
|
$ext = ''; |
248
|
|
|
|
|
|
|
} |
249
|
0
|
0
|
|
|
|
0
|
\$_[0] =~ /\((\w+)\)$/o or CORE::die(); |
250
|
0
|
|
|
|
|
0
|
$id = "$1$ext"; |
251
|
|
|
|
|
|
|
} |
252
|
0
|
|
|
|
|
0
|
return ('', $type, $id); |
253
|
|
|
|
|
|
|
}; |
254
|
|
|
|
|
|
|
|
255
|
|
|
|
|
|
|
sub _dump { |
256
|
23
|
|
|
23
|
|
144
|
no warnings 'once'; |
|
23
|
|
|
|
|
50
|
|
|
23
|
|
|
|
|
8593
|
|
257
|
0
|
|
|
0
|
|
0
|
require YAML::XS; |
258
|
0
|
|
|
|
|
0
|
return YAML::XS::Dump(@_); |
259
|
|
|
|
|
|
|
} |
260
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
sub XXX { |
262
|
|
|
|
|
|
|
# CORE::die _dump(@_); |
263
|
0
|
|
|
0
|
0
|
0
|
require Carp; |
264
|
0
|
|
|
|
|
0
|
Carp::confess(_dump(@_)); |
265
|
|
|
|
|
|
|
} |
266
|
|
|
|
|
|
|
|
267
|
|
|
|
|
|
|
sub WWW { |
268
|
0
|
|
|
0
|
0
|
0
|
CORE::warn _dump(@_); |
269
|
0
|
|
|
|
|
0
|
return(@_); |
270
|
|
|
|
|
|
|
} |
271
|
|
|
|
|
|
|
|
272
|
|
|
|
|
|
|
sub assert { |
273
|
153
|
|
|
153
|
0
|
1154
|
require Carp; |
274
|
153
|
50
|
|
|
|
563
|
Carp::confess("assert failed") unless $_[0]; |
275
|
|
|
|
|
|
|
} |
276
|
|
|
|
|
|
|
|
277
|
|
|
|
|
|
|
sub throw { |
278
|
1
|
|
|
1
|
0
|
8
|
require Carp; |
279
|
1
|
|
|
|
|
4
|
my $error = (join " ", map {my $val = "$_"; $val =~ s/\s*\z//; $val} @_) . "\n"; |
|
6
|
|
|
|
|
20
|
|
|
6
|
|
|
|
|
46
|
|
|
6
|
|
|
|
|
19
|
|
280
|
1
|
|
|
|
|
337
|
Carp::croak($error); |
281
|
0
|
|
|
|
|
0
|
Carp::confess($error); |
282
|
0
|
|
|
|
|
0
|
Error::Simple->throw(@_); |
283
|
|
|
|
|
|
|
} |
284
|
|
|
|
|
|
|
|
285
|
|
|
|
|
|
|
sub EXPORT_BASE { |
286
|
685
|
|
|
685
|
0
|
2719
|
return qw( |
287
|
|
|
|
|
|
|
YAML::Perl::Base::True |
288
|
|
|
|
|
|
|
YAML::Perl::Base::False |
289
|
|
|
|
|
|
|
YAML::Perl::Base::field |
290
|
|
|
|
|
|
|
YAML::Perl::Base::XXX |
291
|
|
|
|
|
|
|
YAML::Perl::Base::WWW |
292
|
|
|
|
|
|
|
YAML::Perl::Base::assert |
293
|
|
|
|
|
|
|
YAML::Perl::Base::try |
294
|
|
|
|
|
|
|
YAML::Perl::Base::throw |
295
|
|
|
|
|
|
|
YAML::Perl::Base::node_info |
296
|
|
|
|
|
|
|
); |
297
|
|
|
|
|
|
|
} |
298
|
|
|
|
|
|
|
|
299
|
|
|
|
|
|
|
1; |
300
|
|
|
|
|
|
|
|
301
|
|
|
|
|
|
|
=head1 NAME |
302
|
|
|
|
|
|
|
|
303
|
|
|
|
|
|
|
YAML::Perl::Base - Base Class of all YAML Components |
304
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
=head1 SYNOPSIS |
306
|
|
|
|
|
|
|
|
307
|
|
|
|
|
|
|
package YAML::Foo; |
308
|
|
|
|
|
|
|
use strict; |
309
|
|
|
|
|
|
|
use warnings; |
310
|
|
|
|
|
|
|
use YAML::Perl::Base -base; |
311
|
|
|
|
|
|
|
|
312
|
|
|
|
|
|
|
field 'foo'; |
313
|
|
|
|
|
|
|
field 'bar' => 'blah'; |
314
|
|
|
|
|
|
|
|
315
|
|
|
|
|
|
|
=head1 DESCRIPTION |
316
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
The YAML toolset is made up of a bunch of modules that are object |
318
|
|
|
|
|
|
|
oriented. All these modules inherit from YAML::Perl::Base, directly or |
319
|
|
|
|
|
|
|
eventually. |
320
|
|
|
|
|
|
|
|
321
|
|
|
|
|
|
|
YAML::Perl::Base provides the C accessor generator to all its |
322
|
|
|
|
|
|
|
subclasses. It also provides XXX for debugging with YAML::XS. |
323
|
|
|
|
|
|
|
|
324
|
|
|
|
|
|
|
Additionally YAML::Perl::Base provides default C and C class |
325
|
|
|
|
|
|
|
methods for object construction. |
326
|
|
|
|
|
|
|
|
327
|
|
|
|
|
|
|
=head1 AUTHOR |
328
|
|
|
|
|
|
|
|
329
|
|
|
|
|
|
|
Ingy döt Net |
330
|
|
|
|
|
|
|
|
331
|
|
|
|
|
|
|
=head1 COPYRIGHT |
332
|
|
|
|
|
|
|
|
333
|
|
|
|
|
|
|
Copyright (c) 2008, 2009. Ingy döt Net. All rights reserved. |
334
|
|
|
|
|
|
|
|
335
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify it |
336
|
|
|
|
|
|
|
under the same terms as Perl itself. |
337
|
|
|
|
|
|
|
|
338
|
|
|
|
|
|
|
See L |
339
|
|
|
|
|
|
|
|
340
|
|
|
|
|
|
|
=cut |