icalendar 1.0 → 1.0.1

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 (125) hide show
  1. data/Rakefile +1 -1
  2. data/lib/icalendar/component/event.rb +1 -1
  3. data/lib/icalendar/component/journal.rb +1 -1
  4. data/test/conversions_test.rb +2 -2
  5. data/test/fixtures/folding.ics +1 -1
  6. metadata +2 -155
  7. data/docs/api/classes/Array.html +0 -146
  8. data/docs/api/classes/Array.src/M000002.html +0 -18
  9. data/docs/api/classes/Date.html +0 -139
  10. data/docs/api/classes/Date.src/M000004.html +0 -29
  11. data/docs/api/classes/DateTime.html +0 -139
  12. data/docs/api/classes/DateTime.src/M000005.html +0 -50
  13. data/docs/api/classes/Fixnum.html +0 -139
  14. data/docs/api/classes/Fixnum.src/M000011.html +0 -18
  15. data/docs/api/classes/Float.html +0 -139
  16. data/docs/api/classes/Float.src/M000003.html +0 -18
  17. data/docs/api/classes/HashAttrs.html +0 -167
  18. data/docs/api/classes/HashAttrs.src/M000070.html +0 -26
  19. data/docs/api/classes/HashAttrs.src/M000071.html +0 -27
  20. data/docs/api/classes/HashAttrs.src/M000072.html +0 -19
  21. data/docs/api/classes/Icalendar/Alarm.html +0 -230
  22. data/docs/api/classes/Icalendar/Alarm.src/M000021.html +0 -22
  23. data/docs/api/classes/Icalendar/Base.html +0 -161
  24. data/docs/api/classes/Icalendar/Base.src/M000022.html +0 -18
  25. data/docs/api/classes/Icalendar/Base.src/M000023.html +0 -18
  26. data/docs/api/classes/Icalendar/Calendar.html +0 -366
  27. data/docs/api/classes/Icalendar/Calendar.src/M000056.html +0 -23
  28. data/docs/api/classes/Icalendar/Calendar.src/M000057.html +0 -23
  29. data/docs/api/classes/Icalendar/Calendar.src/M000058.html +0 -18
  30. data/docs/api/classes/Icalendar/Calendar.src/M000059.html +0 -23
  31. data/docs/api/classes/Icalendar/Calendar.src/M000060.html +0 -18
  32. data/docs/api/classes/Icalendar/Calendar.src/M000061.html +0 -23
  33. data/docs/api/classes/Icalendar/Calendar.src/M000062.html +0 -18
  34. data/docs/api/classes/Icalendar/Calendar.src/M000063.html +0 -23
  35. data/docs/api/classes/Icalendar/Calendar.src/M000064.html +0 -18
  36. data/docs/api/classes/Icalendar/Calendar.src/M000065.html +0 -23
  37. data/docs/api/classes/Icalendar/Calendar.src/M000066.html +0 -19
  38. data/docs/api/classes/Icalendar/Component.html +0 -559
  39. data/docs/api/classes/Icalendar/Component.src/M000029.html +0 -22
  40. data/docs/api/classes/Icalendar/Component.src/M000030.html +0 -24
  41. data/docs/api/classes/Icalendar/Component.src/M000035.html +0 -22
  42. data/docs/api/classes/Icalendar/Component.src/M000040.html +0 -18
  43. data/docs/api/classes/Icalendar/Component.src/M000041.html +0 -24
  44. data/docs/api/classes/Icalendar/Component.src/M000042.html +0 -28
  45. data/docs/api/classes/Icalendar/Component.src/M000043.html +0 -52
  46. data/docs/api/classes/Icalendar/Component.src/M000044.html +0 -37
  47. data/docs/api/classes/Icalendar/Component.src/M000045.html +0 -18
  48. data/docs/api/classes/Icalendar/Component.src/M000046.html +0 -18
  49. data/docs/api/classes/Icalendar/Component.src/M000047.html +0 -18
  50. data/docs/api/classes/Icalendar/Component.src/M000048.html +0 -18
  51. data/docs/api/classes/Icalendar/Component.src/M000049.html +0 -25
  52. data/docs/api/classes/Icalendar/Component.src/M000050.html +0 -29
  53. data/docs/api/classes/Icalendar/Component.src/M000051.html +0 -19
  54. data/docs/api/classes/Icalendar/Component.src/M000052.html +0 -22
  55. data/docs/api/classes/Icalendar/DateProp.html +0 -177
  56. data/docs/api/classes/Icalendar/DateProp.src/M000013.html +0 -19
  57. data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +0 -138
  58. data/docs/api/classes/Icalendar/DateProp/ClassMethods.src/M000014.html +0 -66
  59. data/docs/api/classes/Icalendar/Daylight.html +0 -147
  60. data/docs/api/classes/Icalendar/Daylight.src/M000053.html +0 -18
  61. data/docs/api/classes/Icalendar/Event.html +0 -611
  62. data/docs/api/classes/Icalendar/Event.src/M000054.html +0 -23
  63. data/docs/api/classes/Icalendar/Event.src/M000055.html +0 -23
  64. data/docs/api/classes/Icalendar/Freebusy.html +0 -249
  65. data/docs/api/classes/Icalendar/Freebusy.src/M000067.html +0 -21
  66. data/docs/api/classes/Icalendar/Geo.html +0 -192
  67. data/docs/api/classes/Icalendar/Geo.src/M000024.html +0 -19
  68. data/docs/api/classes/Icalendar/Geo.src/M000025.html +0 -18
  69. data/docs/api/classes/Icalendar/InvalidPropertyValue.html +0 -117
  70. data/docs/api/classes/Icalendar/Journal.html +0 -430
  71. data/docs/api/classes/Icalendar/Journal.src/M000016.html +0 -22
  72. data/docs/api/classes/Icalendar/Parameter.html +0 -148
  73. data/docs/api/classes/Icalendar/Parameter.src/M000068.html +0 -27
  74. data/docs/api/classes/Icalendar/Parser.html +0 -271
  75. data/docs/api/classes/Icalendar/Parser.src/M000017.html +0 -32
  76. data/docs/api/classes/Icalendar/Parser.src/M000018.html +0 -43
  77. data/docs/api/classes/Icalendar/Parser.src/M000019.html +0 -33
  78. data/docs/api/classes/Icalendar/Standard.html +0 -147
  79. data/docs/api/classes/Icalendar/Standard.src/M000015.html +0 -18
  80. data/docs/api/classes/Icalendar/Timezone.html +0 -351
  81. data/docs/api/classes/Icalendar/Timezone.src/M000026.html +0 -19
  82. data/docs/api/classes/Icalendar/Timezone.src/M000027.html +0 -24
  83. data/docs/api/classes/Icalendar/Timezone.src/M000028.html +0 -18
  84. data/docs/api/classes/Icalendar/Todo.html +0 -467
  85. data/docs/api/classes/Icalendar/Todo.src/M000020.html +0 -22
  86. data/docs/api/classes/Icalendar/UnknownComponentClass.html +0 -117
  87. data/docs/api/classes/Icalendar/UnknownPropertyMethod.html +0 -117
  88. data/docs/api/classes/Object.html +0 -223
  89. data/docs/api/classes/Object.src/M000006.html +0 -20
  90. data/docs/api/classes/Object.src/M000007.html +0 -18
  91. data/docs/api/classes/Object.src/M000008.html +0 -20
  92. data/docs/api/classes/Object.src/M000009.html +0 -18
  93. data/docs/api/classes/Object.src/M000010.html +0 -18
  94. data/docs/api/classes/String.html +0 -139
  95. data/docs/api/classes/String.src/M000012.html +0 -18
  96. data/docs/api/classes/Time.html +0 -139
  97. data/docs/api/classes/Time.src/M000001.html +0 -37
  98. data/docs/api/classes/URI.html +0 -111
  99. data/docs/api/classes/URI/Generic.html +0 -139
  100. data/docs/api/classes/URI/Generic.src/M000069.html +0 -18
  101. data/docs/api/created.rid +0 -1
  102. data/docs/api/files/COPYING.html +0 -163
  103. data/docs/api/files/GPL.html +0 -531
  104. data/docs/api/files/README.html +0 -266
  105. data/docs/api/files/lib/hash_attrs_rb.html +0 -107
  106. data/docs/api/files/lib/icalendar/base_rb.html +0 -108
  107. data/docs/api/files/lib/icalendar/calendar_rb.html +0 -101
  108. data/docs/api/files/lib/icalendar/component/alarm_rb.html +0 -101
  109. data/docs/api/files/lib/icalendar/component/event_rb.html +0 -101
  110. data/docs/api/files/lib/icalendar/component/freebusy_rb.html +0 -101
  111. data/docs/api/files/lib/icalendar/component/journal_rb.html +0 -101
  112. data/docs/api/files/lib/icalendar/component/timezone_rb.html +0 -101
  113. data/docs/api/files/lib/icalendar/component/todo_rb.html +0 -101
  114. data/docs/api/files/lib/icalendar/component_rb.html +0 -108
  115. data/docs/api/files/lib/icalendar/conversions_rb.html +0 -109
  116. data/docs/api/files/lib/icalendar/helpers_rb.html +0 -101
  117. data/docs/api/files/lib/icalendar/parameter_rb.html +0 -101
  118. data/docs/api/files/lib/icalendar/parser_rb.html +0 -110
  119. data/docs/api/files/lib/icalendar_rb.html +0 -120
  120. data/docs/api/files/lib/meta_rb.html +0 -107
  121. data/docs/api/fr_class_index.html +0 -56
  122. data/docs/api/fr_file_index.html +0 -45
  123. data/docs/api/fr_method_index.html +0 -98
  124. data/docs/api/index.html +0 -24
  125. data/docs/api/rdoc-style.css +0 -208
