Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 50facae208d4a6f280e44a513b104320 > files > 1497

qt-mobility-doc-1.2.0-13.mga5.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qnearfieldtagtype1.cpp -->
  <title>Qt Mobility 1.2: QNearFieldTagType1 Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="content"> 
    <a href="index.html" class="qtref"><span>QtMobility Reference Documentation</span></a>
  </div>
  <div class="breadcrumb toolblock">
    <ul>
      <li class="first"><a href="index.html">Home</a></li>
      <!--  Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtconnectivity.html">QtConnectivity</a></li>
<li>QNearFieldTagType1</li>
    </ul>
  </div>
</div>
<div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-types">Public Types</a></li>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#protected-functions">Protected Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<h1 class="title">QNearFieldTagType1 Class Reference</h1>
<!-- $$$QNearFieldTagType1-brief -->
<p>The QNearFieldTagType1 class provides an interface for communicating with an NFC Tag Type 1 tag. <a href="#details">More...</a></p>
<!-- @@@QNearFieldTagType1 -->
<pre class="cpp"> <span class="preprocessor">#include &lt;QNearFieldTagType1&gt;</span></pre><p><b>Inherits: </b><a href="qnearfieldtarget.html">QNearFieldTarget</a>.</p>
<p>This class was introduced in Qt Mobility 1.2.</p>
<ul>
<li><a href="qnearfieldtagtype1-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-types"></a>
<h2>Public Types</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#WriteMode-enum">WriteMode</a></b> { EraseAndWrite, WriteOnly }</td></tr>
</table>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#QNearFieldTagType1">QNearFieldTagType1</a></b> ( QObject * <i>parent</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#dtor.QNearFieldTagType1">~QNearFieldTagType1</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual int </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#memorySize">memorySize</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readAll">readAll</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readBlock">readBlock</a></b> ( quint8 <i>blockAddress</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readByte">readByte</a></b> ( quint8 <i>address</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readIdentification">readIdentification</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readSegment">readSegment</a></b> ( quint8 <i>segmentAddress</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> quint8 </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#version">version</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#writeBlock">writeBlock</a></b> ( quint8 <i>blockAddress</i>, const QByteArray &amp; <i>data</i>, WriteMode <i>mode</i> = EraseAndWrite )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#writeByte">writeByte</a></b> ( quint8 <i>address</i>, quint8 <i>data</i>, WriteMode <i>mode</i> = EraseAndWrite )</td></tr>
</table>
<a name="reimplemented-public-functions"></a>
<h2>Reimplemented Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#hasNdefMessage">hasNdefMessage</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#readNdefMessages">readNdefMessages</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual Type </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#type">type</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual RequestId </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#writeNdefMessages">writeNdefMessages</a></b> ( const QList&lt;QNdefMessage&gt; &amp; <i>messages</i> )</td></tr>
</table>
<ul>
<li class="fn">13 public functions inherited from <a href="qnearfieldtarget.html#public-functions">QNearFieldTarget</a></li>
<li class="fn">29 public functions inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#public-functions">QObject</a></li>
</ul>
<a name="reimplemented-protected-functions"></a>
<h2>Reimplemented Protected Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qnearfieldtagtype1.html#handleResponse">handleResponse</a></b> ( const QNearFieldTarget::RequestId &amp; <i>id</i>, const QByteArray &amp; <i>response</i> )</td></tr>
</table>
<ul>
<li class="fn">1 protected function inherited from <a href="qnearfieldtarget.html#protected-functions">QNearFieldTarget</a></li>
<li class="fn">7 protected functions inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#protected-functions">QObject</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li class="fn">1 property inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#properties">QObject</a></li>
<li class="fn">1 public slot inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#public-slots">QObject</a></li>
<li class="fn">5 signals inherited from <a href="qnearfieldtarget.html#signals">QNearFieldTarget</a></li>
<li class="fn">1 signal inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#signals">QObject</a></li>
<li class="fn">1 public variable inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#public-variables">QObject</a></li>
<li class="fn">4 static public members inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#static-public-members">QObject</a></li>
<li class="fn">1 protected function inherited from <a href="qnearfieldtarget.html#protected-functions">QNearFieldTarget</a></li>
<li class="fn">7 protected functions inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#protected-functions">QObject</a></li>
<li class="fn">2 protected variables inherited from <a href="http://qt.nokia.com/doc/4.7/qobject.html#protected-variables">QObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QNearFieldTagType1-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QNearFieldTagType1 class provides an interface for communicating with an NFC Tag Type 1 tag.</p>
</div>
<!-- @@@QNearFieldTagType1 -->
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$WriteMode$$$EraseAndWrite$$$WriteOnly -->
<h3 class="fn"><a name="WriteMode-enum"></a>enum QNearFieldTagType1::<span class="name">WriteMode</span></h3>
<p>This enum describes the write modes that are supported.</p>
<table class="valuelist"><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tblval">Value</th><th class="tbldscr">Description</th></tr>
<tr><td class="topAlign"><tt>QNearFieldTagType1::EraseAndWrite</tt></td><td class="topAlign"><tt>0</tt></td><td class="topAlign">The memory is erased before the new value is written.</td></tr>
<tr><td class="topAlign"><tt>QNearFieldTagType1::WriteOnly</tt></td><td class="topAlign"><tt>1</tt></td><td class="topAlign">The memory is not erased before the new value is written. The effect of this mode is that the final value store is the bitwise or of the data to be written and the original data value.</td></tr>
</table>
<!-- @@@WriteMode -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QNearFieldTagType1[overload1]$$$QNearFieldTagType1QObject* -->
<h3 class="fn"><a name="QNearFieldTagType1"></a>QNearFieldTagType1::<span class="name">QNearFieldTagType1</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qobject.html">QObject</a></span> * <i>parent</i> = 0 )</h3>
<p>Constructs a new tag type 1 near field target with <i>parent</i>.</p>
<!-- @@@QNearFieldTagType1 -->
<!-- $$$~QNearFieldTagType1[overload1]$$$~QNearFieldTagType1 -->
<h3 class="fn"><a name="dtor.QNearFieldTagType1"></a>QNearFieldTagType1::<span class="name">~QNearFieldTagType1</span> ()</h3>
<p>Destroys the tag type 1 near field target.</p>
<!-- @@@~QNearFieldTagType1 -->
<!-- $$$handleResponse[overload1]$$$handleResponseconstQNearFieldTarget::RequestId&constQByteArray& -->
<h3 class="fn"><a name="handleResponse"></a><span class="type">bool</span> QNearFieldTagType1::<span class="name">handleResponse</span> ( const <span class="type"><a href="qnearfieldtarget-requestid.html">QNearFieldTarget::RequestId</a></span> &amp; <i>id</i>, const <span class="type"><a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a></span> &amp; <i>response</i> )<tt> [virtual protected]</tt></h3>
<p>Reimplemented from <a href="qnearfieldtarget.html#handleResponse">QNearFieldTarget::handleResponse</a>().</p>
<!-- @@@handleResponse -->
<!-- $$$hasNdefMessage[overload1]$$$hasNdefMessage -->
<h3 class="fn"><a name="hasNdefMessage"></a><span class="type">bool</span> QNearFieldTagType1::<span class="name">hasNdefMessage</span> ()<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qnearfieldtarget.html#hasNdefMessage">QNearFieldTarget::hasNdefMessage</a>().</p>
<!-- @@@hasNdefMessage -->
<!-- $$$memorySize[overload1]$$$memorySize -->
<h3 class="fn"><a name="memorySize"></a><span class="type">int</span> QNearFieldTagType1::<span class="name">memorySize</span> ()<tt> [virtual]</tt></h3>
<p>Returns the memory size in bytes of the tag.</p>
<!-- @@@memorySize -->
<!-- $$$readAll[overload1]$$$readAll -->
<h3 class="fn"><a name="readAll"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readAll</span> ()<tt> [virtual]</tt></h3>
<p>Requests all data in the static memory area of the target. Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes successfully the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a <a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a> containing: HR0 and HR1 followed by the 120 bytes of data stored in the static memory area of the target.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@readAll -->
<!-- $$$readBlock[overload1]$$$readBlockquint8 -->
<h3 class="fn"><a name="readBlock"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readBlock</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>blockAddress</i> )<tt> [virtual]</tt></h3>
<p>Requests 8 bytes of data from the block specified by <i>blockAddress</i>. Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes successfully the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a <a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a>.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@readBlock -->
<!-- $$$readByte[overload1]$$$readBytequint8 -->
<h3 class="fn"><a name="readByte"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readByte</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>address</i> )<tt> [virtual]</tt></h3>
<p>Requests a single byte from the static memory area of the tag. The <i>address</i> parameter specifices the linear byte address to read. Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes successfully the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a quint8.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@readByte -->
<!-- $$$readIdentification[overload1]$$$readIdentification -->
<h3 class="fn"><a name="readIdentification"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readIdentification</span> ()<tt> [virtual]</tt></h3>
<p>Requests the identification bytes from the target. Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes successfully the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a <a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a> containing: HR0, HR1, UID0, UID1, UID2 and UID3 in order.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@readIdentification -->
<!-- $$$readNdefMessages[overload1]$$$readNdefMessages -->
<h3 class="fn"><a name="readNdefMessages"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readNdefMessages</span> ()<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qnearfieldtarget.html#readNdefMessages">QNearFieldTarget::readNdefMessages</a>().</p>
<!-- @@@readNdefMessages -->
<!-- $$$readSegment[overload1]$$$readSegmentquint8 -->
<h3 class="fn"><a name="readSegment"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">readSegment</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>segmentAddress</i> )<tt> [virtual]</tt></h3>
<p>Requests 128 bytes of data from the segment specified by <i>segmentAddress</i>. Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes successfully the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a <a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a>.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@readSegment -->
<!-- $$$type[overload1]$$$type -->
<h3 class="fn"><a name="type"></a><span class="type"><a href="qnearfieldtarget.html#Type-enum">Type</a></span> QNearFieldTagType1::<span class="name">type</span> () const<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qnearfieldtarget.html#type">QNearFieldTarget::type</a>().</p>
<!-- @@@type -->
<!-- $$$version[overload1]$$$version -->
<h3 class="fn"><a name="version"></a><span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> QNearFieldTagType1::<span class="name">version</span> ()</h3>
<p>Returns the NFC Tag Type 1 specification version number that the tag supports.</p>
<!-- @@@version -->
<!-- $$$writeBlock[overload1]$$$writeBlockquint8constQByteArray&WriteMode -->
<h3 class="fn"><a name="writeBlock"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">writeBlock</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>blockAddress</i>, const <span class="type"><a href="http://qt.nokia.com/doc/4.7/qbytearray.html">QByteArray</a></span> &amp; <i>data</i>, <span class="type"><a href="qnearfieldtagtype1.html#WriteMode-enum">WriteMode</a></span> <i>mode</i> = EraseAndWrite )<tt> [virtual]</tt></h3>
<p>Writes 8 bytes of <i>data</i> to the block specified by <i>blockAddress</i>. If <i>mode</i> is <a href="qnearfieldtagtype1.html#WriteMode-enum">EraseAndWrite</a> the bytes will be erased before writing. If <i>mode</i> is <a href="qnearfieldtagtype1.html#WriteMode-enum">WriteOnly</a> the contents will not be erased before writing. This is equivelant to writing the result of the bitwise OR of <i>data</i> and the original value.</p>
<p>Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a boolean value, true for success; otherwise false.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@writeBlock -->
<!-- $$$writeByte[overload1]$$$writeBytequint8quint8WriteMode -->
<h3 class="fn"><a name="writeByte"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">writeByte</span> ( <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>address</i>, <span class="type"><a href="http://qt.nokia.com/doc/4.7/qtglobal.html#quint8-typedef">quint8</a></span> <i>data</i>, <span class="type"><a href="qnearfieldtagtype1.html#WriteMode-enum">WriteMode</a></span> <i>mode</i> = EraseAndWrite )<tt> [virtual]</tt></h3>
<p>Writes a single <i>data</i> byte to the linear byte <i>address</i> on the tag. If <i>mode</i> is <a href="qnearfieldtagtype1.html#WriteMode-enum">EraseAndWrite</a> the byte will be erased before writing. If <i>mode</i> is <a href="qnearfieldtagtype1.html#WriteMode-enum">WriteOnly</a> the contents will not be erased before writing. This is equivelant to writing the result of the bitwise OR of <i>data</i> and the original value.</p>
<p>Returns a request id which can be used to track the completion status of the request.</p>
<p>Once the request completes the response can be retrieved from the <a href="qnearfieldtarget.html#requestResponse">requestResponse</a>() function. The response of this request will be a boolean value, true for success; otherwise false.</p>
<p><b>See also </b><a href="qnearfieldtarget.html#requestCompleted">requestCompleted</a>() and <a href="qnearfieldtarget.html#waitForRequestCompleted">waitForRequestCompleted</a>().</p>
<!-- @@@writeByte -->
<!-- $$$writeNdefMessages[overload1]$$$writeNdefMessagesconstQList<QNdefMessage>& -->
<h3 class="fn"><a name="writeNdefMessages"></a><span class="type"><a href="qnearfieldtarget-requestid.html">RequestId</a></span> QNearFieldTagType1::<span class="name">writeNdefMessages</span> ( const <span class="type"><a href="http://qt.nokia.com/doc/4.7/qlist.html">QList</a></span>&lt;<span class="type"><a href="qndefmessage.html">QNdefMessage</a></span>&gt; &amp; <i>messages</i> )<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qnearfieldtarget.html#writeNdefMessages">QNearFieldTarget::writeNdefMessages</a>().</p>
<!-- @@@writeNdefMessages -->
</div>
  <div class="ft">
    <span></span>
  </div>
</div> 
<div class="footer">
  <p>
     <acronym title="Copyright">&copy;</acronym> 2008-2011 Nokia Corporation and/or its
     subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation 
     in Finland and/or other countries worldwide.</p>
  <p>
     All other trademarks are property of their respective owners. <a title="Privacy Policy"
     href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
  <br />
  <p>
    Licensees holding valid Qt Commercial licenses may use this document in accordance with the    Qt Commercial License Agreement provided with the Software or, alternatively, in accordance    with the terms contained in a written agreement between you and Nokia.</p>
  <p>
    Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
    Free Documentation License version 1.3</a>
    as published by the Free Software Foundation.</p>
</div>
</body>
</html>