Files
vilya/apidocs/com/threerings/parlor/client/ParlorService.html
T
2011-04-06 17:01:15 -07:00

348 lines
19 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_24) on Wed Apr 06 17:00:09 PDT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ParlorService (vilya 1.3 API)
</TITLE>
<META NAME="date" CONTENT="2011-04-06">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ParlorService (vilya 1.3 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ParlorService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/threerings/parlor/client/ParlorReceiver.html" title="interface in com.threerings.parlor.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/threerings/parlor/client/ParlorService.InviteListener.html" title="interface in com.threerings.parlor.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?com/threerings/parlor/client/ParlorService.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ParlorService.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.threerings.parlor.client</FONT>
<BR>
Interface ParlorService</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD>com.threerings.presents.client.InvocationService</DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/threerings/parlor/data/ParlorMarshaller.html" title="class in com.threerings.parlor.data">ParlorMarshaller</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>ParlorService</B><DT>extends com.threerings.presents.client.InvocationService</DL>
</PRE>
<P>
Provides an interface to the various parlor invocation services. Presently these services are
limited to the various matchmaking mechanisms. It is unlikely that client code will want to make
direct use of this class, instead they would make use of the programmatic interface provided by
the <A HREF="../../../../com/threerings/parlor/client/ParlorDirector.html" title="class in com.threerings.parlor.client"><CODE>ParlorDirector</CODE></A>.
<P>
<P>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/threerings/parlor/client/ParlorService.InviteListener.html" title="interface in com.threerings.parlor.client">ParlorService.InviteListener</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used to communicate responses to <A HREF="../../../../com/threerings/parlor/client/ParlorService.html#invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.ParlorService.InviteListener)"><CODE>invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.ParlorService.InviteListener)</CODE></A> requests.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_com.threerings.presents.client.InvocationService"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Nested classes/interfaces inherited from interface com.threerings.presents.client.InvocationService</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>com.threerings.presents.client.InvocationService.ConfirmListener, com.threerings.presents.client.InvocationService.InvocationListener, com.threerings.presents.client.InvocationService.ResultListener</CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/threerings/parlor/client/ParlorService.html#cancel(int, com.threerings.presents.client.InvocationService.InvocationListener)">cancel</A></B>(int&nbsp;inviteId,
com.threerings.presents.client.InvocationService.InvocationListener&nbsp;listener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You probably don't want to call this directly, but want to call <A HREF="../../../../com/threerings/parlor/client/Invitation.html#cancel()"><CODE>Invitation.cancel()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/threerings/parlor/client/ParlorService.html#invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.ParlorService.InviteListener)">invite</A></B>(com.threerings.util.Name&nbsp;invitee,
<A HREF="../../../../com/threerings/parlor/game/data/GameConfig.html" title="class in com.threerings.parlor.game.data">GameConfig</A>&nbsp;config,
<A HREF="../../../../com/threerings/parlor/client/ParlorService.InviteListener.html" title="interface in com.threerings.parlor.client">ParlorService.InviteListener</A>&nbsp;listener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You probably don't want to call this directly, but want to generate your invitation request
via <A HREF="../../../../com/threerings/parlor/client/ParlorDirector.html#invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)"><CODE>ParlorDirector.invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/threerings/parlor/client/ParlorService.html#respond(int, int, java.lang.Object, com.threerings.presents.client.InvocationService.InvocationListener)">respond</A></B>(int&nbsp;inviteId,
int&nbsp;code,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg,
com.threerings.presents.client.InvocationService.InvocationListener&nbsp;listener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You probably don't want to call this directly, but want to call one of <A HREF="../../../../com/threerings/parlor/client/Invitation.html#accept()"><CODE>Invitation.accept()</CODE></A>, <A HREF="../../../../com/threerings/parlor/client/Invitation.html#refuse(java.lang.String)"><CODE>Invitation.refuse(java.lang.String)</CODE></A>, or <A HREF="../../../../com/threerings/parlor/client/Invitation.html#counter(com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)"><CODE>Invitation.counter(com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/threerings/parlor/client/ParlorService.html#startSolitaire(com.threerings.parlor.game.data.GameConfig, com.threerings.presents.client.InvocationService.ConfirmListener)">startSolitaire</A></B>(<A HREF="../../../../com/threerings/parlor/game/data/GameConfig.html" title="class in com.threerings.parlor.game.data">GameConfig</A>&nbsp;config,
com.threerings.presents.client.InvocationService.ConfirmListener&nbsp;listener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Requests to start a single player game with the specified game configuration.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.ParlorService.InviteListener)"><!-- --></A><H3>
invite</H3>
<PRE>
void <B>invite</B>(com.threerings.util.Name&nbsp;invitee,
<A HREF="../../../../com/threerings/parlor/game/data/GameConfig.html" title="class in com.threerings.parlor.game.data">GameConfig</A>&nbsp;config,
<A HREF="../../../../com/threerings/parlor/client/ParlorService.InviteListener.html" title="interface in com.threerings.parlor.client">ParlorService.InviteListener</A>&nbsp;listener)</PRE>
<DL>
<DD>You probably don't want to call this directly, but want to generate your invitation request
via <A HREF="../../../../com/threerings/parlor/client/ParlorDirector.html#invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)"><CODE>ParlorDirector.invite(com.threerings.util.Name, com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)</CODE></A>. Requests that an invitation be delivered to the named
user, requesting that they join the inviting user in a game, the details of which are
specified in the supplied game config object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>invitee</CODE> - the username of the user to be invited.<DD><CODE>config</CODE> - a game config object detailing the type and configuration of the game to be
created.<DD><CODE>listener</CODE> - will receive and process the response.</DL>
</DD>
</DL>
<HR>
<A NAME="respond(int, int, java.lang.Object, com.threerings.presents.client.InvocationService.InvocationListener)"><!-- --></A><H3>
respond</H3>
<PRE>
void <B>respond</B>(int&nbsp;inviteId,
int&nbsp;code,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg,
com.threerings.presents.client.InvocationService.InvocationListener&nbsp;listener)</PRE>
<DL>
<DD>You probably don't want to call this directly, but want to call one of <A HREF="../../../../com/threerings/parlor/client/Invitation.html#accept()"><CODE>Invitation.accept()</CODE></A>, <A HREF="../../../../com/threerings/parlor/client/Invitation.html#refuse(java.lang.String)"><CODE>Invitation.refuse(java.lang.String)</CODE></A>, or <A HREF="../../../../com/threerings/parlor/client/Invitation.html#counter(com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)"><CODE>Invitation.counter(com.threerings.parlor.game.data.GameConfig, com.threerings.parlor.client.InvitationResponseObserver)</CODE></A>. Requests that
an invitation response be delivered with the specified parameters.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>inviteId</CODE> - the unique id previously assigned by the server to this invitation.<DD><CODE>code</CODE> - the response code to use in responding to the invitation.<DD><CODE>arg</CODE> - the argument associated with the response (a string message from the player
explaining why the response was refused in the case of an invitation refusal or an updated
game configuration object in the case of a counter-invitation, or null in the case of an
accepted invitation).<DD><CODE>listener</CODE> - will receive and process the response.</DL>
</DD>
</DL>
<HR>
<A NAME="cancel(int, com.threerings.presents.client.InvocationService.InvocationListener)"><!-- --></A><H3>
cancel</H3>
<PRE>
void <B>cancel</B>(int&nbsp;inviteId,
com.threerings.presents.client.InvocationService.InvocationListener&nbsp;listener)</PRE>
<DL>
<DD>You probably don't want to call this directly, but want to call <A HREF="../../../../com/threerings/parlor/client/Invitation.html#cancel()"><CODE>Invitation.cancel()</CODE></A>. Requests that an outstanding invitation be cancelled.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>inviteId</CODE> - the unique id previously assigned by the server to this invitation.<DD><CODE>listener</CODE> - will receive and process the response.</DL>
</DD>
</DL>
<HR>
<A NAME="startSolitaire(com.threerings.parlor.game.data.GameConfig, com.threerings.presents.client.InvocationService.ConfirmListener)"><!-- --></A><H3>
startSolitaire</H3>
<PRE>
void <B>startSolitaire</B>(<A HREF="../../../../com/threerings/parlor/game/data/GameConfig.html" title="class in com.threerings.parlor.game.data">GameConfig</A>&nbsp;config,
com.threerings.presents.client.InvocationService.ConfirmListener&nbsp;listener)</PRE>
<DL>
<DD>Requests to start a single player game with the specified game configuration.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ParlorService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/threerings/parlor/client/ParlorReceiver.html" title="interface in com.threerings.parlor.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/threerings/parlor/client/ParlorService.InviteListener.html" title="interface in com.threerings.parlor.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?com/threerings/parlor/client/ParlorService.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ParlorService.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2011. All Rights Reserved.
</BODY>
</HTML>