updated for 4.7.0 release
[xboard.git] / whats_new / 4.7.0 / index.html
1 <!--#include virtual="/server/html5-header.html" -->
2 <title>XBoard - GNU Project - Free Software Foundation - NEWS</title>
3 <!--#include virtual="/server/banner.html" -->
4 <!--#set var="article_name" value="/server/standards/boilerplate" -->
5 <!--#include virtual="/server/gnun/initial-translations-list.html" -->
6
7 <h2>What is new in WinBoard / XBoard 4.7.0?</h2>
8 <table cellpadding="20"><tbody><tr valign="top"><td>
9
10 <h3>So far the development version has:</h3>
11
12 <h3>Interactive Analysis</h3>
13 <ul><li>
14 <a href="#tag-A1">Excluding analysis moves</a>
15 </li><li>
16 <a href="#tag-A3">Keeping track of what was excluded</a>
17 </li><li>
18 <a href="#tag-A2">Assigning analysis scores by hand</a>
19 </li><li>
20 <a href="#tag-A6">Analyzing with two engines</a>
21 </li><li>
22 <a href="#tag-A7">Annotating an entire muti-game file</a>
23 </li></ul>
24
25 <h3>Other New Functionality</h3>
26 <ul><li>
27 <a href="#tag-A4">Displaying player logos in XBoard</a>
28 </li><li>
29 <a href="#tag-A5">Chat boxes for XBoard</a>
30 </li><li>
31 <a href="#tag-B9">Narrowing down a position search</a>
32 </li><li>
33 <a href="#tag-B8">Copying pieces when editing a position</a>
34 </li><li>
35 <a href="#tag-A8">Starting WinBoard through drag & drop</a>
36 </li><li>
37 <a href="#tag-A9">Recalling configured engines and ICS from the command line</a>
38 </li></ul>
39
40 <h3>Interface Improvements</h3>
41 <ul><li>
42 <a href="#tag-B1">Scrolling listboxes</a>
43 </li><li>
44 <a href="#tag-B2">Tabbing through dialogs</a>
45 </li><li>
46 <a href="#tag-B6">List boxes for engine selection</a>
47 </li><li>
48 <a href="#tag-B7">Grouping engines</a>
49 </li><li>
50 <a href="#tag-B4">A separate board window for observing ICS games</a>
51 </li><li>
52 <a href="#tag-B3">Adding graphics to the repertoire of the dialog creator</a>
53 </li><li>
54 <a href="#tag-B5">A rejuvenated file browser</a>
55 </li></ul>
56
57 </td><td>
58
59 <img src="../4.5.0/winboardF.png">
60   <p>
61     <a href="../4.7.0/index.html">Follow-up</a>
62   </p>
63   <p>
64     <a href="../4.6.2/index.html">Preceding (bugfix) release (4.6.2)</a>
65   </p>
66   <p>
67     <a href="../4.6.0/index.html">Preceding release (4.6.0)</a>
68   </p>
69   <p>
70     <a href="http://hgm.nubati.net/news.html">Experimental and future stuff</a>
71   </p>
72 </td></tr></tbody></table>
73
74 <table cellpadding="20"><tr><td valign="top">
75 <h3><a name="tag-A1">Excluding moves from an analysis</a></h3>
76 <p>
77 Some engines allow the user to restrict the moves searched in the root position to a subset of all legal moves.
78 XBoard now provides an interface for the user to indicate which moves should be excluded.
79 The method used is to enter the move starting with a double-click on the piece.
80 So either double-click from-square, and then click to-square,
81 or grab the piece with a double-click,
82 and then drag it to the to-square before you release for the second time.
83 In the latter case there will be an visual cue to remind you that you are not really making the move,
84 namely that the piece you start dragging will also remain on the from-square.
85 </p>
86 <p>
87 The first time you make a move that way in analysis mode, 
88 it will be excluded from the analysis of the current position.
89 A new command had to be added to WB protocol to make this possible,
90 and that command ("exclude MOVE") will be sent to the engine.
91 The move will be highlighted in premove highlight colors (normally red).
92 When you enter an excluded move in the double-click way again,
93 its exclusion is cancelled (through sending "include MOVE" to the engine),
94 and the move will remain highlighted in the normal highlight color (yellow).
95 </p>
96 <p>
97
98 You can currently also exclude all moves but the best at once by
99 double-click dragging a piece (vertically) off board.
100 This is not likely to stay;
101 the final version of this feature will probaly provide another method for this.
102 </p>
103 </td><td valign="top">
104 <img src="exclude.png">
105 </td></tr></table>
106
107 <h3><a name="tag-A3">The 'exclude' header in the engine-output window</a></h3>
108 During analysis there now is an extra header line in the engine Output window,
109 which lists the moves that have been included from analysis, with a '-' sign in front of them.
110 By right-clicking these moves, they get re-included, and the '-' changes into a '+'.
111 They do stay listed, (as long as you remain in the position), so you can easily
112 toggle their exclusion state this way.
113 </p>
114 <table cellpadding="20"><tr><td valign="top">
115 <img src="ExcluHeader.png">
116 </td><td valign="top">
117 <p>
118 The exclude header always also contains the items 'none', and 'best',
119 which you can right-click to completely reset the exclusion list,
120 or exclude the current best move (i.e. the first move of the latest reported PV), respectively.
121 Finally, a pseudo-move 'tail', representing all moves not listed explicitly in the header,
122 is always shown as well.
123 It excludes or includes all these remaining moves.
124 a special case is when clicking it would result in no moves being included at all;
125 in that case the current best move will remain included.
126 <p>
127
128 </p>
129 </td></tr></table>
130
131 <h3><a name="tag-A2">Defining the score of a given position by hand</a></h3>
132 <p>
133 A new WB protocol command "setscore SCORE DEPTH" has been defined,
134 which can be used to set the score an engine should use for a given position by hand.
135 Currently XBoard does not use this yet,
136 but the intention is to allow the user to use the Adjudicate items in the Action menu
137 to define the current position as a win, loss or draw.
138 </p>
139
140 <h3><a name="tag-A4">Displaying logos for the playing engines</a></h3>
141 <p>
142 Like WinBoard, XBoard now also has the possibility to display player logos next to the clocks.
143 To enable this feature, an option -logoSize was added to XBoard.
144 This specifies the width (in pixels) of the logo pixmaps.
145 (The height is always assumed to be half the width.)
146 When the value of this option differs from the default 0, and is not more than 1/4 of the board width,
147 XBoard creates space for the logos, by displaying the clocks as two lines.
148 Commonly used logo sizes are 100 x 50 or 130 x 65.
149 </p>
150 <table cellpadding="20"><tr><td valign="top">
151 <p>
152 Like in WinBoard, a new boolean option -autoLogo causes XBoard to automatically look for logos corresponding
153 to the playing engine, human player, or the ICS to which you are connected.
154 Unlike WinBoard, you can specify a directory where XBoard looks for the logos, with the new -logoDir option.
155 All these options are persistent.
156 The name of the logo files must be the 'tidy name' of the engine (also used as mnemonic in the Load Engine dialog),
157 or the domain name of the ICS, or user name of the human, suffixed by .xpm,
158 for XBoard to recognize them under -autoLogo.
159 The logos can also be specified explicitly (overruling the -autoLogo choice),
160 with the volatile options -firstLogo, -secondLogo.
161 </p>
162 </td><td valign="top">
163 <img src="Logos.png">
164 </td></tr></table>
165
166 <h3><a name="tag-A5">Conducting chats in separate windows</a></h3>
167 <p>
168 XBoard now has chat facilities a bit similar to WinBoard's chat boxes.
169 Only difference is that there is only a single window to contain all chats (upto 5),
170 which cannot be 'unstacked' to see the chats side by side.
171 You can only see the 'foreground chat',
172 with the person (or channel) that is written in the chat-partner field at the upper left.
173 The other chats are only represented by buttons in the top row.
174 If there are messages in those chats you have not seen yet, the corresponding button turns orange.
175 </p>
176 <table cellpadding="20"><tr><td valign="top">
177 <img src="ChatBox.png">
178 </td><td valign="top">
179 <p>
180 Clicking a button moves the handle (or channel) it mentioned to the chat-partner field,
181 so that the corresponding chat becomes foreground, and rearranges the buttons.
182 You can then type to that person or channel (or shout, or whisper) without having to prefix the messages with 'tell ...', 'shout' or whatever.
183 XBoard will do this for you, depending on what is in the chat-partner field.
184 At any time you can change the content of that field (terminated by &lt;Enter>!),
185 to change with who you are chatting.
186 This is also the way to create new, simultaneous chats:
187 initially all buttons are blank; just select one 
188 (so the chat-partner field gets cleared, and the old partner moves to one of the buttons),
189 type a new handle there, and you can chat to that person.
190 </p>
191 </td></tr></table>
192
193 <table cellpadding="20" valign="top"><tr><td>
194 <h3><a name="tag-B1">Listboxes in XBoard dialogs</a></h3>
195 <p>
196 There were two XBoard dialogs that used listboxes:
197 the game-list window, and the game-list options dialog.
198 The first of those was more complex, because it could grow very big,
199 and was thus mounted inside a 'viewport', enabling the user to scroll through it.
200 </p><p>
201 The code for viewport + listbox has now been incorporated into the generic popup,
202 by creation of a new option type 'ListBox'.
203 As a result, these windows can now be generated by this dialog creator too,
204 meaning that they can also draw on all features this creator already supported.
205 But, even more importantly, it makes it trivial for other dialogs to use listboxes as well.
206 The code has been a bit augmented as well:
207 a callback has been added to allow vertical scrolling of such generically generated listboxes with the mouse wheel.
208 This scrolling can also be activated from the code,
209 which is now used in the game list to always keep the selected item in view.
210 </p>
211 </td><td>
212 <img src="NewerGameList.png">
213 </td></tr></table>
214
215 <h3><a name="tag-B9">Selecting games on multiple characteristics</a></h3>
216 <p>
217 There are three ways to select a subset from the game list:
218 you can filter on a substring of the header lines (e.g. a player name),
219 set thresholds for Elo and date in the Load Game dialog,
220 or select on a position occurring in the game.
221 All three methods can be used simultaneously.
222 But sometimes you might want to select based on two positions.
223 This can now be done with the new 'narrow' button in the game list:
224 unlike 'find position', which starts a search with a clean slate
225 (taking text and Elo/date filters into account),
226 this only selects from games that were already selected in the list.
227 This way you can select for position after position,
228 e.g. games that started with 1.e4 (using 'exact match'),
229 where white castled Q-side (in 'subset mode' with only Kc1 and Rd1 on the board),
230 black castled K-side (again subset mode, with Kg8, Rf8 on an otherwise bare board),
231 and ended in a Rook ending (in 'material range' mode with KRKR on the lower board half,
232 and all Pawns on the upper board half).
233 After using 'narrow' three times (after the initial 'fiind position',
234 you are left with only the games that satisfied all these conditions.
235 </p>
236
237 <h3><a name="tag-B2">Jumping from text-edit to text-edit</a></h3>
238 <p>
239 Another improvement of the dialogs generated by the generic dialog creator
240 is that text-edits now interpret a &lt;Tab> character typed by the user as the command to transfer focus
241 to the next text-edit of the dialog.
242 This allows you to avoid the annoying switching between keyboard and mouse when completing the info of a large dialog,
243 like Match Options.
244 </p>
245
246 <h3><a name="tag-B3">The Engine Output and Eval Graph redone by generic popup</a></h3>
247 <p>
248 The program code for the XBoard user interface has been extensively rewritten,
249 so that all dialogs, including the main board, are now managed by a completely general
250 'generic popup' routine, whih is entirely table driven.
251 Many of the specific improvements listed here are a consequence of this,
252 and the ease with which listboxes and graphical elements can be added to dialogs
253 will no doubt enable many future improvements.
254 In addition it should make it much easier to port XBoard to other platforms.
255 </p>
256
257 <table cellpadding="20"><tr><td valign="top">
258 <h3><a name="tag-B6">Using listboxes for engine selection</a></h3>
259 <img src="MatchList.png">
260 </td><td valign="top">
261 <img src="LoadList.png">
262 </td></tr></table>
263 <p>
264 The comboboxes for selecting engines in the Load Engine and Match Options dialogs have been replaced by listboxes.
265 This allows faster selection of the engines, because you don't have to open the comboboxes first.
266 The latter was especially annoying when you needed to select a number of consecutive items from a long list for a tourney:
267 you would have to reposition to where you were for each engine you added.
268 Now you simply double-click the engines, without the mouse pointer having to move elsewhere in between.
269 There are now also separate dialogs for loading first and second engine,
270 so the combobox to choose this could be removed,
271 as you already make the choice by selecting the appropriate dialog from the menu, without extra mouse click.
272 </p>
273
274 <table cellpadding="20"><tr><td valign="top">
275 <img src="MatchGroup.png">
276 </td><td valign="top">
277 <h3><a name="tag-B7">Structuring the engine list</a></h3>
278 <p>
279 Grouping of engines is now also possible in XBoard.
280 The fact that the engines are presented in listboxes makes this extra handy.
281 Just double-click a group to see it open, with its name displayed as header,
282 and click on that header to close it again, and go back to the 'root' list.
283 As with WinBoard, the engines in a group are dlimited by lines
284 "# GROUP NAME" and "# end" in the engine list.
285 </p>
286 </td></tr></table>
287
288 <table cellpadding="20"><tr><td valign="top">
289 <h3><a name="tag-B4">Observing another ICS game in a second window</a></h3>
290 <p>
291 The main window is rather complex, not so much because of its layout and the type of widgets it contains,
292 but because the widgets have all kinds of activity on clicking.
293 In particular there are the pull-down menus of the menu bar, 
294 and various pop-up context menus on clicking the board (piece menu, drop menu).
295 The generic dialog creator already contained code to generate menus, though, for ComboBox options,
296 and the control elements for those are nothing but a one-menu menu bar, with a text-string written in front of it.
297 This code was easy to re-use to do the main menu bar, as well as for creating pop-up menus.
298 A new level of organization makes it possible to 'box' the menu buttons (or other controls) into a menu bar
299 (which is also used for the button bar).
300 </p><p>
301 The fact that the board can now be handled by XBoard's generic popup made it easy to add a second board window.
302 So with the ICS options 'Background Observe' and 'Dual Board' both on,
303 a game you are observing next to the game you are playing will now be displayed in a separate window,
304 rather than side-by-side with your own game in a single, double-width window.
305 The new window also contains its own clock and message field.
306 (But no menus or button bar, and it will also not react to any clicking on it.)
307 </p>
308 </td><td valign="top">
309 <img src="DualPopup.png">
310 </td></tr></table>
311
312 <table cellpadding="20"><tr><td valign="top">
313 <img src="NewBrowser.png">
314 </td><td valign="top">
315 <h3><a name="tag-B5">The file browser rewritten</a></h3>
316 <p>
317 XBoard so far relied on a file browser borrowed from GhostView, 
318 which was of a bit peculiar design,
319 while the adaptations made in it to interface it to XBoard had made it a bit flaky.
320 The file browser therefore has been completely rewritten,
321 using XBoard's generic dialog generator, and its newly supported list boxes.
322 The new design has two (scrollable) list-boxes, one for the folders and the other for the files in the current directory.
323 It also has a combobox to select the type of file we are browsing for.
324 By this we can filter on the usual extensions for the various file types,
325 such as .pgn for games, and .fen for positions.
326 </p><p>
327 Double-clicking on entries in the folder list enables you to navigate through the file system.
328 Double-clicking on an entry in the file list will select the file.
329 Depending on if you were browsing for actually accessing it
330 (e.g from the Load Game menu)
331 or just to get the name
332 (as with the Browse buttons of another dialog),
333 this will open the file, or put the name in the text-edit you were browsing for.
334 </p><p>
335 Of course you can still type the filename by hand
336 (if you need a non-existing file, for saving on).
337 In that case the the browser can still be helpful,
338 because it prepends the path name of the currently selected folder to the filename you type.
339 When browsing for a path, that is the only thing it will copy to the text-edit.
340 </p>
341 </td></tr></table>
342
343 <h3><a name="tag-B8">Copying pieces when editing a position</a></h3>
344 <p>
345 In Edit Position mode it has always been possible to move pieces from any square to any other square.
346 New is that you can now also do this while keeping the Ctrl key pressed.
347 This then moves the piece withot removing it from the original square,
348 i.e. it becomes a 'copy' rather than a 'move' operation.
349 This can be helpful for setting up a Pawn chain.
350 </p>
351
352 <table cellpadding="20"><tr><td valign="top">
353 <h3><a name="tag-A6">Analysis with two engines at once</a></h3>
354 <p>
355 In Analysis mode, XBoard can now run two engines at once.
356 Like when playing engines against each other, the Engine-Output window will then be split into two panes,
357 and the output of the second engine will appear in the lower pane.
358 Both engines will analyze the same position,
359 following the game as the user browses through it by means of the stepping buttons,
360 or by entering moves.
361 They will also exclude the same moves from the analysis, so only the upper pane
362 will have a move-exclusion header line.
363 Each pane will have its own Multi-PV header line, however,
364 (if the corresponding engine supports multi-PV),
365 so that you can independently set the number of PVs coughed up by each engine.
366 </p>
367 <p>
368 Normally analysis will start with only a single active engine, the first.
369 Clicking the "Analysis Mode" menu item when already analyzing,
370 this will toggle the second engine on and off.
371 Of course the second engine will be switched off as soon as you leave analysis mode, just like the first.
372 </p>
373 </td><td valign="top">
374 <img src="DuoAnalysis.png">
375 </td></tr></table>
376
377 <h3><a name="tag-A7">Batch analysis of a PGN file</a></h3>
378 <p>
379 The Analyze Game menu item has acquired some new functionality.
380 Used when a game is already loaded, it will start to auto-play the game,
381 starting at the current position,
382 and annotate it with scores and engine variations, like always.
383 When reaching the end of the game, auto-play will stop,
384 but the game stays loaded for you to add more comments,
385 and save it by hand to a file of your choice.
386 </p><p>
387 But when you load a new game from a multi-game file 
388 (by selecting it from the Game List)
389 while Analyze Game mode is already switched on,
390 (or when the "Step through opening lines / positions" in the Tournament dialog has been selected),
391 auto-play will no longer stop at the end of a game!
392 In stead, it will automatically load the next game from the file,
393 (forcing a save of the just annotated one, if you have set auto-save mode properly),
394 and start auto-playing / analysing / annotating that.
395 This will continue untill all games in the file have been treated,
396 or you switch XBoard out of Analyze File mode by hand.
397 </p>
398
399 <h3><a name="tag-A8">Starting WinBoard by dropping files on it</a></h3>
400 <table cellpadding="20"><tr><td valign="top">
401 <img src="DragDrop.jpg">
402 </td><td valign="top">
403 <p>
404 In Windows and on Mac the OS will issue a command to start an application with that document.
405 Up to now, WinBoard would always assume such a file was a game file, however, leading to error messages if it wasn't.
406 This because the OS is not smart enough to know which command-line arguments to use to tell WinBoard what kind of file it is.
407 Using the WinBoard installer would make the proper associations in the systems registry to load the files with WinBoard
408 in the proper way, so that you can even just double click them.
409 But for 'portable versions', it would be difficult to make such associations
410 using the standard system menus "Open with" and "Always open this type of file with this application",
411 because you could not specify a detailed command line for the "open" operation.
412 </p>
413 </td></tr></table>
414 <p>
415 This has now been solved by making WinBoard pay attention to the filename extension.
416 When requested to perform an unspecified action on a file,
417 WinBoard (and XBoard, but this is in general less useful) will examine the extension.
418 Then for .fen or .epd it opens it as position file in viewer mode, and .trn as tourney file, to play the tourney.
419 A .ini or .xop file, specifying settings as a list of command-line options they contain,
420 will start WinBoard as if these options were typed on the command line (i.e. treat it as an indirection @file).
421 This means you can now start WinBoard in any pre-configured mode, by simply dragging an .xop file on top of it
422 (or double-clicking it once you made the association, as if they were shortcuts!).
423 Files with unrecognized extensions are still treated as game files, opening WinBoard in viewer mode
424 (if their name does not correspond to that of an installed ICS, see below).
425 </p>
426
427 <h3><a name="tag-A9">Start installed engines or ICS from the command line</a></h3>
428 <p>
429 WinBoard has a startup dialog where the user can select the engine or ICS he wants to use from a drop-down menu.
430 Through this menu he can select a command line that does not only specify the engine (or ICS),
431 but also all options that have to go with it.
432 (Like whether the ICS should use timeseal or timestamp, or the engine is for a variant or should use the GUI book, etc.)
433 In XBoard there was no such convenience, and you had not only to specify the engine (through the -fcp option) or ICS (through -icshost),
434 but also type all options it needed, (e.g. -icshelper timeseal), and even that it should run in ICS mode in the first place (-ics).
435 </p><p>
436 A few new options now have been added to cure this.
437 With -fe ENGINE or -se ENGINE you can now recall an 'engine profile' as was defined earlier through the Load Engine dialog,
438 accessing the engine by its nickname (i.e. the possibly shortened name under which it appears
439 in the list of engines from which you can select in the Load Engine or Tournament/Match Options dialog).
440 This then not only defines the corresponding -fcp or -scp argument, but also all option settings that were defined with it.
441 (Like whether the engine was UCI, needed to use book, plays only a certain variant,
442 or whatever you added by hand through editing the -firstChessProgramNames option in the ~/.xboardrc user settings file.)
443 A similar option -is ICSNAME works for selecting an ICS from the -icsNames option,
444 which can only be manipulated by editing the user settings file,
445 but is preconfigured to contain the the nicknames 'fics' and 'icc' for freechess.org and chessclub.com,
446 which likely is all you will ever need.
447 So "xboard -is fics" can now be used to connect to FICS with timeseal.
448 </p><p>
449 This can even abbreviated further:
450 When XBoard encounters an argument not preceded by an option name,
451 it normally assumes it is a game file, imagining the -lgf option for it.
452 But an exception is now made for names that correspond to the (nick)name of an ICS.
453 This would imply the -is option.
454 So you can connectto FICS by simply typing "xboard fics".
455 </p>
456
457 <h3><a name="tag-B0">Fixed bugs</a></h3>
458 <p>
459 Some bugs were encountered and reported during the refactoring process,
460 and they were corrected on the spot.
461 In due time the fixes will find their way into the 4.6.x branch.
462 We can mention:
463
464 <ul>
465   <li>
466     When, during install of a new engine, XBoard split the path name into directory + engine command,
467     it forgot to prefix the latter with './', so it would refuse to execute.
468   </li><li>
469     When replacing an engine while not at the end of a game,
470     the engine would be positioned at the end of the game, rather than on the current position.
471   </li><li>
472     Crazyhouse was played like Loop Chess when legality testing is off.
473   </li><li>
474     Attempting to load a non-existing engine makes XBoard switch to -ncp mode,
475     but this did require a bit of patience, as XBoard would still wait out the feature time-out of the engine load procedure.
476   </li><li>
477     Dragging the main window when the option -stickWindows was on could make xboard's clocks stop.
478   </li><li>
479     A work-around was implmented for the FICS bug that it does not understand proper SAN notation for moves like Bxc6 and bxc6.
480     This bug was interfering with XBoard 'Upload to Examine' function, which uploads in SAN.
481   </li><li>
482     The validity of tourney participants is now checked before you can OK the Tournament / Match Options dialog,
483     as they could have been invalidated by hand editing, which led to very pathologic effects during the tourney.
484   </li>
485 </ul>
486
487 Some bugs disovered through scrutinous testing to insure the refactored code was still working as the original one,
488 but not yet solved:
489
490 <ul>
491   <li>
492     Marking target squares and the highlight arrow interfere with animate dragging,
493     when the dragged piece oveshoots its target square so that it partly covers a marking dot
494     or arrow of a previous move. These are then not erased when the piece is released.
495   </li><li>
496     Iconizing the board still seems to sometimes stop the clocks.
497   </li>
498 </ul>
499
500 </p>
501
502 </div><!-- for id="content", starts in the include above -->
503 <!--#include virtual="/server/footer.html" -->
504 <div id="footer">
505
506 <p>Please send general FSF &amp; GNU inquiries to
507 <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
508 There are also <a href="/contact/">other ways to contact</a>
509 the FSF.<br />
510 Please send broken links and other corrections or suggestions to
511 <a href="mailto:bug-xboard@gnu.org">&lt;bug-xboard@gnu.org&gt;</a>.</p>
512
513 <p>Please see the <a
514 href="/server/standards/README.translations.html">Translations
515 README</a> for information on coordinating and submitting translations
516 of this article.</p>
517
518 <p>Copyright &copy; 2009, 2010, 2011, 2012 Free Software Foundation, Inc.</p>
519
520 <p>This page is licensed under a <a rel="license"
521 href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative
522 Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
523
524 <p>Updated:
525 <!-- timestamp start -->
526 $Date: 2013/02/21 06:27:14 $
527 <!-- timestamp end -->
528 </p>
529 </div>
530 </div>
531 </body>
532 </html>