icalendar 0.97 → 0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. data/Rakefile +2 -2
  2. data/docs/api/classes/Icalendar/Component.src/M000029.html +1 -1
  3. data/docs/api/classes/Icalendar/Component.src/M000030.html +1 -1
  4. data/docs/api/classes/Icalendar/Component.src/M000035.html +1 -1
  5. data/docs/api/classes/Icalendar/Component.src/M000040.html +1 -1
  6. data/docs/api/classes/Icalendar/Component.src/M000041.html +1 -1
  7. data/docs/api/classes/Icalendar/Component.src/M000042.html +1 -1
  8. data/docs/api/classes/Icalendar/Component.src/M000043.html +9 -4
  9. data/docs/api/classes/Icalendar/Component.src/M000044.html +1 -1
  10. data/docs/api/classes/Icalendar/Component.src/M000045.html +1 -1
  11. data/docs/api/classes/Icalendar/Component.src/M000046.html +1 -1
  12. data/docs/api/classes/Icalendar/Component.src/M000047.html +1 -1
  13. data/docs/api/classes/Icalendar/Component.src/M000048.html +1 -1
  14. data/docs/api/classes/Icalendar/Component.src/M000049.html +1 -1
  15. data/docs/api/classes/Icalendar/Component.src/M000050.html +1 -1
  16. data/docs/api/classes/Icalendar/Geo.html +2 -2
  17. data/docs/api/classes/Icalendar/Geo.src/M000024.html +1 -1
  18. data/docs/api/classes/Icalendar/Geo.src/M000025.html +1 -1
  19. data/docs/api/classes/String.src/M000012.html +1 -1
  20. data/docs/api/created.rid +1 -1
  21. data/docs/api/files/lib/icalendar/component_rb.html +1 -1
  22. data/docs/api/files/lib/icalendar/conversions_rb.html +1 -1
  23. data/docs/api/files/lib/icalendar/parser_rb.html +1 -1
  24. data/lib/icalendar/component.rb +10 -3
  25. data/lib/icalendar/conversions.rb +1 -1
  26. data/lib/icalendar/parser.rb +1 -1
  27. data/test/conversions_test.rb +35 -4
  28. data/test/fixtures/folding.ics +23 -0
  29. data/test/{life.ics → fixtures/life.ics} +0 -0
  30. data/test/{simplecal.ics → fixtures/simplecal.ics} +0 -0
  31. data/test/{single_event.ics → fixtures/single_event.ics} +1 -1
  32. data/test/parser_test.rb +2 -2
  33. metadata +7 -44
  34. data/test/coverage/-home-rosejn-projects-icalendar-lib-hash_attrs_rb.html +0 -574
  35. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-base_rb.html +0 -575
  36. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-calendar_rb.html +0 -629
  37. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-alarm_rb.html +0 -581
  38. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-event_rb.html +0 -658
  39. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-freebusy_rb.html +0 -574
  40. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-journal_rb.html +0 -597
  41. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-timezone_rb.html +0 -625
  42. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-todo_rb.html +0 -600
  43. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component_rb.html +0 -924
  44. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-conversions_rb.html +0 -667
  45. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-parser_rb.html +0 -938
  46. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar_rb.html +0 -576
  47. data/test/coverage/-home-rosejn-projects-icalendar-lib-meta_rb.html +0 -572
  48. data/test/coverage/calendar_test_rb.html +0 -590
  49. data/test/coverage/component_test_rb.html +0 -602
  50. data/test/coverage/index.html +0 -1009
  51. data/test/coverage/lib-hash_attrs_rb.html +0 -574
  52. data/test/coverage/lib-icalendar-base_rb.html +0 -583
  53. data/test/coverage/lib-icalendar-calendar_rb.html +0 -631
  54. data/test/coverage/lib-icalendar-component-alarm_rb.html +0 -581
  55. data/test/coverage/lib-icalendar-component-event_rb.html +0 -661
  56. data/test/coverage/lib-icalendar-component-freebusy_rb.html +0 -576
  57. data/test/coverage/lib-icalendar-component-journal_rb.html +0 -599
  58. data/test/coverage/lib-icalendar-component-timezone_rb.html +0 -625
  59. data/test/coverage/lib-icalendar-component-todo_rb.html +0 -602
  60. data/test/coverage/lib-icalendar-component_rb.html +0 -941
  61. data/test/coverage/lib-icalendar-conversions_rb.html +0 -673
  62. data/test/coverage/lib-icalendar-parser_rb.html +0 -916
  63. data/test/coverage/lib-icalendar_rb.html +0 -576
  64. data/test/coverage/lib-meta_rb.html +0 -572
  65. data/test/coverage/parameter_test_rb.html +0 -569
  66. data/test/coverage/parser_test_rb.html +0 -623
  67. data/test/coverage/test-calendar_test_rb.html +0 -590
  68. data/test/coverage/test-component-event_test_rb.html +0 -584
  69. data/test/coverage/test-component_test_rb.html +0 -606
  70. data/test/coverage/test-conversions_test_rb.html +0 -603
  71. data/test/coverage/test-parameter_test_rb.html +0 -569
  72. data/test/coverage/test-parser_test_rb.html +0 -624