@@ -1,266 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: README</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>README</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>README
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Thu Jul 20 21:24:55 +0200 2006</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
- <div id="description">
72
- <h1>iCalendar &#8212; Internet calendaring, Ruby style</h1>
73
- <p>
74
- This is a Ruby library for dealing with iCalendar files. Rather than
75
- explaining myself, here is the introduction from RFC-2445, which defines
76
- the format:
77
- </p>
78
- <p>
79
- The use of calendaring and scheduling has grown considerably in the last
80
- decade. Enterprise and inter-enterprise business has become dependent on
81
- rapid scheduling of events and actions using this information technology.
82
- However, the longer term growth of calendaring and scheduling, is currently
83
- limited by the lack of Internet standards for the message content types
84
- that are central to these knowledgeware applications. This memo is intended
85
- to progress the level of interoperability possible between dissimilar
86
- calendaring and scheduling applications. This memo defines a MIME content
87
- type for exchanging electronic calendaring and scheduling information. The
88
- Internet Calendaring and Scheduling Core <a
89
- href="../classes/Object.html">Object</a> Specification, or iCalendar,
90
- allows for the capture and exchange of information normally stored within a
91
- calendaring and scheduling application; such as a Personal Information
92
- Manager (PIM) or a Group Scheduling product.
93
- </p>
94
- <p>
95
- The iCalendar format is suitable as an exchange format between applications
96
- or systems. The format is defined in terms of a MIME content type. This
97
- will enable the object to be exchanged using several transports, including
98
- but not limited to SMTP, HTTP, a file system, desktop interactive protocols
99
- such as the use of a memory- based clipboard or drag/drop interactions,
100
- point-to-point asynchronous communication, wired-network transport, or some
101
- form of unwired transport such as infrared might also be used.
102
- </p>
103
- <p>
104
- Now for some examples:
105
- </p>
106
- <p>
107
- ## Probably want to start with this
108
- </p>
109
- <pre>
110
- require 'rubygems' # Unless you install from the tarball or zip.
111
- require 'icalendar'
112
- require 'date'
113
-
114
- include Icalendar # Probably do this in your class to limit namespace overlap
115
- </pre>
116
- <p>
117
- ## Creating calendars and events is easy.
118
- </p>
119
- <pre>
120
- # Create a calendar with an event (standard method)
121
- cal = Calendar.new
122
- cal.event do
123
- dtstart Date.new(2005, 04, 29)
124
- dtend Date.new(2005, 04, 28)
125
- summary &quot;Meeting with the man.&quot;
126
- description &quot;Have a long lunch meeting and decide nothing...&quot;
127
- klass &quot;PRIVATE&quot;
128
- end
129
- </pre>
130
- <p>
131
- ## Or you can make events like this
132
- </p>
133
- <pre>
134
- event = Event.new
135
- event.start = DateTime.civil(2006, 6, 23, 8, 30)
136
- event.summary = &quot;A great event!&quot;
137
- cal.add_event(event)
138
-
139
- event2 = cal.event # This automatically adds the event to the calendar
140
- event2.start = DateTime.civil(2006, 6, 24, 8, 30)
141
- event2.summary = &quot;Another great event!&quot;
142
-
143
- # Now with support for property parameters
144
- params = {&quot;ALTREP&quot; =&gt;['&quot;http://my.language.net&quot;'], &quot;LANGUAGE&quot; =&gt; [&quot;SPANISH&quot;]}
145
-
146
- cal.event do
147
- dtstart Date.new(2005, 04, 29)
148
- dtend Date.new(2005, 04, 28)
149
- summary &quot;This is a summary with params.&quot;, params
150
- end
151
-
152
- # We can output the calendar as a string to write to a file,
153
- # network port, database etc.
154
- cal_string = cal.to_ical
155
- puts cal_string
156
- </pre>
157
- <h2>Parsing iCalendars:</h2>
158
- <pre>
159
- # Open a file or pass a string to the parser
160
- cal_file = File.open(&quot;single_event.ics&quot;)
161
-
162
- # Parser returns an array of calendars because a single file
163
- # can have multiple calendars.
164
- cals = Icalendar.parse(cal_file)
165
- cal = cals.first
166
-
167
- # Now you can access the cal object in just the same way I created it
168
- event = cal.events.first
169
-
170
- puts &quot;start date-time: &quot; + event.dtstart
171
- puts &quot;summary: &quot; + event.summary
172
- </pre>
173
- <h2>Finders:</h2>
174
- <p>
175
- Often times in web apps and other interactive applications you&#8216;ll
176
- need to lookup items in a calendar to make changes or get details. Now you
177
- can find everything by the unique id automatically associated with all
178
- components.
179
- </p>
180
- <pre>
181
- cal = Calendar.new
182
- 10.times { cal.event } # Create 10 events with only default data.
183
- some_event = cal.events[5] # Grab it from the array of events
184
-
185
- # Use the uid as the key in your app
186
- key = some_event.uid
187
-
188
- # so later you can find it.
189
- same_event = cal.find_event(key)
190
- </pre>
191
- <h2>Examples:</h2>
192
- <p>
193
- Check the unit tests for examples of most things you&#8216;ll want to do,
194
- but please send me example code or let me know what&#8216;s missing.
195
- </p>
196
- <h2>Download</h2>
197
- <p>
198
- The latest release version of this library can be found at
199
- </p>
200
- <ul>
201
- <li><a
202
- href="http://rubyforge.org/projects/icalendar">rubyforge.org/projects/icalendar</a>/
203
-
204
- </li>
205
- </ul>
206
- <p>
207
- Documentation can be found at
208
- </p>
209
- <ul>
210
- <li><a href="http://icalendar.rubyforge.org">icalendar.rubyforge.org</a>/
211
-
212
- </li>
213
- </ul>
214
- <h2>Installation</h2>
215
- <p>
216
- It&#8216;s all about rubygems:
217
- </p>
218
- <p>
219
- $ sudo gem install icalendar
220
- </p>
221
- <h2>License</h2>
222
- <p>
223
- This library is released under the same license as Ruby itself.
224
- </p>
225
- <h2>Support &amp; Contributions</h2>
226
- <p>
227
- The iCalendar library homepage is <a
228
- href="http://icalendar.rubyforge.org">icalendar.rubyforge.org</a>/
229
- </p>
230
- <p>
231
- There is an icalendar-devel@rubyforge.org mailing list that can be used for
232
- asking questions, making comments or submitting patches.
233
- </p>
234
-
235
- </div>
236
-
237
-
238
- </div>
239
-
240
-
241
- </div>
242
-
243
-
244
- <!-- if includes -->
245
-
246
- <div id="section">
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
- <!-- if method_list -->
256
-
257
-
258
- </div>
259
-
260
-
261
- <div id="validator-badges">
262
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
263
- </div>
264
-
265
- </body>
266
- </html>
@@ -1,107 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: hash_attrs.rb</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>hash_attrs.rb</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>lib/hash_attrs.rb
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Wed Apr 26 10:57:42 +0200 2006</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
- <div id="description">
72
- <p>
73
- A module which adds some generators for hash based accessors.
74
- </p>
75
-
76
- </div>
77
-
78
-
79
- </div>
80
-
81
-
82
- </div>
83
-
84
-
85
- <!-- if includes -->
86
-
87
- <div id="section">
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- <!-- if method_list -->
97
-
98
-
99
- </div>
100
-
101
-
102
- <div id="validator-badges">
103
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
104
- </div>
105
-
106
- </body>
107
- </html>
@@ -1,108 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: base.rb</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>base.rb</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>lib/icalendar/base.rb
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Thu Jun 29 17:55:31 +0200 2006</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
-
72
- <div id="requires-list">
73
- <h3 class="section-bar">Required files</h3>
74
-
75
- <div class="name-list">
76
- logger&nbsp;&nbsp;
77
- </div>
78
- </div>
79
-
80
- </div>
81
-
82
-
83
- </div>
84
-
85
-
86
- <!-- if includes -->
87
-
88
- <div id="section">
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
- <!-- if method_list -->
98
-
99
-
100
- </div>
101
-
102
-
103
- <div id="validator-badges">
104
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
105
- </div>
106
-
107
- </body>
108
- </html>