raspberryGPIOhtmlserver/node_modules/json3/coverage/lcov-report/lib/json3.js.html
node_modules/json3/coverage/lcov-report/lib/json3.js.htmlRaw
1<!doctype html>
2<html lang="en">
3<head>
4 <title>Code coverage report for lib/json3.js</title>
5 <meta charset="utf-8">
6
7 <link rel="stylesheet" href="../prettify.css">
8
9 <style>
10 body, html {
11 margin:0; padding: 0;
12 }
13 body {
14 font-family: Helvetica Neue, Helvetica,Arial;
15 font-size: 10pt;
16 }
17 div.header, div.footer {
18 background: #eee;
19 padding: 1em;
20 }
21 div.header {
22 z-index: 100;
23 position: fixed;
24 top: 0;
25 border-bottom: 1px solid #666;
26 width: 100%;
27 }
28 div.footer {
29 border-top: 1px solid #666;
30 }
31 div.body {
32 margin-top: 10em;
33 }
34 div.meta {
35 font-size: 90%;
36 text-align: center;
37 }
38 h1, h2, h3 {
39 font-weight: normal;
40 }
41 h1 {
42 font-size: 12pt;
43 }
44 h2 {
45 font-size: 10pt;
46 }
47 pre {
48 font-family: Consolas, Menlo, Monaco, monospace;
49 margin: 0;
50 padding: 0;
51 line-height: 14px;
52 font-size: 14px;
53 -moz-tab-size: 2;
54 -o-tab-size: 2;
55 tab-size: 2;
56 }
57
58 div.path { font-size: 110%; }
59 div.path a:link, div.path a:visited { color: #000; }
60 table.coverage { border-collapse: collapse; margin:0; padding: 0 }
61
62 table.coverage td {
63 margin: 0;
64 padding: 0;
65 color: #111;
66 vertical-align: top;
67 }
68 table.coverage td.line-count {
69 width: 50px;
70 text-align: right;
71 padding-right: 5px;
72 }
73 table.coverage td.line-coverage {
74 color: #777 !important;
75 text-align: right;
76 border-left: 1px solid #666;
77 border-right: 1px solid #666;
78 }
79
80 table.coverage td.text {
81 }
82
83 table.coverage td span.cline-any {
84 display: inline-block;
85 padding: 0 5px;
86 width: 40px;
87 }
88 table.coverage td span.cline-neutral {
89 background: #eee;
90 }
91 table.coverage td span.cline-yes {
92 background: #b5d592;
93 color: #999;
94 }
95 table.coverage td span.cline-no {
96 background: #fc8c84;
97 }
98
99 .cstat-yes { color: #111; }
100 .cstat-no { background: #fc8c84; color: #111; }
101 .fstat-no { background: #ffc520; color: #111 !important; }
102 .cbranch-no { background: yellow !important; color: #111; }
103 .missing-if-branch {
104 display: inline-block;
105 margin-right: 10px;
106 position: relative;
107 padding: 0 4px;
108 background: black;
109 color: yellow;
110 xtext-decoration: line-through;
111 }
112 .missing-if-branch .typ {
113 color: inherit !important;
114 }
115
116 .entity, .metric { font-weight: bold; }
117 .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
118 .metric small { font-size: 80%; font-weight: normal; color: #666; }
119
120 div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
121 div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
122 div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
123 div.coverage-summary th.file { border-right: none !important; }
124 div.coverage-summary th.pic { border-left: none !important; text-align: right; }
125 div.coverage-summary th.pct { border-right: none !important; }
126 div.coverage-summary th.abs { border-left: none !important; text-align: right; }
127 div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
128 div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
129 div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
130 div.coverage-summary td.pic { min-width: 120px !important; }
131 div.coverage-summary a:link { text-decoration: none; color: #000; }
132 div.coverage-summary a:visited { text-decoration: none; color: #333; }
133 div.coverage-summary a:hover { text-decoration: underline; }
134 div.coverage-summary tfoot td { border-top: 1px solid #666; }
135
136 div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
137 height: 10px;
138 width: 7px;
139 display: inline-block;
140 margin-left: 0.5em;
141 }
142 div.coverage-summary .yui3-datatable-sort-indicator {
143 background: url("http://yui.yahooapis.com/3.6.0/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png") no-repeat scroll 0 0 transparent;
144 }
145 div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
146 background-position: 0 -20px;
147 }
148 div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
149 background-position: 0 -10px;
150 }
151
152 .high { background: #b5d592 !important; }
153 .medium { background: #ffe87c !important; }
154 .low { background: #fc8c84 !important; }
155
156 span.cover-fill, span.cover-empty {
157 display:inline-block;
158 border:1px solid #444;
159 background: white;
160 height: 12px;
161 }
162 span.cover-fill {
163 background: #ccc;
164 border-right: 1px solid #444;
165 }
166 span.cover-empty {
167 background: white;
168 border-left: none;
169 }
170 span.cover-full {
171 border-right: none !important;
172 }
173 pre.prettyprint {
174 border: none !important;
175 padding: 0 !important;
176 margin: 0 !important;
177 }
178 .com { color: #999 !important; }
179 </style>
180</head>
181<body>
182<div class="header low">
183 <h1>Code coverage report for <span class="entity">lib/json3.js</span></h1>
184 <h2>
185
186 Statements: <span class="metric">13.77% <small>(50 / 363)</small></span>
187
188
189 Branches: <span class="metric">15.32% <small>(59 / 385)</small></span>
190
191
192 Functions: <span class="metric">11.54% <small>(3 / 26)</small></span>
193
194
195 Lines: <span class="metric">13.77% <small>(50 / 363)</small></span>
196
197 </h2>
198 <div class="path"><a href="../index.html">All files</a> » <a href="index.html">lib/</a> » json3.js</div>
199</div>
200<div class="body">
201<pre><table class="coverage">
202<tr><td class="line-count">1
2032
2043
2054
2065
2076
2087
2098
2109
21110
21211
21312
21413
21514
21615
21716
21817
21918
22019
22120
22221
22322
22423
22524
22625
22726
22827
22928
23029
23130
23231
23332
23433
23534
23635
23736
23837
23938
24039
24140
24241
24342
24443
24544
24645
24746
24847
24948
25049
25150
25251
25352
25453
25554
25655
25756
25857
25958
26059
26160
26261
26362
26463
26564
26665
26766
26867
26968
27069
27170
27271
27372
27473
27574
27675
27776
27877
27978
28079
28180
28281
28382
28483
28584
28685
28786
28887
28988
29089
29190
29291
29392
29493
29594
29695
29796
29897
29998
30099
301100
302101
303102
304103
305104
306105
307106
308107
309108
310109
311110
312111
313112
314113
315114
316115
317116
318117
319118
320119
321120
322121
323122
324123
325124
326125
327126
328127
329128
330129
331130
332131
333132
334133
335134
336135
337136
338137
339138
340139
341140
342141
343142
344143
345144
346145
347146
348147
349148
350149
351150
352151
353152
354153
355154
356155
357156
358157
359158
360159
361160
362161
363162
364163
365164
366165
367166
368167
369168
370169
371170
372171
373172
374173
375174
376175
377176
378177
379178
380179
381180
382181
383182
384183
385184
386185
387186
388187
389188
390189
391190
392191
393192
394193
395194
396195
397196
398197
399198
400199
401200
402201
403202
404203
405204
406205
407206
408207
409208
410209
411210
412211
413212
414213
415214
416215
417216
418217
419218
420219
421220
422221
423222
424223
425224
426225
427226
428227
429228
430229
431230
432231
433232
434233
435234
436235
437236
438237
439238
440239
441240
442241
443242
444243
445244
446245
447246
448247
449248
450249
451250
452251
453252
454253
455254
456255
457256
458257
459258
460259
461260
462261
463262
464263
465264
466265
467266
468267
469268
470269
471270
472271
473272
474273
475274
476275
477276
478277
479278
480279
481280
482281
483282
484283
485284
486285
487286
488287
489288
490289
491290
492291
493292
494293
495294
496295
497296
498297
499298
500299
501300
502301
503302
504303
505304
506305
507306
508307
509308
510309
511310
512311
513312
514313
515314
516315
517316
518317
519318
520319
521320
522321
523322
524323
525324
526325
527326
528327
529328
530329
531330
532331
533332
534333
535334
536335
537336
538337
539338
540339
541340
542341
543342
544343
545344
546345
547346
548347
549348
550349
551350
552351
553352
554353
555354
556355
557356
558357
559358
560359
561360
562361
563362
564363
565364
566365
567366
568367
569368
570369
571370
572371
573372
574373
575374
576375
577376
578377
579378
580379
581380
582381
583382
584383
585384
586385
587386
588387
589388
590389
591390
592391
593392
594393
595394
596395
597396
598397
599398
600399
601400
602401
603402
604403
605404
606405
607406
608407
609408
610409
611410
612411
613412
614413
615414
616415
617416
618417
619418
620419
621420
622421
623422
624423
625424
626425
627426
628427
629428
630429
631430
632431
633432
634433
635434
636435
637436
638437
639438
640439
641440
642441
643442
644443
645444
646445
647446
648447
649448
650449
651450
652451
653452
654453
655454
656455
657456
658457
659458
660459
661460
662461
663462
664463
665464
666465
667466
668467
669468
670469
671470
672471
673472
674473
675474
676475
677476
678477
679478
680479
681480
682481
683482
684483
685484
686485
687486
688487
689488
690489
691490
692491
693492
694493
695494
696495
697496
698497
699498
700499
701500
702501
703502
704503
705504
706505
707506
708507
709508
710509
711510
712511
713512
714513
715514
716515
717516
718517
719518
720519
721520
722521
723522
724523
725524
726525
727526
728527
729528
730529
731530
732531
733532
734533
735534
736535
737536
738537
739538
740539
741540
742541
743542
744543
745544
746545
747546
748547
749548
750549
751550
752551
753552
754553
755554
756555
757556
758557
759558
760559
761560
762561
763562
764563
765564
766565
767566
768567
769568
770569
771570
772571
773572
774573
775574
776575
777576
778577
779578
780579
781580
782581
783582
784583
785584
786585
787586
788587
789588
790589
791590
792591
793592
794593
795594
796595
797596
798597
799598
800599
801600
802601
803602
804603
805604
806605
807606
808607
809608
810609
811610
812611
813612
814613
815614
816615
817616
818617
819618
820619
821620
822621
823622
824623
825624
826625
827626
828627
829628
830629
831630
832631
833632
834633
835634
836635
837636
838637
839638
840639
841640
842641
843642
844643
845644
846645
847646
848647
849648
850649
851650
852651
853652
854653
855654
856655
857656
858657
859658
860659
861660
862661
863662
864663
865664
866665
867666
868667
869668
870669
871670
872671
873672
874673
875674
876675
877676
878677
879678
880679
881680
882681
883682
884683
885684
886685
887686
888687
889688
890689
891690
892691
893692
894693
895694
896695
897696
898697
899698
900699
901700
902701
903702
904703
905704
906705
907706
908707
909708
910709
911710
912711
913712
914713
915714
916715
917716
918717
919718
920719
921720
922721
923722
924723
925724
926725
927726
928727
929728
930729
931730
932731
933732
934733
935734
936735
937736
938737
939738
940739
941740
942741
943742
944743
945744
946745
947746
948747
949748
950749
951750
952751
953752
954753
955754
956755
957756
958757
959758
960759
961760
962761
963762
964763
965764
966765
967766
968767
969768
970769
971770
972771
973772
974773
975774
976775
977776
978777
979778
980779
981780
982781
983782
984783
985784
986785
987786
988787
989788
990789
991790
992791
993792
994793
995794
996795
997796
998797
999798
1000799
1001800
1002801
1003802
1004803
1005804
1006805
1007806
1008807
1009808
1010809
1011810
1012811
1013812
1014813
1015814
1016815
1017816
1018817
1019818
1020819
1021820
1022821
1023822
1024823
1025824
1026825
1027826
1028827
1029828
1030829
1031830
1032831
1033832
1034833
1035834
1036835
1037836
1038837
1039838
1040839
1041840
1042841
1043842
1044843
1045844
1046845
1047846
1048847
1049848
1050849
1051850
1052851
1053852
1054853
1055854
1056855
1057856
1058857
1059858
1060859
1061860
1062861
1063862
1064863
1065864
1066865
1067866
1068867</td><td class="line-coverage"><span class="cline-any cline-neutral"> </span>
1069<span class="cline-any cline-yes">1</span>
1070<span class="cline-any cline-neutral"> </span>
1071<span class="cline-any cline-yes">1</span>
1072<span class="cline-any cline-neutral"> </span>
1073<span class="cline-any cline-neutral"> </span>
1074<span class="cline-any cline-neutral"> </span>
1075<span class="cline-any cline-yes">1</span>
1076<span class="cline-any cline-neutral"> </span>
1077<span class="cline-any cline-neutral"> </span>
1078<span class="cline-any cline-yes">1</span>
1079<span class="cline-any cline-neutral"> </span>
1080<span class="cline-any cline-neutral"> </span>
1081<span class="cline-any cline-neutral"> </span>
1082<span class="cline-any cline-yes">1</span>
1083<span class="cline-any cline-neutral"> </span>
1084<span class="cline-any cline-yes">1</span>
1085<span class="cline-any cline-neutral"> </span>
1086<span class="cline-any cline-neutral"> </span>
1087<span class="cline-any cline-yes">1</span>
1088<span class="cline-any cline-yes">1</span>
1089<span class="cline-any cline-neutral"> </span>
1090<span class="cline-any cline-neutral"> </span>
1091<span class="cline-any cline-neutral"> </span>
1092<span class="cline-any cline-no"> </span>
1093<span class="cline-any cline-neutral"> </span>
1094<span class="cline-any cline-neutral"> </span>
1095<span class="cline-any cline-neutral"> </span>
1096<span class="cline-any cline-yes">1</span>
1097<span class="cline-any cline-yes">1</span>
1098<span class="cline-any cline-neutral"> </span>
1099<span class="cline-any cline-neutral"> </span>
1100<span class="cline-any cline-yes">1</span>
1101<span class="cline-any cline-neutral"> </span>
1102<span class="cline-any cline-neutral"> </span>
1103<span class="cline-any cline-neutral"> </span>
1104<span class="cline-any cline-neutral"> </span>
1105<span class="cline-any cline-neutral"> </span>
1106<span class="cline-any cline-neutral"> </span>
1107<span class="cline-any cline-neutral"> </span>
1108<span class="cline-any cline-neutral"> </span>
1109<span class="cline-any cline-yes">1</span>
1110<span class="cline-any cline-yes">3</span>
1111<span class="cline-any cline-neutral"> </span>
1112<span class="cline-any cline-no"> </span>
1113<span class="cline-any cline-neutral"> </span>
1114<span class="cline-any cline-neutral"> </span>
1115<span class="cline-any cline-yes">3</span>
1116<span class="cline-any cline-yes">3</span>
1117<span class="cline-any cline-neutral"> </span>
1118<span class="cline-any cline-neutral"> </span>
1119<span class="cline-any cline-no"> </span>
1120<span class="cline-any cline-yes">3</span>
1121<span class="cline-any cline-neutral"> </span>
1122<span class="cline-any cline-neutral"> </span>
1123<span class="cline-any cline-yes">1</span>
1124<span class="cline-any cline-neutral"> </span>
1125<span class="cline-any cline-yes">2</span>
1126<span class="cline-any cline-neutral"> </span>
1127<span class="cline-any cline-yes">2</span>
1128<span class="cline-any cline-yes">1</span>
1129<span class="cline-any cline-yes">1</span>
1130<span class="cline-any cline-neutral"> </span>
1131<span class="cline-any cline-yes">1</span>
1132<span class="cline-any cline-yes">4</span>
1133<span class="cline-any cline-neutral"> </span>
1134<span class="cline-any cline-yes">1</span>
1135<span class="cline-any cline-yes">1</span>
1136<span class="cline-any cline-neutral"> </span>
1137<span class="cline-any cline-neutral"> </span>
1138<span class="cline-any cline-neutral"> </span>
1139<span class="cline-any cline-neutral"> </span>
1140<span class="cline-any cline-neutral"> </span>
1141<span class="cline-any cline-neutral"> </span>
1142<span class="cline-any cline-neutral"> </span>
1143<span class="cline-any cline-neutral"> </span>
1144<span class="cline-any cline-neutral"> </span>
1145<span class="cline-any cline-neutral"> </span>
1146<span class="cline-any cline-neutral"> </span>
1147<span class="cline-any cline-neutral"> </span>
1148<span class="cline-any cline-neutral"> </span>
1149<span class="cline-any cline-neutral"> </span>
1150<span class="cline-any cline-neutral"> </span>
1151<span class="cline-any cline-neutral"> </span>
1152<span class="cline-any cline-neutral"> </span>
1153<span class="cline-any cline-neutral"> </span>
1154<span class="cline-any cline-neutral"> </span>
1155<span class="cline-any cline-neutral"> </span>
1156<span class="cline-any cline-neutral"> </span>
1157<span class="cline-any cline-neutral"> </span>
1158<span class="cline-any cline-neutral"> </span>
1159<span class="cline-any cline-neutral"> </span>
1160<span class="cline-any cline-neutral"> </span>
1161<span class="cline-any cline-neutral"> </span>
1162<span class="cline-any cline-neutral"> </span>
1163<span class="cline-any cline-neutral"> </span>
1164<span class="cline-any cline-neutral"> </span>
1165<span class="cline-any cline-neutral"> </span>
1166<span class="cline-any cline-neutral"> </span>
1167<span class="cline-any cline-neutral"> </span>
1168<span class="cline-any cline-neutral"> </span>
1169<span class="cline-any cline-neutral"> </span>
1170<span class="cline-any cline-neutral"> </span>
1171<span class="cline-any cline-neutral"> </span>
1172<span class="cline-any cline-neutral"> </span>
1173<span class="cline-any cline-neutral"> </span>
1174<span class="cline-any cline-neutral"> </span>
1175<span class="cline-any cline-neutral"> </span>
1176<span class="cline-any cline-neutral"> </span>
1177<span class="cline-any cline-neutral"> </span>
1178<span class="cline-any cline-neutral"> </span>
1179<span class="cline-any cline-neutral"> </span>
1180<span class="cline-any cline-neutral"> </span>
1181<span class="cline-any cline-neutral"> </span>
1182<span class="cline-any cline-neutral"> </span>
1183<span class="cline-any cline-neutral"> </span>
1184<span class="cline-any cline-neutral"> </span>
1185<span class="cline-any cline-neutral"> </span>
1186<span class="cline-any cline-neutral"> </span>
1187<span class="cline-any cline-neutral"> </span>
1188<span class="cline-any cline-neutral"> </span>
1189<span class="cline-any cline-no"> </span>
1190<span class="cline-any cline-neutral"> </span>
1191<span class="cline-any cline-neutral"> </span>
1192<span class="cline-any cline-yes">1</span>
1193<span class="cline-any cline-neutral"> </span>
1194<span class="cline-any cline-neutral"> </span>
1195<span class="cline-any cline-yes">2</span>
1196<span class="cline-any cline-yes">1</span>
1197<span class="cline-any cline-yes">1</span>
1198<span class="cline-any cline-yes">1</span>
1199<span class="cline-any cline-neutral"> </span>
1200<span class="cline-any cline-neutral"> </span>
1201<span class="cline-any cline-neutral"> </span>
1202<span class="cline-any cline-yes">1</span>
1203<span class="cline-any cline-neutral"> </span>
1204<span class="cline-any cline-yes">1</span>
1205<span class="cline-any cline-yes">1</span>
1206<span class="cline-any cline-yes">1</span>
1207<span class="cline-any cline-yes">1</span>
1208<span class="cline-any cline-neutral"> </span>
1209<span class="cline-any cline-yes">1</span>
1210<span class="cline-any cline-neutral"> </span>
1211<span class="cline-any cline-yes">1</span>
1212<span class="cline-any cline-yes">1</span>
1213<span class="cline-any cline-neutral"> </span>
1214<span class="cline-any cline-neutral"> </span>
1215<span class="cline-any cline-neutral"> </span>
1216<span class="cline-any cline-yes">1</span>
1217<span class="cline-any cline-neutral"> </span>
1218<span class="cline-any cline-neutral"> </span>
1219<span class="cline-any cline-yes">1</span>
1220<span class="cline-any cline-yes">1</span>
1221<span class="cline-any cline-neutral"> </span>
1222<span class="cline-any cline-neutral"> </span>
1223<span class="cline-any cline-neutral"> </span>
1224<span class="cline-any cline-yes">1</span>
1225<span class="cline-any cline-neutral"> </span>
1226<span class="cline-any cline-neutral"> </span>
1227<span class="cline-any cline-neutral"> </span>
1228<span class="cline-any cline-neutral"> </span>
1229<span class="cline-any cline-neutral"> </span>
1230<span class="cline-any cline-no"> </span>
1231<span class="cline-any cline-neutral"> </span>
1232<span class="cline-any cline-neutral"> </span>
1233<span class="cline-any cline-yes">1</span>
1234<span class="cline-any cline-neutral"> </span>
1235<span class="cline-any cline-neutral"> </span>
1236<span class="cline-any cline-yes">3</span>
1237<span class="cline-any cline-neutral"> </span>
1238<span class="cline-any cline-yes">1</span>
1239<span class="cline-any cline-yes">1</span>
1240<span class="cline-any cline-yes">1</span>
1241<span class="cline-any cline-yes">1</span>
1242<span class="cline-any cline-neutral"> </span>
1243<span class="cline-any cline-yes">1</span>
1244<span class="cline-any cline-neutral"> </span>
1245<span class="cline-any cline-no"> </span>
1246<span class="cline-any cline-no"> </span>
1247<span class="cline-any cline-no"> </span>
1248<span class="cline-any cline-no"> </span>
1249<span class="cline-any cline-no"> </span>
1250<span class="cline-any cline-no"> </span>
1251<span class="cline-any cline-neutral"> </span>
1252<span class="cline-any cline-neutral"> </span>
1253<span class="cline-any cline-no"> </span>
1254<span class="cline-any cline-neutral"> </span>
1255<span class="cline-any cline-neutral"> </span>
1256<span class="cline-any cline-no"> </span>
1257<span class="cline-any cline-no"> </span>
1258<span class="cline-any cline-neutral"> </span>
1259<span class="cline-any cline-neutral"> </span>
1260<span class="cline-any cline-no"> </span>
1261<span class="cline-any cline-neutral"> </span>
1262<span class="cline-any cline-neutral"> </span>
1263<span class="cline-any cline-no"> </span>
1264<span class="cline-any cline-no"> </span>
1265<span class="cline-any cline-neutral"> </span>
1266<span class="cline-any cline-neutral"> </span>
1267<span class="cline-any cline-neutral"> </span>
1268<span class="cline-any cline-neutral"> </span>
1269<span class="cline-any cline-neutral"> </span>
1270<span class="cline-any cline-no"> </span>
1271<span class="cline-any cline-no"> </span>
1272<span class="cline-any cline-no"> </span>
1273<span class="cline-any cline-no"> </span>
1274<span class="cline-any cline-neutral"> </span>
1275<span class="cline-any cline-neutral"> </span>
1276<span class="cline-any cline-neutral"> </span>
1277<span class="cline-any cline-neutral"> </span>
1278<span class="cline-any cline-neutral"> </span>
1279<span class="cline-any cline-neutral"> </span>
1280<span class="cline-any cline-no"> </span>
1281<span class="cline-any cline-neutral"> </span>
1282<span class="cline-any cline-neutral"> </span>
1283<span class="cline-any cline-neutral"> </span>
1284<span class="cline-any cline-no"> </span>
1285<span class="cline-any cline-neutral"> </span>
1286<span class="cline-any cline-no"> </span>
1287<span class="cline-any cline-no"> </span>
1288<span class="cline-any cline-neutral"> </span>
1289<span class="cline-any cline-neutral"> </span>
1290<span class="cline-any cline-neutral"> </span>
1291<span class="cline-any cline-no"> </span>
1292<span class="cline-any cline-neutral"> </span>
1293<span class="cline-any cline-neutral"> </span>
1294<span class="cline-any cline-no"> </span>
1295<span class="cline-any cline-no"> </span>
1296<span class="cline-any cline-no"> </span>
1297<span class="cline-any cline-neutral"> </span>
1298<span class="cline-any cline-neutral"> </span>
1299<span class="cline-any cline-no"> </span>
1300<span class="cline-any cline-no"> </span>
1301<span class="cline-any cline-neutral"> </span>
1302<span class="cline-any cline-neutral"> </span>
1303<span class="cline-any cline-neutral"> </span>
1304<span class="cline-any cline-neutral"> </span>
1305<span class="cline-any cline-no"> </span>
1306<span class="cline-any cline-neutral"> </span>
1307<span class="cline-any cline-neutral"> </span>
1308<span class="cline-any cline-neutral"> </span>
1309<span class="cline-any cline-neutral"> </span>
1310<span class="cline-any cline-neutral"> </span>
1311<span class="cline-any cline-neutral"> </span>
1312<span class="cline-any cline-neutral"> </span>
1313<span class="cline-any cline-neutral"> </span>
1314<span class="cline-any cline-no"> </span>
1315<span class="cline-any cline-no"> </span>
1316<span class="cline-any cline-no"> </span>
1317<span class="cline-any cline-neutral"> </span>
1318<span class="cline-any cline-neutral"> </span>
1319<span class="cline-any cline-neutral"> </span>
1320<span class="cline-any cline-neutral"> </span>
1321<span class="cline-any cline-no"> </span>
1322<span class="cline-any cline-no"> </span>
1323<span class="cline-any cline-neutral"> </span>
1324<span class="cline-any cline-neutral"> </span>
1325<span class="cline-any cline-neutral"> </span>
1326<span class="cline-any cline-neutral"> </span>
1327<span class="cline-any cline-no"> </span>
1328<span class="cline-any cline-no"> </span>
1329<span class="cline-any cline-neutral"> </span>
1330<span class="cline-any cline-neutral"> </span>
1331<span class="cline-any cline-neutral"> </span>
1332<span class="cline-any cline-no"> </span>
1333<span class="cline-any cline-no"> </span>
1334<span class="cline-any cline-neutral"> </span>
1335<span class="cline-any cline-no"> </span>
1336<span class="cline-any cline-no"> </span>
1337<span class="cline-any cline-neutral"> </span>
1338<span class="cline-any cline-neutral"> </span>
1339<span class="cline-any cline-no"> </span>
1340<span class="cline-any cline-neutral"> </span>
1341<span class="cline-any cline-neutral"> </span>
1342<span class="cline-any cline-no"> </span>
1343<span class="cline-any cline-neutral"> </span>
1344<span class="cline-any cline-no"> </span>
1345<span class="cline-any cline-neutral"> </span>
1346<span class="cline-any cline-neutral"> </span>
1347<span class="cline-any cline-no"> </span>
1348<span class="cline-any cline-no"> </span>
1349<span class="cline-any cline-no"> </span>
1350<span class="cline-any cline-no"> </span>
1351<span class="cline-any cline-neutral"> </span>
1352<span class="cline-any cline-neutral"> </span>
1353<span class="cline-any cline-no"> </span>
1354<span class="cline-any cline-no"> </span>
1355<span class="cline-any cline-neutral"> </span>
1356<span class="cline-any cline-neutral"> </span>
1357<span class="cline-any cline-neutral"> </span>
1358<span class="cline-any cline-no"> </span>
1359<span class="cline-any cline-neutral"> </span>
1360<span class="cline-any cline-no"> </span>
1361<span class="cline-any cline-neutral"> </span>
1362<span class="cline-any cline-no"> </span>
1363<span class="cline-any cline-neutral"> </span>
1364<span class="cline-any cline-no"> </span>
1365<span class="cline-any cline-no"> </span>
1366<span class="cline-any cline-neutral"> </span>
1367<span class="cline-any cline-neutral"> </span>
1368<span class="cline-any cline-neutral"> </span>
1369<span class="cline-any cline-no"> </span>
1370<span class="cline-any cline-no"> </span>
1371<span class="cline-any cline-neutral"> </span>
1372<span class="cline-any cline-neutral"> </span>
1373<span class="cline-any cline-neutral"> </span>
1374<span class="cline-any cline-neutral"> </span>
1375<span class="cline-any cline-neutral"> </span>
1376<span class="cline-any cline-no"> </span>
1377<span class="cline-any cline-no"> </span>
1378<span class="cline-any cline-no"> </span>
1379<span class="cline-any cline-no"> </span>
1380<span class="cline-any cline-no"> </span>
1381<span class="cline-any cline-neutral"> </span>
1382<span class="cline-any cline-neutral"> </span>
1383<span class="cline-any cline-neutral"> </span>
1384<span class="cline-any cline-neutral"> </span>
1385<span class="cline-any cline-no"> </span>
1386<span class="cline-any cline-no"> </span>
1387<span class="cline-any cline-neutral"> </span>
1388<span class="cline-any cline-neutral"> </span>
1389<span class="cline-any cline-neutral"> </span>
1390<span class="cline-any cline-no"> </span>
1391<span class="cline-any cline-neutral"> </span>
1392<span class="cline-any cline-neutral"> </span>
1393<span class="cline-any cline-neutral"> </span>
1394<span class="cline-any cline-neutral"> </span>
1395<span class="cline-any cline-neutral"> </span>
1396<span class="cline-any cline-neutral"> </span>
1397<span class="cline-any cline-neutral"> </span>
1398<span class="cline-any cline-neutral"> </span>
1399<span class="cline-any cline-no"> </span>
1400<span class="cline-any cline-neutral"> </span>
1401<span class="cline-any cline-no"> </span>
1402<span class="cline-any cline-neutral"> </span>
1403<span class="cline-any cline-neutral"> </span>
1404<span class="cline-any cline-neutral"> </span>
1405<span class="cline-any cline-neutral"> </span>
1406<span class="cline-any cline-neutral"> </span>
1407<span class="cline-any cline-neutral"> </span>
1408<span class="cline-any cline-neutral"> </span>
1409<span class="cline-any cline-neutral"> </span>
1410<span class="cline-any cline-neutral"> </span>
1411<span class="cline-any cline-neutral"> </span>
1412<span class="cline-any cline-neutral"> </span>
1413<span class="cline-any cline-no"> </span>
1414<span class="cline-any cline-no"> </span>
1415<span class="cline-any cline-neutral"> </span>
1416<span class="cline-any cline-neutral"> </span>
1417<span class="cline-any cline-no"> </span>
1418<span class="cline-any cline-neutral"> </span>
1419<span class="cline-any cline-neutral"> </span>
1420<span class="cline-any cline-neutral"> </span>
1421<span class="cline-any cline-neutral"> </span>
1422<span class="cline-any cline-neutral"> </span>
1423<span class="cline-any cline-neutral"> </span>
1424<span class="cline-any cline-no"> </span>
1425<span class="cline-any cline-no"> </span>
1426<span class="cline-any cline-no"> </span>
1427<span class="cline-any cline-no"> </span>
1428<span class="cline-any cline-no"> </span>
1429<span class="cline-any cline-neutral"> </span>
1430<span class="cline-any cline-no"> </span>
1431<span class="cline-any cline-no"> </span>
1432<span class="cline-any cline-neutral"> </span>
1433<span class="cline-any cline-neutral"> </span>
1434<span class="cline-any cline-no"> </span>
1435<span class="cline-any cline-neutral"> </span>
1436<span class="cline-any cline-no"> </span>
1437<span class="cline-any cline-no"> </span>
1438<span class="cline-any cline-neutral"> </span>
1439<span class="cline-any cline-no"> </span>
1440<span class="cline-any cline-no"> </span>
1441<span class="cline-any cline-no"> </span>
1442<span class="cline-any cline-neutral"> </span>
1443<span class="cline-any cline-no"> </span>
1444<span class="cline-any cline-neutral"> </span>
1445<span class="cline-any cline-neutral"> </span>
1446<span class="cline-any cline-no"> </span>
1447<span class="cline-any cline-neutral"> </span>
1448<span class="cline-any cline-neutral"> </span>
1449<span class="cline-any cline-neutral"> </span>
1450<span class="cline-any cline-neutral"> </span>
1451<span class="cline-any cline-no"> </span>
1452<span class="cline-any cline-no"> </span>
1453<span class="cline-any cline-no"> </span>
1454<span class="cline-any cline-neutral"> </span>
1455<span class="cline-any cline-no"> </span>
1456<span class="cline-any cline-neutral"> </span>
1457<span class="cline-any cline-no"> </span>
1458<span class="cline-any cline-no"> </span>
1459<span class="cline-any cline-no"> </span>
1460<span class="cline-any cline-no"> </span>
1461<span class="cline-any cline-neutral"> </span>
1462<span class="cline-any cline-neutral"> </span>
1463<span class="cline-any cline-neutral"> </span>
1464<span class="cline-any cline-no"> </span>
1465<span class="cline-any cline-neutral"> </span>
1466<span class="cline-any cline-neutral"> </span>
1467<span class="cline-any cline-neutral"> </span>
1468<span class="cline-any cline-no"> </span>
1469<span class="cline-any cline-no"> </span>
1470<span class="cline-any cline-no"> </span>
1471<span class="cline-any cline-no"> </span>
1472<span class="cline-any cline-neutral"> </span>
1473<span class="cline-any cline-neutral"> </span>
1474<span class="cline-any cline-neutral"> </span>
1475<span class="cline-any cline-neutral"> </span>
1476<span class="cline-any cline-no"> </span>
1477<span class="cline-any cline-neutral"> </span>
1478<span class="cline-any cline-neutral"> </span>
1479<span class="cline-any cline-no"> </span>
1480<span class="cline-any cline-no"> </span>
1481<span class="cline-any cline-no"> </span>
1482<span class="cline-any cline-no"> </span>
1483<span class="cline-any cline-neutral"> </span>
1484<span class="cline-any cline-no"> </span>
1485<span class="cline-any cline-no"> </span>
1486<span class="cline-any cline-no"> </span>
1487<span class="cline-any cline-no"> </span>
1488<span class="cline-any cline-no"> </span>
1489<span class="cline-any cline-no"> </span>
1490<span class="cline-any cline-no"> </span>
1491<span class="cline-any cline-neutral"> </span>
1492<span class="cline-any cline-neutral"> </span>
1493<span class="cline-any cline-no"> </span>
1494<span class="cline-any cline-neutral"> </span>
1495<span class="cline-any cline-neutral"> </span>
1496<span class="cline-any cline-neutral"> </span>
1497<span class="cline-any cline-neutral"> </span>
1498<span class="cline-any cline-neutral"> </span>
1499<span class="cline-any cline-neutral"> </span>
1500<span class="cline-any cline-neutral"> </span>
1501<span class="cline-any cline-no"> </span>
1502<span class="cline-any cline-neutral"> </span>
1503<span class="cline-any cline-no"> </span>
1504<span class="cline-any cline-neutral"> </span>
1505<span class="cline-any cline-neutral"> </span>
1506<span class="cline-any cline-neutral"> </span>
1507<span class="cline-any cline-neutral"> </span>
1508<span class="cline-any cline-no"> </span>
1509<span class="cline-any cline-neutral"> </span>
1510<span class="cline-any cline-neutral"> </span>
1511<span class="cline-any cline-no"> </span>
1512<span class="cline-any cline-neutral"> </span>
1513<span class="cline-any cline-neutral"> </span>
1514<span class="cline-any cline-no"> </span>
1515<span class="cline-any cline-neutral"> </span>
1516<span class="cline-any cline-no"> </span>
1517<span class="cline-any cline-no"> </span>
1518<span class="cline-any cline-neutral"> </span>
1519<span class="cline-any cline-no"> </span>
1520<span class="cline-any cline-no"> </span>
1521<span class="cline-any cline-neutral"> </span>
1522<span class="cline-any cline-no"> </span>
1523<span class="cline-any cline-no"> </span>
1524<span class="cline-any cline-neutral"> </span>
1525<span class="cline-any cline-neutral"> </span>
1526<span class="cline-any cline-no"> </span>
1527<span class="cline-any cline-no"> </span>
1528<span class="cline-any cline-neutral"> </span>
1529<span class="cline-any cline-no"> </span>
1530<span class="cline-any cline-neutral"> </span>
1531<span class="cline-any cline-neutral"> </span>
1532<span class="cline-any cline-no"> </span>
1533<span class="cline-any cline-neutral"> </span>
1534<span class="cline-any cline-neutral"> </span>
1535<span class="cline-any cline-no"> </span>
1536<span class="cline-any cline-no"> </span>
1537<span class="cline-any cline-neutral"> </span>
1538<span class="cline-any cline-no"> </span>
1539<span class="cline-any cline-neutral"> </span>
1540<span class="cline-any cline-neutral"> </span>
1541<span class="cline-any cline-neutral"> </span>
1542<span class="cline-any cline-no"> </span>
1543<span class="cline-any cline-no"> </span>
1544<span class="cline-any cline-neutral"> </span>
1545<span class="cline-any cline-no"> </span>
1546<span class="cline-any cline-no"> </span>
1547<span class="cline-any cline-no"> </span>
1548<span class="cline-any cline-neutral"> </span>
1549<span class="cline-any cline-no"> </span>
1550<span class="cline-any cline-no"> </span>
1551<span class="cline-any cline-no"> </span>
1552<span class="cline-any cline-neutral"> </span>
1553<span class="cline-any cline-no"> </span>
1554<span class="cline-any cline-neutral"> </span>
1555<span class="cline-any cline-neutral"> </span>
1556<span class="cline-any cline-neutral"> </span>
1557<span class="cline-any cline-neutral"> </span>
1558<span class="cline-any cline-no"> </span>
1559<span class="cline-any cline-no"> </span>
1560<span class="cline-any cline-no"> </span>
1561<span class="cline-any cline-neutral"> </span>
1562<span class="cline-any cline-neutral"> </span>
1563<span class="cline-any cline-neutral"> </span>
1564<span class="cline-any cline-neutral"> </span>
1565<span class="cline-any cline-neutral"> </span>
1566<span class="cline-any cline-neutral"> </span>
1567<span class="cline-any cline-no"> </span>
1568<span class="cline-any cline-neutral"> </span>
1569<span class="cline-any cline-no"> </span>
1570<span class="cline-any cline-neutral"> </span>
1571<span class="cline-any cline-no"> </span>
1572<span class="cline-any cline-neutral"> </span>
1573<span class="cline-any cline-neutral"> </span>
1574<span class="cline-any cline-no"> </span>
1575<span class="cline-any cline-no"> </span>
1576<span class="cline-any cline-neutral"> </span>
1577<span class="cline-any cline-neutral"> </span>
1578<span class="cline-any cline-neutral"> </span>
1579<span class="cline-any cline-neutral"> </span>
1580<span class="cline-any cline-no"> </span>
1581<span class="cline-any cline-no"> </span>
1582<span class="cline-any cline-no"> </span>
1583<span class="cline-any cline-no"> </span>
1584<span class="cline-any cline-no"> </span>
1585<span class="cline-any cline-no"> </span>
1586<span class="cline-any cline-neutral"> </span>
1587<span class="cline-any cline-no"> </span>
1588<span class="cline-any cline-no"> </span>
1589<span class="cline-any cline-neutral"> </span>
1590<span class="cline-any cline-neutral"> </span>
1591<span class="cline-any cline-no"> </span>
1592<span class="cline-any cline-no"> </span>
1593<span class="cline-any cline-neutral"> </span>
1594<span class="cline-any cline-neutral"> </span>
1595<span class="cline-any cline-no"> </span>
1596<span class="cline-any cline-no"> </span>
1597<span class="cline-any cline-neutral"> </span>
1598<span class="cline-any cline-no"> </span>
1599<span class="cline-any cline-no"> </span>
1600<span class="cline-any cline-neutral"> </span>
1601<span class="cline-any cline-neutral"> </span>
1602<span class="cline-any cline-neutral"> </span>
1603<span class="cline-any cline-neutral"> </span>
1604<span class="cline-any cline-neutral"> </span>
1605<span class="cline-any cline-no"> </span>
1606<span class="cline-any cline-neutral"> </span>
1607<span class="cline-any cline-neutral"> </span>
1608<span class="cline-any cline-neutral"> </span>
1609<span class="cline-any cline-neutral"> </span>
1610<span class="cline-any cline-no"> </span>
1611<span class="cline-any cline-no"> </span>
1612<span class="cline-any cline-neutral"> </span>
1613<span class="cline-any cline-neutral"> </span>
1614<span class="cline-any cline-neutral"> </span>
1615<span class="cline-any cline-no"> </span>
1616<span class="cline-any cline-neutral"> </span>
1617<span class="cline-any cline-neutral"> </span>
1618<span class="cline-any cline-neutral"> </span>
1619<span class="cline-any cline-neutral"> </span>
1620<span class="cline-any cline-neutral"> </span>
1621<span class="cline-any cline-neutral"> </span>
1622<span class="cline-any cline-neutral"> </span>
1623<span class="cline-any cline-neutral"> </span>
1624<span class="cline-any cline-neutral"> </span>
1625<span class="cline-any cline-neutral"> </span>
1626<span class="cline-any cline-neutral"> </span>
1627<span class="cline-any cline-no"> </span>
1628<span class="cline-any cline-neutral"> </span>
1629<span class="cline-any cline-neutral"> </span>
1630<span class="cline-any cline-no"> </span>
1631<span class="cline-any cline-no"> </span>
1632<span class="cline-any cline-no"> </span>
1633<span class="cline-any cline-neutral"> </span>
1634<span class="cline-any cline-neutral"> </span>
1635<span class="cline-any cline-neutral"> </span>
1636<span class="cline-any cline-neutral"> </span>
1637<span class="cline-any cline-neutral"> </span>
1638<span class="cline-any cline-no"> </span>
1639<span class="cline-any cline-no"> </span>
1640<span class="cline-any cline-no"> </span>
1641<span class="cline-any cline-no"> </span>
1642<span class="cline-any cline-no"> </span>
1643<span class="cline-any cline-neutral"> </span>
1644<span class="cline-any cline-neutral"> </span>
1645<span class="cline-any cline-neutral"> </span>
1646<span class="cline-any cline-no"> </span>
1647<span class="cline-any cline-no"> </span>
1648<span class="cline-any cline-neutral"> </span>
1649<span class="cline-any cline-neutral"> </span>
1650<span class="cline-any cline-neutral"> </span>
1651<span class="cline-any cline-no"> </span>
1652<span class="cline-any cline-no"> </span>
1653<span class="cline-any cline-no"> </span>
1654<span class="cline-any cline-neutral"> </span>
1655<span class="cline-any cline-neutral"> </span>
1656<span class="cline-any cline-neutral"> </span>
1657<span class="cline-any cline-neutral"> </span>
1658<span class="cline-any cline-neutral"> </span>
1659<span class="cline-any cline-no"> </span>
1660<span class="cline-any cline-no"> </span>
1661<span class="cline-any cline-no"> </span>
1662<span class="cline-any cline-neutral"> </span>
1663<span class="cline-any cline-neutral"> </span>
1664<span class="cline-any cline-no"> </span>
1665<span class="cline-any cline-no"> </span>
1666<span class="cline-any cline-neutral"> </span>
1667<span class="cline-any cline-neutral"> </span>
1668<span class="cline-any cline-neutral"> </span>
1669<span class="cline-any cline-no"> </span>
1670<span class="cline-any cline-no"> </span>
1671<span class="cline-any cline-neutral"> </span>
1672<span class="cline-any cline-neutral"> </span>
1673<span class="cline-any cline-no"> </span>
1674<span class="cline-any cline-no"> </span>
1675<span class="cline-any cline-no"> </span>
1676<span class="cline-any cline-neutral"> </span>
1677<span class="cline-any cline-neutral"> </span>
1678<span class="cline-any cline-neutral"> </span>
1679<span class="cline-any cline-neutral"> </span>
1680<span class="cline-any cline-no"> </span>
1681<span class="cline-any cline-no"> </span>
1682<span class="cline-any cline-no"> </span>
1683<span class="cline-any cline-neutral"> </span>
1684<span class="cline-any cline-neutral"> </span>
1685<span class="cline-any cline-no"> </span>
1686<span class="cline-any cline-neutral"> </span>
1687<span class="cline-any cline-no"> </span>
1688<span class="cline-any cline-neutral"> </span>
1689<span class="cline-any cline-neutral"> </span>
1690<span class="cline-any cline-neutral"> </span>
1691<span class="cline-any cline-no"> </span>
1692<span class="cline-any cline-no"> </span>
1693<span class="cline-any cline-neutral"> </span>
1694<span class="cline-any cline-neutral"> </span>
1695<span class="cline-any cline-no"> </span>
1696<span class="cline-any cline-neutral"> </span>
1697<span class="cline-any cline-neutral"> </span>
1698<span class="cline-any cline-no"> </span>
1699<span class="cline-any cline-neutral"> </span>
1700<span class="cline-any cline-neutral"> </span>
1701<span class="cline-any cline-no"> </span>
1702<span class="cline-any cline-neutral"> </span>
1703<span class="cline-any cline-no"> </span>
1704<span class="cline-any cline-no"> </span>
1705<span class="cline-any cline-neutral"> </span>
1706<span class="cline-any cline-no"> </span>
1707<span class="cline-any cline-no"> </span>
1708<span class="cline-any cline-neutral"> </span>
1709<span class="cline-any cline-neutral"> </span>
1710<span class="cline-any cline-no"> </span>
1711<span class="cline-any cline-neutral"> </span>
1712<span class="cline-any cline-neutral"> </span>
1713<span class="cline-any cline-no"> </span>
1714<span class="cline-any cline-neutral"> </span>
1715<span class="cline-any cline-no"> </span>
1716<span class="cline-any cline-no"> </span>
1717<span class="cline-any cline-neutral"> </span>
1718<span class="cline-any cline-neutral"> </span>
1719<span class="cline-any cline-no"> </span>
1720<span class="cline-any cline-neutral"> </span>
1721<span class="cline-any cline-neutral"> </span>
1722<span class="cline-any cline-no"> </span>
1723<span class="cline-any cline-neutral"> </span>
1724<span class="cline-any cline-no"> </span>
1725<span class="cline-any cline-no"> </span>
1726<span class="cline-any cline-no"> </span>
1727<span class="cline-any cline-neutral"> </span>
1728<span class="cline-any cline-neutral"> </span>
1729<span class="cline-any cline-no"> </span>
1730<span class="cline-any cline-neutral"> </span>
1731<span class="cline-any cline-no"> </span>
1732<span class="cline-any cline-neutral"> </span>
1733<span class="cline-any cline-no"> </span>
1734<span class="cline-any cline-neutral"> </span>
1735<span class="cline-any cline-no"> </span>
1736<span class="cline-any cline-neutral"> </span>
1737<span class="cline-any cline-no"> </span>
1738<span class="cline-any cline-neutral"> </span>
1739<span class="cline-any cline-neutral"> </span>
1740<span class="cline-any cline-no"> </span>
1741<span class="cline-any cline-no"> </span>
1742<span class="cline-any cline-neutral"> </span>
1743<span class="cline-any cline-no"> </span>
1744<span class="cline-any cline-no"> </span>
1745<span class="cline-any cline-neutral"> </span>
1746<span class="cline-any cline-no"> </span>
1747<span class="cline-any cline-neutral"> </span>
1748<span class="cline-any cline-no"> </span>
1749<span class="cline-any cline-neutral"> </span>
1750<span class="cline-any cline-neutral"> </span>
1751<span class="cline-any cline-neutral"> </span>
1752<span class="cline-any cline-no"> </span>
1753<span class="cline-any cline-no"> </span>
1754<span class="cline-any cline-no"> </span>
1755<span class="cline-any cline-neutral"> </span>
1756<span class="cline-any cline-neutral"> </span>
1757<span class="cline-any cline-no"> </span>
1758<span class="cline-any cline-no"> </span>
1759<span class="cline-any cline-neutral"> </span>
1760<span class="cline-any cline-neutral"> </span>
1761<span class="cline-any cline-no"> </span>
1762<span class="cline-any cline-no"> </span>
1763<span class="cline-any cline-neutral"> </span>
1764<span class="cline-any cline-no"> </span>
1765<span class="cline-any cline-neutral"> </span>
1766<span class="cline-any cline-no"> </span>
1767<span class="cline-any cline-neutral"> </span>
1768<span class="cline-any cline-neutral"> </span>
1769<span class="cline-any cline-no"> </span>
1770<span class="cline-any cline-neutral"> </span>
1771<span class="cline-any cline-neutral"> </span>
1772<span class="cline-any cline-no"> </span>
1773<span class="cline-any cline-no"> </span>
1774<span class="cline-any cline-neutral"> </span>
1775<span class="cline-any cline-neutral"> </span>
1776<span class="cline-any cline-no"> </span>
1777<span class="cline-any cline-no"> </span>
1778<span class="cline-any cline-no"> </span>
1779<span class="cline-any cline-no"> </span>
1780<span class="cline-any cline-no"> </span>
1781<span class="cline-any cline-no"> </span>
1782<span class="cline-any cline-no"> </span>
1783<span class="cline-any cline-no"> </span>
1784<span class="cline-any cline-no"> </span>
1785<span class="cline-any cline-neutral"> </span>
1786<span class="cline-any cline-neutral"> </span>
1787<span class="cline-any cline-no"> </span>
1788<span class="cline-any cline-neutral"> </span>
1789<span class="cline-any cline-neutral"> </span>
1790<span class="cline-any cline-neutral"> </span>
1791<span class="cline-any cline-neutral"> </span>
1792<span class="cline-any cline-no"> </span>
1793<span class="cline-any cline-neutral"> </span>
1794<span class="cline-any cline-neutral"> </span>
1795<span class="cline-any cline-neutral"> </span>
1796<span class="cline-any cline-no"> </span>
1797<span class="cline-any cline-no"> </span>
1798<span class="cline-any cline-no"> </span>
1799<span class="cline-any cline-neutral"> </span>
1800<span class="cline-any cline-no"> </span>
1801<span class="cline-any cline-neutral"> </span>
1802<span class="cline-any cline-no"> </span>
1803<span class="cline-any cline-no"> </span>
1804<span class="cline-any cline-neutral"> </span>
1805<span class="cline-any cline-no"> </span>
1806<span class="cline-any cline-neutral"> </span>
1807<span class="cline-any cline-neutral"> </span>
1808<span class="cline-any cline-no"> </span>
1809<span class="cline-any cline-neutral"> </span>
1810<span class="cline-any cline-no"> </span>
1811<span class="cline-any cline-no"> </span>
1812<span class="cline-any cline-no"> </span>
1813<span class="cline-any cline-neutral"> </span>
1814<span class="cline-any cline-no"> </span>
1815<span class="cline-any cline-no"> </span>
1816<span class="cline-any cline-neutral"> </span>
1817<span class="cline-any cline-neutral"> </span>
1818<span class="cline-any cline-neutral"> </span>
1819<span class="cline-any cline-neutral"> </span>
1820<span class="cline-any cline-no"> </span>
1821<span class="cline-any cline-no"> </span>
1822<span class="cline-any cline-no"> </span>
1823<span class="cline-any cline-no"> </span>
1824<span class="cline-any cline-neutral"> </span>
1825<span class="cline-any cline-no"> </span>
1826<span class="cline-any cline-neutral"> </span>
1827<span class="cline-any cline-neutral"> </span>
1828<span class="cline-any cline-neutral"> </span>
1829<span class="cline-any cline-no"> </span>
1830<span class="cline-any cline-neutral"> </span>
1831<span class="cline-any cline-neutral"> </span>
1832<span class="cline-any cline-neutral"> </span>
1833<span class="cline-any cline-no"> </span>
1834<span class="cline-any cline-no"> </span>
1835<span class="cline-any cline-neutral"> </span>
1836<span class="cline-any cline-no"> </span>
1837<span class="cline-any cline-neutral"> </span>
1838<span class="cline-any cline-no"> </span>
1839<span class="cline-any cline-no"> </span>
1840<span class="cline-any cline-neutral"> </span>
1841<span class="cline-any cline-no"> </span>
1842<span class="cline-any cline-no"> </span>
1843<span class="cline-any cline-no"> </span>
1844<span class="cline-any cline-neutral"> </span>
1845<span class="cline-any cline-no"> </span>
1846<span class="cline-any cline-no"> </span>
1847<span class="cline-any cline-neutral"> </span>
1848<span class="cline-any cline-neutral"> </span>
1849<span class="cline-any cline-neutral"> </span>
1850<span class="cline-any cline-no"> </span>
1851<span class="cline-any cline-no"> </span>
1852<span class="cline-any cline-no"> </span>
1853<span class="cline-any cline-no"> </span>
1854<span class="cline-any cline-neutral"> </span>
1855<span class="cline-any cline-no"> </span>
1856<span class="cline-any cline-neutral"> </span>
1857<span class="cline-any cline-neutral"> </span>
1858<span class="cline-any cline-neutral"> </span>
1859<span class="cline-any cline-no"> </span>
1860<span class="cline-any cline-neutral"> </span>
1861<span class="cline-any cline-neutral"> </span>
1862<span class="cline-any cline-neutral"> </span>
1863<span class="cline-any cline-neutral"> </span>
1864<span class="cline-any cline-neutral"> </span>
1865<span class="cline-any cline-no"> </span>
1866<span class="cline-any cline-no"> </span>
1867<span class="cline-any cline-neutral"> </span>
1868<span class="cline-any cline-no"> </span>
1869<span class="cline-any cline-neutral"> </span>
1870<span class="cline-any cline-no"> </span>
1871<span class="cline-any cline-neutral"> </span>
1872<span class="cline-any cline-neutral"> </span>
1873<span class="cline-any cline-no"> </span>
1874<span class="cline-any cline-neutral"> </span>
1875<span class="cline-any cline-no"> </span>
1876<span class="cline-any cline-neutral"> </span>
1877<span class="cline-any cline-neutral"> </span>
1878<span class="cline-any cline-neutral"> </span>
1879<span class="cline-any cline-no"> </span>
1880<span class="cline-any cline-no"> </span>
1881<span class="cline-any cline-no"> </span>
1882<span class="cline-any cline-no"> </span>
1883<span class="cline-any cline-neutral"> </span>
1884<span class="cline-any cline-no"> </span>
1885<span class="cline-any cline-neutral"> </span>
1886<span class="cline-any cline-neutral"> </span>
1887<span class="cline-any cline-neutral"> </span>
1888<span class="cline-any cline-neutral"> </span>
1889<span class="cline-any cline-neutral"> </span>
1890<span class="cline-any cline-neutral"> </span>
1891<span class="cline-any cline-no"> </span>
1892<span class="cline-any cline-no"> </span>
1893<span class="cline-any cline-no"> </span>
1894<span class="cline-any cline-neutral"> </span>
1895<span class="cline-any cline-neutral"> </span>
1896<span class="cline-any cline-neutral"> </span>
1897<span class="cline-any cline-no"> </span>
1898<span class="cline-any cline-no"> </span>
1899<span class="cline-any cline-no"> </span>
1900<span class="cline-any cline-neutral"> </span>
1901<span class="cline-any cline-neutral"> </span>
1902<span class="cline-any cline-no"> </span>
1903<span class="cline-any cline-no"> </span>
1904<span class="cline-any cline-neutral"> </span>
1905<span class="cline-any cline-neutral"> </span>
1906<span class="cline-any cline-neutral"> </span>
1907<span class="cline-any cline-no"> </span>
1908<span class="cline-any cline-neutral"> </span>
1909<span class="cline-any cline-neutral"> </span>
1910<span class="cline-any cline-neutral"> </span>
1911<span class="cline-any cline-no"> </span>
1912<span class="cline-any cline-no"> </span>
1913<span class="cline-any cline-no"> </span>
1914<span class="cline-any cline-no"> </span>
1915<span class="cline-any cline-no"> </span>
1916<span class="cline-any cline-neutral"> </span>
1917<span class="cline-any cline-no"> </span>
1918<span class="cline-any cline-no"> </span>
1919<span class="cline-any cline-neutral"> </span>
1920<span class="cline-any cline-neutral"> </span>
1921<span class="cline-any cline-no"> </span>
1922<span class="cline-any cline-no"> </span>
1923<span class="cline-any cline-neutral"> </span>
1924<span class="cline-any cline-neutral"> </span>
1925<span class="cline-any cline-neutral"> </span>
1926<span class="cline-any cline-neutral"> </span>
1927<span class="cline-any cline-neutral"> </span>
1928<span class="cline-any cline-yes">1</span>
1929<span class="cline-any cline-no"> </span>
1930<span class="cline-any cline-no"> </span>
1931<span class="cline-any cline-neutral"> </span>
1932<span class="cline-any cline-neutral"> </span>
1933<span class="cline-any cline-neutral"> </span>
1934<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*! JSON v3.2.5 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */
1935;(function (window) {
1936 // Convenience aliases.
1937 var getClass = {}.toString, isProperty, forEach, undef;
1938
1939 // Detect the `define` function exposed by asynchronous module loaders. The
1940 // strict `define` check is necessary for compatibility with `r.js`.
1941 var isLoader = typeof define === "function" && <span class="branch-1 cbranch-no" title="branch not covered" >define.amd;</span>
1942
1943 // Detect native implementations.
1944 var nativeJSON = typeof JSON == "object" && JSON;
1945
1946 // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if
1947 // available.
1948 var JSON3 = typeof exports == "object" && exports && !exports.nodeType && exports;
1949
1950 <span class="missing-if-branch" title="else path not taken"" >E</span>if (JSON3 && nativeJSON) {
1951 // Explicitly delegate to the native `stringify` and `parse`
1952 // implementations in CommonJS environments.
1953 JSON3.stringify = nativeJSON.stringify;
1954 JSON3.parse = nativeJSON.parse;
1955 } else {
1956 // Export for web browsers, JavaScript engines, and asynchronous module
1957 // loaders, using the global `JSON` object if available.
1958<span class="cstat-no" title="statement not covered" > JSON3 = window.JSON = nativeJSON || {};</span>
1959 }
1960
1961 // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
1962 var isExtended = new Date(-3509827334573292);
1963 try {
1964 // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
1965 // results for certain dates in Opera >= 10.53.
1966 isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&
1967 // Safari < 2.0.2 stores the internal millisecond time value correctly,
1968 // but clips the values returned by the date methods to the range of
1969 // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
1970 isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;
1971 } catch (exception) {}
1972
1973 // Internal: Determines whether the native `JSON.stringify` and `parse`
1974 // implementations are spec-compliant. Based on work by Ken Snyder.
1975 function has(name) {
1976 <span class="missing-if-branch" title="if path not taken"" >I</span>if (has[name] != null) {
1977 // Return cached feature test result.
1978<span class="cstat-no" title="statement not covered" > return has[name];</span>
1979 }
1980
1981 var isSupported;
1982 <span class="missing-if-branch" title="if path not taken"" >I</span>if (name == "bug-string-char-index") {
1983 // IE <= 7 doesn't support accessing string characters using square
1984 // bracket notation. IE 8 only supports this for primitives.
1985<span class="cstat-no" title="statement not covered" > isSupported = "a"[0] != "a";</span>
1986 } else if (name == "json") {
1987 // Indicates whether both `JSON.stringify` and `JSON.parse` are
1988 // supported.
1989 isSupported = has("json-stringify") && has("json-parse");
1990 } else {
1991 var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
1992 // Test `JSON.stringify`.
1993 if (name == "json-stringify") {
1994 var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" && isExtended;
1995 <span class="missing-if-branch" title="else path not taken"" >E</span>if (stringifySupported) {
1996 // A test function object with a custom `toJSON` method.
1997 (value = function () {
1998 return 1;
1999 }).toJSON = value;
2000 try {
2001 stringifySupported =
2002 // Firefox 3.1b1 and b2 serialize string, number, and boolean
2003 // primitives as object literals.
2004 stringify(0) === "0" &&
2005 // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
2006 // literals.
2007 stringify(new Number()) === "0" &&
2008 stringify(new String()) == '""' &&
2009 // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
2010 // does not define a canonical JSON representation (this applies to
2011 // objects with `toJSON` properties as well, *unless* they are nested
2012 // within an object or array).
2013 stringify(getClass) === undef &&
2014 // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and
2015 // FF 3.1b3 pass this test.
2016 stringify(undef) === undef &&
2017 // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
2018 // respectively, if the value is omitted entirely.
2019 stringify() === undef &&
2020 // FF 3.1b1, 2 throw an error if the given value is not a number,
2021 // string, array, object, Boolean, or `null` literal. This applies to
2022 // objects with custom `toJSON` methods as well, unless they are nested
2023 // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
2024 // methods entirely.
2025 stringify(value) === "1" &&
2026 stringify([value]) == "[1]" &&
2027 // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of
2028 // `"[null]"`.
2029 stringify([undef]) == "[null]" &&
2030 // YUI 3.0.0b1 fails to serialize `null` literals.
2031 stringify(null) == "null" &&
2032 // FF 3.1b1, 2 halts serialization if an array contains a function:
2033 // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
2034 // elides non-JSON values from objects and arrays, unless they
2035 // define custom `toJSON` methods.
2036 stringify([undef, getClass, null]) == "[null,null,null]" &&
2037 // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
2038 // where character escape codes are expected (e.g., `\b` => `\u0008`).
2039 stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &&
2040 // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
2041 stringify(null, value) === "1" &&
2042 stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &&
2043 // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly
2044 // serialize extended years.
2045 stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &&
2046 // The milliseconds are optional in ES 5, but required in 5.1.
2047 stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &&
2048 // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative
2049 // four-digit years instead of six-digit years. Credits: @Yaffle.
2050 stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &&
2051 // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond
2052 // values less than 1000. Credits: @Yaffle.
2053 stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
2054 } catch (exception) {
2055<span class="cstat-no" title="statement not covered" > stringifySupported = false;</span>
2056 }
2057 }
2058 isSupported = stringifySupported;
2059 }
2060 // Test `JSON.parse`.
2061 if (name == "json-parse") {
2062 var parse = JSON3.parse;
2063 <span class="missing-if-branch" title="else path not taken"" >E</span>if (typeof parse == "function") {
2064 try {
2065 // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
2066 // Conforming implementations should also coerce the initial argument to
2067 // a string prior to parsing.
2068 <span class="missing-if-branch" title="else path not taken"" >E</span>if (parse("0") === 0 && !parse(false)) {
2069 // Simple parsing test.
2070 value = parse(serialized);
2071 var parseSupported = value["a"].length == 5 && value["a"][0] === 1;
2072 <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2073 try {
2074 // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
2075 parseSupported = !parse('"\t"');
2076 } catch (exception) {}
2077 <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2078 try {
2079 // FF 4.0 and 4.0.1 allow leading `+` signs and leading
2080 // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
2081 // certain octal literals.
2082 parseSupported = parse("01") !== 1;
2083 } catch (exception) {}
2084 }
2085 <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2086 try {
2087 // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
2088 // points. These environments, along with FF 3.1b1 and 2,
2089 // also allow trailing commas in JSON objects and arrays.
2090 parseSupported = parse("1.") !== 1;
2091 } catch (exception) {}
2092 }
2093 }
2094 }
2095 } catch (exception) {
2096<span class="cstat-no" title="statement not covered" > parseSupported = false;</span>
2097 }
2098 }
2099 isSupported = parseSupported;
2100 }
2101 }
2102 return has[name] = !!isSupported;
2103 }
2104 has["bug-string-char-index"] = null;
2105 has["json"] = null;
2106 has["json-stringify"] = null;
2107 has["json-parse"] = null;
2108
2109 <span class="missing-if-branch" title="if path not taken"" >I</span>if (!has("json")) {
2110 // Common `[[Class]]` name aliases.
2111<span class="cstat-no" title="statement not covered" > var functionClass = "[object Function]";</span>
2112<span class="cstat-no" title="statement not covered" > var dateClass = "[object Date]";</span>
2113<span class="cstat-no" title="statement not covered" > var numberClass = "[object Number]";</span>
2114<span class="cstat-no" title="statement not covered" > var stringClass = "[object String]";</span>
2115<span class="cstat-no" title="statement not covered" > var arrayClass = "[object Array]";</span>
2116<span class="cstat-no" title="statement not covered" > var booleanClass = "[object Boolean]";</span>
2117
2118 // Detect incomplete support for accessing string characters by index.
2119<span class="cstat-no" title="statement not covered" > var charIndexBuggy = has("bug-string-char-index");</span>
2120
2121 // Define additional utility methods if the `Date` methods are buggy.
2122<span class="cstat-no" title="statement not covered" > if (!isExtended) {</span>
2123<span class="cstat-no" title="statement not covered" > var floor = Math.floor;</span>
2124 // A mapping between the months of the year and the number of days between
2125 // January 1st and the first of the respective month.
2126<span class="cstat-no" title="statement not covered" > var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];</span>
2127 // Internal: Calculates the number of days between the Unix epoch and the
2128 // first day of the given month.
2129<span class="cstat-no" title="statement not covered" > var getDay = <span class="fstat-no" title="function not covered" >function (year, month) {</span></span>
2130<span class="cstat-no" title="statement not covered" > return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);</span>
2131 };
2132 }
2133
2134 // Internal: Determines if a property is a direct property of the given
2135 // object. Delegates to the native `Object#hasOwnProperty` method.
2136<span class="cstat-no" title="statement not covered" > if (!(isProperty = {}.hasOwnProperty)) {</span>
2137<span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2138<span class="cstat-no" title="statement not covered" > var members = {}, constructor;</span>
2139<span class="cstat-no" title="statement not covered" > if ((members.__proto__ = null, members.__proto__ = {</span>
2140 // The *proto* property cannot be set multiple times in recent
2141 // versions of Firefox and SeaMonkey.
2142 "toString": 1
2143 }, members).toString != getClass) {
2144 // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
2145 // supports the mutable *proto* property.
2146<span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2147 // Capture and break the object's prototype chain (see section 8.6.2
2148 // of the ES 5.1 spec). The parenthesized expression prevents an
2149 // unsafe transformation by the Closure Compiler.
2150<span class="cstat-no" title="statement not covered" > var original = this.__proto__, result = property in (this.__proto__ = null, this);</span>
2151 // Restore the original prototype chain.
2152<span class="cstat-no" title="statement not covered" > this.__proto__ = original;</span>
2153<span class="cstat-no" title="statement not covered" > return result;</span>
2154 };
2155 } else {
2156 // Capture a reference to the top-level `Object` constructor.
2157<span class="cstat-no" title="statement not covered" > constructor = members.constructor;</span>
2158 // Use the `constructor` property to simulate `Object#hasOwnProperty` in
2159 // other environments.
2160<span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2161<span class="cstat-no" title="statement not covered" > var parent = (this.constructor || constructor).prototype;</span>
2162<span class="cstat-no" title="statement not covered" > return property in this && !(property in parent && this[property] === parent[property]);</span>
2163 };
2164 }
2165<span class="cstat-no" title="statement not covered" > members = null;</span>
2166<span class="cstat-no" title="statement not covered" > return isProperty.call(this, property);</span>
2167 };
2168 }
2169
2170 // Internal: A set of primitive types used by `isHostType`.
2171<span class="cstat-no" title="statement not covered" > var PrimitiveTypes = {</span>
2172 'boolean': 1,
2173 'number': 1,
2174 'string': 1,
2175 'undefined': 1
2176 };
2177
2178 // Internal: Determines if the given object `property` value is a
2179 // non-primitive.
2180<span class="cstat-no" title="statement not covered" > var isHostType = <span class="fstat-no" title="function not covered" >function (object, property) {</span></span>
2181<span class="cstat-no" title="statement not covered" > var type = typeof object[property];</span>
2182<span class="cstat-no" title="statement not covered" > return type == 'object' ? !!object[property] : !PrimitiveTypes[type];</span>
2183 };
2184
2185 // Internal: Normalizes the `for...in` iteration algorithm across
2186 // environments. Each enumerated key is yielded to a `callback` function.
2187<span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2188<span class="cstat-no" title="statement not covered" > var size = 0, Properties, members, property;</span>
2189
2190 // Tests for bugs in the current environment's `for...in` algorithm. The
2191 // `valueOf` property inherits the non-enumerable flag from
2192 // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
2193<span class="cstat-no" title="statement not covered" > (Properties = <span class="fstat-no" title="function not covered" >function () {</span></span>
2194<span class="cstat-no" title="statement not covered" > this.valueOf = 0;</span>
2195 }).prototype.valueOf = 0;
2196
2197 // Iterate over a new instance of the `Properties` class.
2198<span class="cstat-no" title="statement not covered" > members = new Properties();</span>
2199<span class="cstat-no" title="statement not covered" > for (property in members) {</span>
2200 // Ignore all properties inherited from `Object.prototype`.
2201<span class="cstat-no" title="statement not covered" > if (isProperty.call(members, property)) {</span>
2202<span class="cstat-no" title="statement not covered" > size++;</span>
2203 }
2204 }
2205<span class="cstat-no" title="statement not covered" > Properties = members = null;</span>
2206
2207 // Normalize the iteration algorithm.
2208<span class="cstat-no" title="statement not covered" > if (!size) {</span>
2209 // A list of non-enumerable properties inherited from `Object.prototype`.
2210<span class="cstat-no" title="statement not covered" > members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];</span>
2211 // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
2212 // properties.
2213<span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2214<span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, length;</span>
2215<span class="cstat-no" title="statement not covered" > var hasProperty = !isFunction && typeof object.constructor != 'function' && isHostType(object, 'hasOwnProperty') ? object.hasOwnProperty : isProperty;</span>
2216<span class="cstat-no" title="statement not covered" > for (property in object) {</span>
2217 // Gecko <= 1.0 enumerates the `prototype` property of functions under
2218 // certain conditions; IE does not.
2219<span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) {</span>
2220<span class="cstat-no" title="statement not covered" > callback(property);</span>
2221 }
2222 }
2223 // Manually invoke the callback for each non-enumerable property.
2224<span class="cstat-no" title="statement not covered" > for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));</span>
2225 };
2226 } else <span class="cstat-no" title="statement not covered" >if (size == 2) {</span>
2227 // Safari <= 2.0.4 enumerates shadowed properties twice.
2228<span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2229 // Create a set of iterated properties.
2230<span class="cstat-no" title="statement not covered" > var members = {}, isFunction = getClass.call(object) == functionClass, property;</span>
2231<span class="cstat-no" title="statement not covered" > for (property in object) {</span>
2232 // Store each property name to prevent double enumeration. The
2233 // `prototype` property of functions is not enumerated due to cross-
2234 // environment inconsistencies.
2235<span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {</span>
2236<span class="cstat-no" title="statement not covered" > callback(property);</span>
2237 }
2238 }
2239 };
2240 } else {
2241 // No bugs detected; use the standard `for...in` algorithm.
2242<span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2243<span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, isConstructor;</span>
2244<span class="cstat-no" title="statement not covered" > for (property in object) {</span>
2245<span class="cstat-no" title="statement not covered" > if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) {</span>
2246<span class="cstat-no" title="statement not covered" > callback(property);</span>
2247 }
2248 }
2249 // Manually invoke the callback for the `constructor` property due to
2250 // cross-environment inconsistencies.
2251<span class="cstat-no" title="statement not covered" > if (isConstructor || isProperty.call(object, (property = "constructor"))) {</span>
2252<span class="cstat-no" title="statement not covered" > callback(property);</span>
2253 }
2254 };
2255 }
2256<span class="cstat-no" title="statement not covered" > return forEach(object, callback);</span>
2257 };
2258
2259 // Public: Serializes a JavaScript `value` as a JSON string. The optional
2260 // `filter` argument may specify either a function that alters how object and
2261 // array members are serialized, or an array of strings and numbers that
2262 // indicates which properties should be serialized. The optional `width`
2263 // argument may be either a string or number that specifies the indentation
2264 // level of the output.
2265<span class="cstat-no" title="statement not covered" > if (!has("json-stringify")) {</span>
2266 // Internal: A map of control characters and their escaped equivalents.
2267<span class="cstat-no" title="statement not covered" > var Escapes = {</span>
2268 92: "\\\\",
2269 34: '\\"',
2270 8: "\\b",
2271 12: "\\f",
2272 10: "\\n",
2273 13: "\\r",
2274 9: "\\t"
2275 };
2276
2277 // Internal: Converts `value` into a zero-padded string such that its
2278 // length is at least equal to `width`. The `width` must be <= 6.
2279<span class="cstat-no" title="statement not covered" > var leadingZeroes = "000000";</span>
2280<span class="cstat-no" title="statement not covered" > var toPaddedString = <span class="fstat-no" title="function not covered" >function (width, value) {</span></span>
2281 // The `|| 0` expression is necessary to work around a bug in
2282 // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
2283<span class="cstat-no" title="statement not covered" > return (leadingZeroes + (value || 0)).slice(-width);</span>
2284 };
2285
2286 // Internal: Double-quotes a string `value`, replacing all ASCII control
2287 // characters (characters with code unit values between 0 and 31) with
2288 // their escaped equivalents. This is an implementation of the
2289 // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
2290<span class="cstat-no" title="statement not covered" > var unicodePrefix = "\\u00";</span>
2291<span class="cstat-no" title="statement not covered" > var quote = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
2292<span class="cstat-no" title="statement not covered" > var result = '"', index = 0, length = value.length, isLarge = length > 10 && charIndexBuggy, symbols;</span>
2293<span class="cstat-no" title="statement not covered" > if (isLarge) {</span>
2294<span class="cstat-no" title="statement not covered" > symbols = value.split("");</span>
2295 }
2296<span class="cstat-no" title="statement not covered" > for (; index < length; index++) {</span>
2297<span class="cstat-no" title="statement not covered" > var charCode = value.charCodeAt(index);</span>
2298 // If the character is a control character, append its Unicode or
2299 // shorthand escape sequence; otherwise, append the character as-is.
2300<span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
2301 case 8: case 9: case 10: case 12: case 13: case 34: case 92:
2302<span class="cstat-no" title="statement not covered" > result += Escapes[charCode];</span>
2303<span class="cstat-no" title="statement not covered" > break;</span>
2304 default:
2305<span class="cstat-no" title="statement not covered" > if (charCode < 32) {</span>
2306<span class="cstat-no" title="statement not covered" > result += unicodePrefix + toPaddedString(2, charCode.toString(16));</span>
2307<span class="cstat-no" title="statement not covered" > break;</span>
2308 }
2309<span class="cstat-no" title="statement not covered" > result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index];</span>
2310 }
2311 }
2312<span class="cstat-no" title="statement not covered" > return result + '"';</span>
2313 };
2314
2315 // Internal: Recursively serializes an object. Implements the
2316 // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
2317<span class="cstat-no" title="statement not covered" > var serialize = <span class="fstat-no" title="function not covered" >function (property, object, callback, properties, whitespace, indentation, stack) {</span></span>
2318<span class="cstat-no" title="statement not covered" > var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, hasMembers, result;</span>
2319<span class="cstat-no" title="statement not covered" > try {</span>
2320 // Necessary for host object support.
2321<span class="cstat-no" title="statement not covered" > value = object[property];</span>
2322 } catch (exception) {}
2323<span class="cstat-no" title="statement not covered" > if (typeof value == "object" && value) {</span>
2324<span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
2325<span class="cstat-no" title="statement not covered" > if (className == dateClass && !isProperty.call(value, "toJSON")) {</span>
2326<span class="cstat-no" title="statement not covered" > if (value > -1 / 0 && value < 1 / 0) {</span>
2327 // Dates are serialized according to the `Date#toJSON` method
2328 // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
2329 // for the ISO 8601 date time string format.
2330<span class="cstat-no" title="statement not covered" > if (getDay) {</span>
2331 // Manually compute the year, month, date, hours, minutes,
2332 // seconds, and milliseconds if the `getUTC*` methods are
2333 // buggy. Adapted from @Yaffle's `date-shim` project.
2334<span class="cstat-no" title="statement not covered" > date = floor(value / 864e5);</span>
2335<span class="cstat-no" title="statement not covered" > for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);</span>
2336<span class="cstat-no" title="statement not covered" > for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);</span>
2337<span class="cstat-no" title="statement not covered" > date = 1 + date - getDay(year, month);</span>
2338 // The `time` value specifies the time within the day (see ES
2339 // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
2340 // to compute `A modulo B`, as the `%` operator does not
2341 // correspond to the `modulo` operation for negative numbers.
2342<span class="cstat-no" title="statement not covered" > time = (value % 864e5 + 864e5) % 864e5;</span>
2343 // The hours, minutes, seconds, and milliseconds are obtained by
2344 // decomposing the time within the day. See section 15.9.1.10.
2345<span class="cstat-no" title="statement not covered" > hours = floor(time / 36e5) % 24;</span>
2346<span class="cstat-no" title="statement not covered" > minutes = floor(time / 6e4) % 60;</span>
2347<span class="cstat-no" title="statement not covered" > seconds = floor(time / 1e3) % 60;</span>
2348<span class="cstat-no" title="statement not covered" > milliseconds = time % 1e3;</span>
2349 } else {
2350<span class="cstat-no" title="statement not covered" > year = value.getUTCFullYear();</span>
2351<span class="cstat-no" title="statement not covered" > month = value.getUTCMonth();</span>
2352<span class="cstat-no" title="statement not covered" > date = value.getUTCDate();</span>
2353<span class="cstat-no" title="statement not covered" > hours = value.getUTCHours();</span>
2354<span class="cstat-no" title="statement not covered" > minutes = value.getUTCMinutes();</span>
2355<span class="cstat-no" title="statement not covered" > seconds = value.getUTCSeconds();</span>
2356<span class="cstat-no" title="statement not covered" > milliseconds = value.getUTCMilliseconds();</span>
2357 }
2358 // Serialize extended years correctly.
2359<span class="cstat-no" title="statement not covered" > value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +</span>
2360 "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
2361 // Months, dates, hours, minutes, and seconds should have two
2362 // digits; milliseconds should have three.
2363 "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
2364 // Milliseconds are optional in ES 5.0, but required in 5.1.
2365 "." + toPaddedString(3, milliseconds) + "Z";
2366 } else {
2367<span class="cstat-no" title="statement not covered" > value = null;</span>
2368 }
2369 } else <span class="cstat-no" title="statement not covered" >if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) {</span>
2370 // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the
2371 // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
2372 // ignores all `toJSON` methods on these objects unless they are
2373 // defined directly on an instance.
2374<span class="cstat-no" title="statement not covered" > value = value.toJSON(property);</span>
2375 }
2376 }
2377<span class="cstat-no" title="statement not covered" > if (callback) {</span>
2378 // If a replacement function was provided, call it to obtain the value
2379 // for serialization.
2380<span class="cstat-no" title="statement not covered" > value = callback.call(object, property, value);</span>
2381 }
2382<span class="cstat-no" title="statement not covered" > if (value === null) {</span>
2383<span class="cstat-no" title="statement not covered" > return "null";</span>
2384 }
2385<span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
2386<span class="cstat-no" title="statement not covered" > if (className == booleanClass) {</span>
2387 // Booleans are represented literally.
2388<span class="cstat-no" title="statement not covered" > return "" + value;</span>
2389 } else <span class="cstat-no" title="statement not covered" >if (className == numberClass) {</span>
2390 // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
2391 // `"null"`.
2392<span class="cstat-no" title="statement not covered" > return value > -1 / 0 && value < 1 / 0 ? "" + value : "null";</span>
2393 } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
2394 // Strings are double-quoted and escaped.
2395<span class="cstat-no" title="statement not covered" > return quote("" + value);</span>
2396 }
2397 // Recursively serialize objects and arrays.
2398<span class="cstat-no" title="statement not covered" > if (typeof value == "object") {</span>
2399 // Check for cyclic structures. This is a linear search; performance
2400 // is inversely proportional to the number of unique nested objects.
2401<span class="cstat-no" title="statement not covered" > for (length = stack.length; length--;) {</span>
2402<span class="cstat-no" title="statement not covered" > if (stack[length] === value) {</span>
2403 // Cyclic structures cannot be serialized by `JSON.stringify`.
2404<span class="cstat-no" title="statement not covered" > throw TypeError();</span>
2405 }
2406 }
2407 // Add the object to the stack of traversed objects.
2408<span class="cstat-no" title="statement not covered" > stack.push(value);</span>
2409<span class="cstat-no" title="statement not covered" > results = [];</span>
2410 // Save the current indentation level and indent one additional level.
2411<span class="cstat-no" title="statement not covered" > prefix = indentation;</span>
2412<span class="cstat-no" title="statement not covered" > indentation += whitespace;</span>
2413<span class="cstat-no" title="statement not covered" > if (className == arrayClass) {</span>
2414 // Recursively serialize array elements.
2415<span class="cstat-no" title="statement not covered" > for (index = 0, length = value.length; index < length; hasMembers || (hasMembers = true), index++) {</span>
2416<span class="cstat-no" title="statement not covered" > element = serialize(index, value, callback, properties, whitespace, indentation, stack);</span>
2417<span class="cstat-no" title="statement not covered" > results.push(element === undef ? "null" : element);</span>
2418 }
2419<span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";</span>
2420 } else {
2421 // Recursively serialize object members. Members are selected from
2422 // either a user-specified list of property names, or the object
2423 // itself.
2424<span class="cstat-no" title="statement not covered" > forEach(properties || value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2425<span class="cstat-no" title="statement not covered" > var element = serialize(property, value, callback, properties, whitespace, indentation, stack);</span>
2426<span class="cstat-no" title="statement not covered" > if (element !== undef) {</span>
2427 // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
2428 // is not the empty string, let `member` {quote(property) + ":"}
2429 // be the concatenation of `member` and the `space` character."
2430 // The "`space` character" refers to the literal space
2431 // character, not the `space` {width} argument provided to
2432 // `JSON.stringify`.
2433<span class="cstat-no" title="statement not covered" > results.push(quote(property) + ":" + (whitespace ? " " : "") + element);</span>
2434 }
2435<span class="cstat-no" title="statement not covered" > hasMembers || (hasMembers = true);</span>
2436 });
2437<span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";</span>
2438 }
2439 // Remove the object from the traversed object stack.
2440<span class="cstat-no" title="statement not covered" > stack.pop();</span>
2441<span class="cstat-no" title="statement not covered" > return result;</span>
2442 }
2443 };
2444
2445 // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
2446<span class="cstat-no" title="statement not covered" > JSON3.stringify = <span class="fstat-no" title="function not covered" >function (source, filter, width) {</span></span>
2447<span class="cstat-no" title="statement not covered" > var whitespace, callback, properties, className;</span>
2448<span class="cstat-no" title="statement not covered" > if (typeof filter == "function" || typeof filter == "object" && filter) {</span>
2449<span class="cstat-no" title="statement not covered" > if ((className = getClass.call(filter)) == functionClass) {</span>
2450<span class="cstat-no" title="statement not covered" > callback = filter;</span>
2451 } else <span class="cstat-no" title="statement not covered" >if (className == arrayClass) {</span>
2452 // Convert the property names array into a makeshift set.
2453<span class="cstat-no" title="statement not covered" > properties = {};</span>
2454<span class="cstat-no" title="statement not covered" > for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((getClass.call(value) == stringClass || getClass.call(value) == numberClass) && (properties[value] = 1)));</span>
2455 }
2456 }
2457<span class="cstat-no" title="statement not covered" > if (width) {</span>
2458<span class="cstat-no" title="statement not covered" > if ((className = getClass.call(width)) == numberClass) {</span>
2459 // Convert the `width` to an integer and create a string containing
2460 // `width` number of space characters.
2461<span class="cstat-no" title="statement not covered" > if ((width -= width % 1) > 0) {</span>
2462<span class="cstat-no" title="statement not covered" > for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " ");</span>
2463 }
2464 } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
2465<span class="cstat-no" title="statement not covered" > whitespace = width.length <= 10 ? width : width.slice(0, 10);</span>
2466 }
2467 }
2468 // Opera <= 7.54u2 discards the values associated with empty string keys
2469 // (`""`) only if they are used directly within an object member list
2470 // (e.g., `!("" in { "": 1})`).
2471<span class="cstat-no" title="statement not covered" > return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);</span>
2472 };
2473 }
2474
2475 // Public: Parses a JSON source string.
2476<span class="cstat-no" title="statement not covered" > if (!has("json-parse")) {</span>
2477<span class="cstat-no" title="statement not covered" > var fromCharCode = String.fromCharCode;</span>
2478
2479 // Internal: A map of escaped control characters and their unescaped
2480 // equivalents.
2481<span class="cstat-no" title="statement not covered" > var Unescapes = {</span>
2482 92: "\\",
2483 34: '"',
2484 47: "/",
2485 98: "\b",
2486 116: "\t",
2487 110: "\n",
2488 102: "\f",
2489 114: "\r"
2490 };
2491
2492 // Internal: Stores the parser state.
2493<span class="cstat-no" title="statement not covered" > var Index, Source;</span>
2494
2495 // Internal: Resets the parser state and throws a `SyntaxError`.
2496<span class="cstat-no" title="statement not covered" > var abort = <span class="fstat-no" title="function not covered" >function() {</span></span>
2497<span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
2498<span class="cstat-no" title="statement not covered" > throw SyntaxError();</span>
2499 };
2500
2501 // Internal: Returns the next token, or `"$"` if the parser has reached
2502 // the end of the source string. A token may be a string, number, `null`
2503 // literal, or Boolean literal.
2504<span class="cstat-no" title="statement not covered" > var lex = <span class="fstat-no" title="function not covered" >function () {</span></span>
2505<span class="cstat-no" title="statement not covered" > var source = Source, length = source.length, value, begin, position, isSigned, charCode;</span>
2506<span class="cstat-no" title="statement not covered" > while (Index < length) {</span>
2507<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
2508<span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
2509 case 9: case 10: case 13: case 32:
2510 // Skip whitespace tokens, including tabs, carriage returns, line
2511 // feeds, and space characters.
2512<span class="cstat-no" title="statement not covered" > Index++;</span>
2513<span class="cstat-no" title="statement not covered" > break;</span>
2514 case 123: case 125: case 91: case 93: case 58: case 44:
2515 // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
2516 // the current position.
2517<span class="cstat-no" title="statement not covered" > value = charIndexBuggy ? source.charAt(Index) : source[Index];</span>
2518<span class="cstat-no" title="statement not covered" > Index++;</span>
2519<span class="cstat-no" title="statement not covered" > return value;</span>
2520 case 34:
2521 // `"` delimits a JSON string; advance to the next character and
2522 // begin parsing the string. String tokens are prefixed with the
2523 // sentinel `@` character to distinguish them from punctuators and
2524 // end-of-string tokens.
2525<span class="cstat-no" title="statement not covered" > for (value = "@", Index++; Index < length;) {</span>
2526<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
2527<span class="cstat-no" title="statement not covered" > if (charCode < 32) {</span>
2528 // Unescaped ASCII control characters (those with a code unit
2529 // less than the space character) are not permitted.
2530<span class="cstat-no" title="statement not covered" > abort();</span>
2531 } else <span class="cstat-no" title="statement not covered" >if (charCode == 92) {</span>
2532 // A reverse solidus (`\`) marks the beginning of an escaped
2533 // control character (including `"`, `\`, and `/`) or Unicode
2534 // escape sequence.
2535<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
2536<span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
2537 case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
2538 // Revive escaped control characters.
2539<span class="cstat-no" title="statement not covered" > value += Unescapes[charCode];</span>
2540<span class="cstat-no" title="statement not covered" > Index++;</span>
2541<span class="cstat-no" title="statement not covered" > break;</span>
2542 case 117:
2543 // `\u` marks the beginning of a Unicode escape sequence.
2544 // Advance to the first character and validate the
2545 // four-digit code point.
2546<span class="cstat-no" title="statement not covered" > begin = ++Index;</span>
2547<span class="cstat-no" title="statement not covered" > for (position = Index + 4; Index < position; Index++) {</span>
2548<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
2549 // A valid sequence comprises four hexdigits (case-
2550 // insensitive) that form a single hexadecimal value.
2551<span class="cstat-no" title="statement not covered" > if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {</span>
2552 // Invalid Unicode escape sequence.
2553<span class="cstat-no" title="statement not covered" > abort();</span>
2554 }
2555 }
2556 // Revive the escaped character.
2557<span class="cstat-no" title="statement not covered" > value += fromCharCode("0x" + source.slice(begin, Index));</span>
2558<span class="cstat-no" title="statement not covered" > break;</span>
2559 default:
2560 // Invalid escape sequence.
2561<span class="cstat-no" title="statement not covered" > abort();</span>
2562 }
2563 } else {
2564<span class="cstat-no" title="statement not covered" > if (charCode == 34) {</span>
2565 // An unescaped double-quote character marks the end of the
2566 // string.
2567<span class="cstat-no" title="statement not covered" > break;</span>
2568 }
2569<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
2570<span class="cstat-no" title="statement not covered" > begin = Index;</span>
2571 // Optimize for the common case where a string is valid.
2572<span class="cstat-no" title="statement not covered" > while (charCode >= 32 && charCode != 92 && charCode != 34) {</span>
2573<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
2574 }
2575 // Append the string as-is.
2576<span class="cstat-no" title="statement not covered" > value += source.slice(begin, Index);</span>
2577 }
2578 }
2579<span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 34) {</span>
2580 // Advance to the next character and return the revived string.
2581<span class="cstat-no" title="statement not covered" > Index++;</span>
2582<span class="cstat-no" title="statement not covered" > return value;</span>
2583 }
2584 // Unterminated string.
2585<span class="cstat-no" title="statement not covered" > abort();</span>
2586 default:
2587 // Parse numbers and literals.
2588<span class="cstat-no" title="statement not covered" > begin = Index;</span>
2589 // Advance past the negative sign, if one is specified.
2590<span class="cstat-no" title="statement not covered" > if (charCode == 45) {</span>
2591<span class="cstat-no" title="statement not covered" > isSigned = true;</span>
2592<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
2593 }
2594 // Parse an integer or floating-point value.
2595<span class="cstat-no" title="statement not covered" > if (charCode >= 48 && charCode <= 57) {</span>
2596 // Leading zeroes are interpreted as octal literals.
2597<span class="cstat-no" title="statement not covered" > if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {</span>
2598 // Illegal octal literal.
2599<span class="cstat-no" title="statement not covered" > abort();</span>
2600 }
2601<span class="cstat-no" title="statement not covered" > isSigned = false;</span>
2602 // Parse the integer component.
2603<span class="cstat-no" title="statement not covered" > for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);</span>
2604 // Floats cannot contain a leading decimal point; however, this
2605 // case is already accounted for by the parser.
2606<span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 46) {</span>
2607<span class="cstat-no" title="statement not covered" > position = ++Index;</span>
2608 // Parse the decimal component.
2609<span class="cstat-no" title="statement not covered" > for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);</span>
2610<span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
2611 // Illegal trailing decimal.
2612<span class="cstat-no" title="statement not covered" > abort();</span>
2613 }
2614<span class="cstat-no" title="statement not covered" > Index = position;</span>
2615 }
2616 // Parse exponents. The `e` denoting the exponent is
2617 // case-insensitive.
2618<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
2619<span class="cstat-no" title="statement not covered" > if (charCode == 101 || charCode == 69) {</span>
2620<span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
2621 // Skip past the sign following the exponent, if one is
2622 // specified.
2623<span class="cstat-no" title="statement not covered" > if (charCode == 43 || charCode == 45) {</span>
2624<span class="cstat-no" title="statement not covered" > Index++;</span>
2625 }
2626 // Parse the exponential component.
2627<span class="cstat-no" title="statement not covered" > for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);</span>
2628<span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
2629 // Illegal empty exponent.
2630<span class="cstat-no" title="statement not covered" > abort();</span>
2631 }
2632<span class="cstat-no" title="statement not covered" > Index = position;</span>
2633 }
2634 // Coerce the parsed value to a JavaScript number.
2635<span class="cstat-no" title="statement not covered" > return +source.slice(begin, Index);</span>
2636 }
2637 // A negative sign may only precede numbers.
2638<span class="cstat-no" title="statement not covered" > if (isSigned) {</span>
2639<span class="cstat-no" title="statement not covered" > abort();</span>
2640 }
2641 // `true`, `false`, and `null` literals.
2642<span class="cstat-no" title="statement not covered" > if (source.slice(Index, Index + 4) == "true") {</span>
2643<span class="cstat-no" title="statement not covered" > Index += 4;</span>
2644<span class="cstat-no" title="statement not covered" > return true;</span>
2645 } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 5) == "false") {</span>
2646<span class="cstat-no" title="statement not covered" > Index += 5;</span>
2647<span class="cstat-no" title="statement not covered" > return false;</span>
2648 } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 4) == "null") {</span>
2649<span class="cstat-no" title="statement not covered" > Index += 4;</span>
2650<span class="cstat-no" title="statement not covered" > return null;</span>
2651 }
2652 // Unrecognized token.
2653<span class="cstat-no" title="statement not covered" > abort();</span>
2654 }
2655 }
2656 // Return the sentinel `$` character if the parser has reached the end
2657 // of the source string.
2658<span class="cstat-no" title="statement not covered" > return "$";</span>
2659 };
2660
2661 // Internal: Parses a JSON `value` token.
2662<span class="cstat-no" title="statement not covered" > var get = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
2663<span class="cstat-no" title="statement not covered" > var results, hasMembers;</span>
2664<span class="cstat-no" title="statement not covered" > if (value == "$") {</span>
2665 // Unexpected end of input.
2666<span class="cstat-no" title="statement not covered" > abort();</span>
2667 }
2668<span class="cstat-no" title="statement not covered" > if (typeof value == "string") {</span>
2669<span class="cstat-no" title="statement not covered" > if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {</span>
2670 // Remove the sentinel `@` character.
2671<span class="cstat-no" title="statement not covered" > return value.slice(1);</span>
2672 }
2673 // Parse object and array literals.
2674<span class="cstat-no" title="statement not covered" > if (value == "[") {</span>
2675 // Parses a JSON array, returning a new JavaScript array.
2676<span class="cstat-no" title="statement not covered" > results = [];</span>
2677<span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
2678<span class="cstat-no" title="statement not covered" > value = lex();</span>
2679 // A closing square bracket marks the end of the array literal.
2680<span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
2681<span class="cstat-no" title="statement not covered" > break;</span>
2682 }
2683 // If the array literal contains elements, the current token
2684 // should be a comma separating the previous element from the
2685 // next.
2686<span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
2687<span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
2688<span class="cstat-no" title="statement not covered" > value = lex();</span>
2689<span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
2690 // Unexpected trailing `,` in array literal.
2691<span class="cstat-no" title="statement not covered" > abort();</span>
2692 }
2693 } else {
2694 // A `,` must separate each array element.
2695<span class="cstat-no" title="statement not covered" > abort();</span>
2696 }
2697 }
2698 // Elisions and leading commas are not permitted.
2699<span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
2700<span class="cstat-no" title="statement not covered" > abort();</span>
2701 }
2702<span class="cstat-no" title="statement not covered" > results.push(get(value));</span>
2703 }
2704<span class="cstat-no" title="statement not covered" > return results;</span>
2705 } else <span class="cstat-no" title="statement not covered" >if (value == "{") {</span>
2706 // Parses a JSON object, returning a new JavaScript object.
2707<span class="cstat-no" title="statement not covered" > results = {};</span>
2708<span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
2709<span class="cstat-no" title="statement not covered" > value = lex();</span>
2710 // A closing curly brace marks the end of the object literal.
2711<span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
2712<span class="cstat-no" title="statement not covered" > break;</span>
2713 }
2714 // If the object literal contains members, the current token
2715 // should be a comma separator.
2716<span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
2717<span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
2718<span class="cstat-no" title="statement not covered" > value = lex();</span>
2719<span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
2720 // Unexpected trailing `,` in object literal.
2721<span class="cstat-no" title="statement not covered" > abort();</span>
2722 }
2723 } else {
2724 // A `,` must separate each object member.
2725<span class="cstat-no" title="statement not covered" > abort();</span>
2726 }
2727 }
2728 // Leading commas are not permitted, object property names must be
2729 // double-quoted strings, and a `:` must separate each property
2730 // name and value.
2731<span class="cstat-no" title="statement not covered" > if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {</span>
2732<span class="cstat-no" title="statement not covered" > abort();</span>
2733 }
2734<span class="cstat-no" title="statement not covered" > results[value.slice(1)] = get(lex());</span>
2735 }
2736<span class="cstat-no" title="statement not covered" > return results;</span>
2737 }
2738 // Unexpected token encountered.
2739<span class="cstat-no" title="statement not covered" > abort();</span>
2740 }
2741<span class="cstat-no" title="statement not covered" > return value;</span>
2742 };
2743
2744 // Internal: Updates a traversed object member.
2745<span class="cstat-no" title="statement not covered" > var update = <span class="fstat-no" title="function not covered" >function(source, property, callback) {</span></span>
2746<span class="cstat-no" title="statement not covered" > var element = walk(source, property, callback);</span>
2747<span class="cstat-no" title="statement not covered" > if (element === undef) {</span>
2748<span class="cstat-no" title="statement not covered" > delete source[property];</span>
2749 } else {
2750<span class="cstat-no" title="statement not covered" > source[property] = element;</span>
2751 }
2752 };
2753
2754 // Internal: Recursively traverses a parsed JSON object, invoking the
2755 // `callback` function for each value. This is an implementation of the
2756 // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
2757<span class="cstat-no" title="statement not covered" > var walk = <span class="fstat-no" title="function not covered" >function (source, property, callback) {</span></span>
2758<span class="cstat-no" title="statement not covered" > var value = source[property], length;</span>
2759<span class="cstat-no" title="statement not covered" > if (typeof value == "object" && value) {</span>
2760 // `forEach` can't be used to traverse an array in Opera <= 8.54
2761 // because its `Object#hasOwnProperty` implementation returns `false`
2762 // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
2763<span class="cstat-no" title="statement not covered" > if (getClass.call(value) == arrayClass) {</span>
2764<span class="cstat-no" title="statement not covered" > for (length = value.length; length--;) {</span>
2765<span class="cstat-no" title="statement not covered" > update(value, length, callback);</span>
2766 }
2767 } else {
2768<span class="cstat-no" title="statement not covered" > forEach(value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2769<span class="cstat-no" title="statement not covered" > update(value, property, callback);</span>
2770 });
2771 }
2772 }
2773<span class="cstat-no" title="statement not covered" > return callback.call(source, property, value);</span>
2774 };
2775
2776 // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
2777<span class="cstat-no" title="statement not covered" > JSON3.parse = <span class="fstat-no" title="function not covered" >function (source, callback) {</span></span>
2778<span class="cstat-no" title="statement not covered" > var result, value;</span>
2779<span class="cstat-no" title="statement not covered" > Index = 0;</span>
2780<span class="cstat-no" title="statement not covered" > Source = "" + source;</span>
2781<span class="cstat-no" title="statement not covered" > result = get(lex());</span>
2782 // If a JSON string contains multiple tokens, it is invalid.
2783<span class="cstat-no" title="statement not covered" > if (lex() != "$") {</span>
2784<span class="cstat-no" title="statement not covered" > abort();</span>
2785 }
2786 // Reset the parser state.
2787<span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
2788<span class="cstat-no" title="statement not covered" > return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;</span>
2789 };
2790 }
2791 }
2792
2793 // Export for asynchronous module loaders.
2794 <span class="missing-if-branch" title="if path not taken"" >I</span>if (isLoader) {
2795<span class="cstat-no" title="statement not covered" > define(<span class="fstat-no" title="function not covered" >function () {</span></span>
2796<span class="cstat-no" title="statement not covered" > return JSON3;</span>
2797 });
2798 }
2799}(this));
2800 </pre></td></tr>
2801</table></pre>
2802
2803</div>
2804<div class="footer">
2805 <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Nov 17 2013 14:21:36 GMT-0800 (PST)</div>
2806</div>
2807
2808<script src="../prettify.js"></script>
2809
2810<script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
2811<script>
2812
2813 YUI().use('datatable', function (Y) {
2814
2815 var formatters = {
2816 pct: function (o) {
2817 o.className += o.record.get('classes')[o.column.key];
2818 try {
2819 return o.value.toFixed(2) + '%';
2820 } catch (ex) { return o.value + '%'; }
2821 },
2822 html: function (o) {
2823 o.className += o.record.get('classes')[o.column.key];
2824 return o.record.get(o.column.key + '_html');
2825 }
2826 },
2827 defaultFormatter = function (o) {
2828 o.className += o.record.get('classes')[o.column.key];
2829 return o.value;
2830 };
2831
2832 function getColumns(theadNode) {
2833 var colNodes = theadNode.all('tr th'),
2834 cols = [],
2835 col;
2836 colNodes.each(function (colNode) {
2837 col = {
2838 key: colNode.getAttribute('data-col'),
2839 label: colNode.get('innerHTML') || ' ',
2840 sortable: !colNode.getAttribute('data-nosort'),
2841 className: colNode.getAttribute('class'),
2842 type: colNode.getAttribute('data-type'),
2843 allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
2844 };
2845 col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
2846 cols.push(col);
2847 });
2848 return cols;
2849 }
2850
2851 function getRowData(trNode, cols) {
2852 var tdNodes = trNode.all('td'),
2853 i,
2854 row = { classes: {} },
2855 node,
2856 name;
2857 for (i = 0; i < cols.length; i += 1) {
2858 name = cols[i].key;
2859 node = tdNodes.item(i);
2860 row[name] = node.getAttribute('data-value') || node.get('innerHTML');
2861 row[name + '_html'] = node.get('innerHTML');
2862 row.classes[name] = node.getAttribute('class');
2863 //Y.log('Name: ' + name + '; Value: ' + row[name]);
2864 if (cols[i].type === 'number') { row[name] = row[name] * 1; }
2865 }
2866 //Y.log(row);
2867 return row;
2868 }
2869
2870 function getData(tbodyNode, cols) {
2871 var data = [];
2872 tbodyNode.all('tr').each(function (trNode) {
2873 data.push(getRowData(trNode, cols));
2874 });
2875 return data;
2876 }
2877
2878 function replaceTable(node) {
2879 if (!node) { return; }
2880 var cols = getColumns(node.one('thead')),
2881 data = getData(node.one('tbody'), cols),
2882 table,
2883 parent = node.get('parentNode');
2884
2885 table = new Y.DataTable({
2886 columns: cols,
2887 data: data,
2888 sortBy: 'file'
2889 });
2890 parent.set('innerHTML', '');
2891 table.render(parent);
2892 }
2893
2894 Y.on('domready', function () {
2895 replaceTable(Y.one('div.coverage-summary table'));
2896 if (typeof prettyPrint === 'function') {
2897 prettyPrint();
2898 }
2899 });
2900 });
2901</script>
2902</body>
2903</html>