@@ -1,631 +0,0 @@
1
- <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>lib/icalendar/calendar.rb - C0 code coverage information</title><style type='text/css'>body { background-color: rgb(240, 240, 245); }</style><style type='text/css'>span.marked {
2
- background-color: rgb(185, 200, 200);
3
- display: block;
4
- }
5
- span.inferred {
6
- background-color: rgb(170, 185, 185);
7
- display: block;
8
- }
9
- span.overview {
10
- border-bottom: 8px solid black;
11
- }
12
- div.overview {
13
- border-bottom: 8px solid black;
14
- }
15
- body {
16
- font-family: verdana, arial, helvetica;
17
- }
18
- div.footer {
19
- font-size: 68%;
20
- margin-top: 1.5em;
21
- }
22
- h1, h2, h3, h4, h5, h6 {
23
- margin-bottom: 0.5em;
24
- }
25
- h5 {
26
- margin-top: 0.5em;
27
- }
28
- .hidden {
29
- display: none;
30
- }
31
- div.separator {
32
- height: 10px;
33
- }
34
- table tr td, table tr th {
35
- font-size: 68%;
36
- }
37
- td.value table tr td {
38
- font-size: 11px;
39
- }
40
- table.percent_graph {
41
- height: 12px;
42
- border: #808080 1px solid;
43
- empty-cells: show;
44
- }
45
- table.percent_graph td.covered {
46
- height: 10px;
47
- background: #00f000;
48
- }
49
- table.percent_graph td.uncovered {
50
- height: 10px;
51
- background: #e00000;
52
- }
53
- table.percent_graph td.NA {
54
- height: 10px;
55
- background: #eaeaea;
56
- }
57
- table.report {
58
- border-collapse: collapse;
59
- width: 100%;
60
- }
61
- table.report td.heading {
62
- background: #dcecff;
63
- border: #d0d0d0 1px solid;
64
- font-weight: bold;
65
- text-align: center;
66
- }
67
- table.report td.heading:hover {
68
- background: #c0ffc0;
69
- }
70
- table.report td.text {
71
- border: #d0d0d0 1px solid;
72
- }
73
- table.report td.value {
74
- text-align: right;
75
- border: #d0d0d0 1px solid;
76
- }
77
- </style><style type='text/css'>span.run0 {
78
- background-color: rgb(178, 204, 255);
79
- display: block;
80
- }
81
- span.run1 {
82
- background-color: rgb(178, 206, 255);
83
- display: block;
84
- }
85
- span.run2 {
86
- background-color: rgb(178, 209, 255);
87
- display: block;
88
- }
89
- span.run3 {
90
- background-color: rgb(178, 211, 255);
91
- display: block;
92
- }
93
- span.run4 {
94
- background-color: rgb(178, 214, 255);
95
- display: block;
96
- }
97
- span.run5 {
98
- background-color: rgb(178, 218, 255);
99
- display: block;
100
- }
101
- span.run6 {
102
- background-color: rgb(178, 220, 255);
103
- display: block;
104
- }
105
- span.run7 {
106
- background-color: rgb(178, 223, 255);
107
- display: block;
108
- }
109
- span.run8 {
110
- background-color: rgb(178, 225, 255);
111
- display: block;
112
- }
113
- span.run9 {
114
- background-color: rgb(178, 228, 255);
115
- display: block;
116
- }
117
- span.run10 {
118
- background-color: rgb(178, 232, 255);
119
- display: block;
120
- }
121
- span.run11 {
122
- background-color: rgb(178, 234, 255);
123
- display: block;
124
- }
125
- span.run12 {
126
- background-color: rgb(178, 237, 255);
127
- display: block;
128
- }
129
- span.run13 {
130
- background-color: rgb(178, 239, 255);
131
- display: block;
132
- }
133
- span.run14 {
134
- background-color: rgb(178, 242, 255);
135
- display: block;
136
- }
137
- span.run15 {
138
- background-color: rgb(178, 246, 255);
139
- display: block;
140
- }
141
- span.run16 {
142
- background-color: rgb(178, 248, 255);
143
- display: block;
144
- }
145
- span.run17 {
146
- background-color: rgb(178, 251, 255);
147
- display: block;
148
- }
149
- span.run18 {
150
- background-color: rgb(178, 253, 255);
151
- display: block;
152
- }
153
- span.run19 {
154
- background-color: rgb(178, 255, 253);
155
- display: block;
156
- }
157
- span.run20 {
158
- background-color: rgb(178, 255, 249);
159
- display: block;
160
- }
161
- span.run21 {
162
- background-color: rgb(178, 255, 247);
163
- display: block;
164
- }
165
- span.run22 {
166
- background-color: rgb(178, 255, 244);
167
- display: block;
168
- }
169
- span.run23 {
170
- background-color: rgb(178, 255, 242);
171
- display: block;
172
- }
173
- span.run24 {
174
- background-color: rgb(178, 255, 239);
175
- display: block;
176
- }
177
- span.run25 {
178
- background-color: rgb(178, 255, 235);
179
- display: block;
180
- }
181
- span.run26 {
182
- background-color: rgb(178, 255, 233);
183
- display: block;
184
- }
185
- span.run27 {
186
- background-color: rgb(178, 255, 230);
187
- display: block;
188
- }
189
- span.run28 {
190
- background-color: rgb(178, 255, 228);
191
- display: block;
192
- }
193
- span.run29 {
194
- background-color: rgb(178, 255, 225);
195
- display: block;
196
- }
197
- span.run30 {
198
- background-color: rgb(178, 255, 221);
199
- display: block;
200
- }
201
- span.run31 {
202
- background-color: rgb(178, 255, 219);
203
- display: block;
204
- }
205
- span.run32 {
206
- background-color: rgb(178, 255, 216);
207
- display: block;
208
- }
209
- span.run33 {
210
- background-color: rgb(178, 255, 214);
211
- display: block;
212
- }
213
- span.run34 {
214
- background-color: rgb(178, 255, 211);
215
- display: block;
216
- }
217
- span.run35 {
218
- background-color: rgb(178, 255, 207);
219
- display: block;
220
- }
221
- span.run36 {
222
- background-color: rgb(178, 255, 205);
223
- display: block;
224
- }
225
- span.run37 {
226
- background-color: rgb(178, 255, 202);
227
- display: block;
228
- }
229
- span.run38 {
230
- background-color: rgb(178, 255, 200);
231
- display: block;
232
- }
233
- span.run39 {
234
- background-color: rgb(178, 255, 197);
235
- display: block;
236
- }
237
- span.run40 {
238
- background-color: rgb(178, 255, 193);
239
- display: block;
240
- }
241
- span.run41 {
242
- background-color: rgb(178, 255, 191);
243
- display: block;
244
- }
245
- span.run42 {
246
- background-color: rgb(178, 255, 188);
247
- display: block;
248
- }
249
- span.run43 {
250
- background-color: rgb(178, 255, 186);
251
- display: block;
252
- }
253
- span.run44 {
254
- background-color: rgb(178, 255, 183);
255
- display: block;
256
- }
257
- span.run45 {
258
- background-color: rgb(178, 255, 179);
259
- display: block;
260
- }
261
- span.run46 {
262
- background-color: rgb(179, 255, 178);
263
- display: block;
264
- }
265
- span.run47 {
266
- background-color: rgb(182, 255, 178);
267
- display: block;
268
- }
269
- span.run48 {
270
- background-color: rgb(184, 255, 178);
271
- display: block;
272
- }
273
- span.run49 {
274
- background-color: rgb(187, 255, 178);
275
- display: block;
276
- }
277
- span.run50 {
278
- background-color: rgb(191, 255, 178);
279
- display: block;
280
- }
281
- span.run51 {
282
- background-color: rgb(193, 255, 178);
283
- display: block;
284
- }
285
- span.run52 {
286
- background-color: rgb(196, 255, 178);
287
- display: block;
288
- }
289
- span.run53 {
290
- background-color: rgb(198, 255, 178);
291
- display: block;
292
- }
293
- span.run54 {
294
- background-color: rgb(201, 255, 178);
295
- display: block;
296
- }
297
- span.run55 {
298
- background-color: rgb(205, 255, 178);
299
- display: block;
300
- }
301
- span.run56 {
302
- background-color: rgb(207, 255, 178);
303
- display: block;
304
- }
305
- span.run57 {
306
- background-color: rgb(210, 255, 178);
307
- display: block;
308
- }
309
- span.run58 {
310
- background-color: rgb(212, 255, 178);
311
- display: block;
312
- }
313
- span.run59 {
314
- background-color: rgb(215, 255, 178);
315
- display: block;
316
- }
317
- span.run60 {
318
- background-color: rgb(219, 255, 178);
319
- display: block;
320
- }
321
- span.run61 {
322
- background-color: rgb(221, 255, 178);
323
- display: block;
324
- }
325
- span.run62 {
326
- background-color: rgb(224, 255, 178);
327
- display: block;
328
- }
329
- span.run63 {
330
- background-color: rgb(226, 255, 178);
331
- display: block;
332
- }
333
- span.run64 {
334
- background-color: rgb(229, 255, 178);
335
- display: block;
336
- }
337
- span.run65 {
338
- background-color: rgb(233, 255, 178);
339
- display: block;
340
- }
341
- span.run66 {
342
- background-color: rgb(235, 255, 178);
343
- display: block;
344
- }
345
- span.run67 {
346
- background-color: rgb(238, 255, 178);
347
- display: block;
348
- }
349
- span.run68 {
350
- background-color: rgb(240, 255, 178);
351
- display: block;
352
- }
353
- span.run69 {
354
- background-color: rgb(243, 255, 178);
355
- display: block;
356
- }
357
- span.run70 {
358
- background-color: rgb(247, 255, 178);
359
- display: block;
360
- }
361
- span.run71 {
362
- background-color: rgb(249, 255, 178);
363
- display: block;
364
- }
365
- span.run72 {
366
- background-color: rgb(252, 255, 178);
367
- display: block;
368
- }
369
- span.run73 {
370
- background-color: rgb(255, 255, 178);
371
- display: block;
372
- }
373
- span.run74 {
374
- background-color: rgb(255, 252, 178);
375
- display: block;
376
- }
377
- span.run75 {
378
- background-color: rgb(255, 248, 178);
379
- display: block;
380
- }
381
- span.run76 {
382
- background-color: rgb(255, 246, 178);
383
- display: block;
384
- }
385
- span.run77 {
386
- background-color: rgb(255, 243, 178);
387
- display: block;
388
- }
389
- span.run78 {
390
- background-color: rgb(255, 240, 178);
391
- display: block;
392
- }
393
- span.run79 {
394
- background-color: rgb(255, 238, 178);
395
- display: block;
396
- }
397
- span.run80 {
398
- background-color: rgb(255, 234, 178);
399
- display: block;
400
- }
401
- span.run81 {
402
- background-color: rgb(255, 232, 178);
403
- display: block;
404
- }
405
- span.run82 {
406
- background-color: rgb(255, 229, 178);
407
- display: block;
408
- }
409
- span.run83 {
410
- background-color: rgb(255, 226, 178);
411
- display: block;
412
- }
413
- span.run84 {
414
- background-color: rgb(255, 224, 178);
415
- display: block;
416
- }
417
- span.run85 {
418
- background-color: rgb(255, 220, 178);
419
- display: block;
420
- }
421
- span.run86 {
422
- background-color: rgb(255, 218, 178);
423
- display: block;
424
- }
425
- span.run87 {
426
- background-color: rgb(255, 215, 178);
427
- display: block;
428
- }
429
- span.run88 {
430
- background-color: rgb(255, 212, 178);
431
- display: block;
432
- }
433
- span.run89 {
434
- background-color: rgb(255, 210, 178);
435
- display: block;
436
- }
437
- span.run90 {
438
- background-color: rgb(255, 206, 178);
439
- display: block;
440
- }
441
- span.run91 {
442
- background-color: rgb(255, 204, 178);
443
- display: block;
444
- }
445
- span.run92 {
446
- background-color: rgb(255, 201, 178);
447
- display: block;
448
- }
449
- span.run93 {
450
- background-color: rgb(255, 198, 178);
451
- display: block;
452
- }
453
- span.run94 {
454
- background-color: rgb(255, 196, 178);
455
- display: block;
456
- }
457
- span.run95 {
458
- background-color: rgb(255, 192, 178);
459
- display: block;
460
- }
461
- span.run96 {
462
- background-color: rgb(255, 189, 178);
463
- display: block;
464
- }
465
- span.run97 {
466
- background-color: rgb(255, 187, 178);
467
- display: block;
468
- }
469
- span.run98 {
470
- background-color: rgb(255, 184, 178);
471
- display: block;
472
- }
473
- span.run99 {
474
- background-color: rgb(255, 182, 178);
475
- display: block;
476
- }
477
- span.run100 {
478
- background-color: rgb(255, 178, 178);
479
- display: block;
480
- }
481
- </style></head><body><h3>C0 code coverage information generated on Thu Jul 20 18:17:28 CEST 2006</h3><hr /><pre><span class='marked'>Marked code looks like this.
482
- This line is also marked as covered.
483
- </span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this.
484
- </span><span class='false'>Finally, here&apos;s a line marked as not executed.
485
- </span></pre> <table class='report'>
486
- <thead>
487
- <tr>
488
- <td class='heading'>Name</td>
489
- <td class='heading'>Total lines</td>
490
- <td class='heading'>Lines of code</td>
491
- <td class='heading'>Total coverage</td>
492
- <td class='heading'>Code coverage</td>
493
- </tr>
494
- </thead>
495
- <tbody>
496
- <tr>
497
- <td>
498
- <a href='lib-icalendar-calendar_rb.html'>lib/icalendar/calendar.rb</a>
499
- </td>
500
- <td class='value'>
501
- <tt>91</tt>
502
- </td>
503
- <td class='value'>
504
- <tt>91</tt>
505
- </td>
506
- <td>
507
- <table cellspacing='0' cellpadding='0' align='right'>
508
- <tr>
509
- <td>
510
- <tt>53.8%</tt>&nbsp;</td>
511
- <td>
512
- <table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
513
- <tr>
514
- <td class='covered' width='54' />
515
- <td class='uncovered' width='46' />
516
- </tr>
517
- </table>
518
- </td>
519
- </tr>
520
- </table>
521
- </td>
522
- <td>
523
- <table cellspacing='0' cellpadding='0' align='right'>
524
- <tr>
525
- <td>
526
- <tt>46.4%</tt>&nbsp;</td>
527
- <td>
528
- <table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
529
- <tr>
530
- <td class='covered' width='46' />
531
- <td class='uncovered' width='54' />
532
- </tr>
533
- </table>
534
- </td>
535
- </tr>
536
- </table>
537
- </td>
538
- </tr>
539
- </tbody>
540
- </table><pre><span class="false"> 1 =begin
541
- 2 Copyright (C) 2005 Jeff Rose
542
- 3
543
- 4 This library is free software; you can redistribute it and/or modify it
544
- 5 under the same terms as the ruby language itself, see the file COPYING for
545
- 6 details.
546
- 7 =end
547
- </span><span class="marked"> 8
548
- 9 module Icalendar
549
- 10
550
- 11 class Calendar &lt; Component
551
- 12 ical_component :events, :todos, :journals, :freebusys, :timezones
552
- 13
553
- 14 ical_property :calscale, :calendar_scale
554
- 15 ical_property :prodid, :product_id
555
- 16 ical_property :version
556
- 17 ical_property :ip_method
557
- 18
558
- 19 def initialize()
559
- 20 super(&quot;VCALENDAR&quot;)
560
- 21
561
- 22 # Set some defaults
562
- 23 self.calscale = &quot;GREGORIAN&quot; # Who knows, but this is the only one in the spec.
563
- 24 self.prodid = &quot;iCalendar-Ruby&quot; # Current product... Should be overwritten
564
- 25 self.version = &quot;2.0&quot; # Version of the specification
565
- 26 end
566
- 27
567
- 28 def event(&amp;block)
568
- 29 e = Event.new
569
- 30 self.add_component e
570
- 31
571
- 32 @@logger.debug(&quot;Starting event block eval...&quot;)
572
- 33 e.instance_eval &amp;block if block
573
- 34 @@logger.debug(&quot;Finished eval...&quot;)
574
- 35
575
- 36 e
576
- 37 end
577
- 38
578
- 39 def todo(&amp;block)
579
- </span><span class="false">40 e = Todo.new
580
- 41 self.add_component e
581
- 42
582
- 43 e.instance_eval &amp;block if block
583
- 44
584
- 45 e
585
- 46 end
586
- </span><span class="marked">47
587
- 48 def journal(&amp;block)
588
- </span><span class="false">49 e = Journal.new
589
- 50 self.add_component e
590
- 51
591
- 52 e.instance_eval &amp;block if block
592
- 53
593
- 54 e
594
- 55 end
595
- </span><span class="marked">56
596
- 57 def freebusy(&amp;block)
597
- </span><span class="false">58 e = Freebusy.new
598
- 59 self.add_component e
599
- 60
600
- 61 e.instance_eval &amp;block if block
601
- 62
602
- 63 e
603
- 64 end
604
- </span><span class="marked">65
605
- 66 def timezone(&amp;block)
606
- </span><span class="false">67 e = Timezone.new
607
- 68 self.add_component e
608
- 69
609
- 70 e.instance_eval &amp;block if block
610
- 71
611
- 72 e
612
- 73 end
613
- </span><span class="marked">74
614
- 75 # The &quot;PUBLISH&quot; method in a &quot;VEVENT&quot; calendar component is an
615
- 76 # unsolicited posting of an iCalendar object. Any CU may add published
616
- 77 # components to their calendar. The &quot;Organizer&quot; MUST be present in a
617
- 78 # published iCalendar component. &quot;Attendees&quot; MUST NOT be present. Its
618
- 79 # expected usage is for encapsulating an arbitrary event as an
619
- 80 # iCalendar object. The &quot;Organizer&quot; may subsequently update (with
620
- 81 # another &quot;PUBLISH&quot; method), add instances to (with an &quot;ADD&quot; method),
621
- 82 # or cancel (with a &quot;CANCEL&quot; method) a previously published &quot;VEVENT&quot;
622
- 83 # calendar component.
623
- 84 def publish
624
- </span><span class="false">85 ip_method = &quot;PUBLISH&quot;
625
- 86
626
- 87 end
627
- 88
628
- 89 end # class Calendar
629
- 90
630
- 91 end # module Icalendar
631
- </span></pre><hr /><p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88' /></a><a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' /></a></p></body></html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">