<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<html>
  <head>
    <title>This is fun!</title>
  </head>
  <body>
    <h1>This is the first first-level section</h1>
    <p>
        This paragraph belongs to section one.
    </p>
        <h2>This is the first second-level section</h2>
        <p>
            <a name="para1" />This paragraph belongs to subsection one.
        </p>
        <h2>This is the second second-level section</h2>
        <p>
            This paragraph belongs to subsection two.
        </p>
            <h4>This is the first third-level section</h4>
            <p>
                To make the <em>task</em> <i>even</i> harder,
                the <tt>h3</tt>-heading was dropped, but we
                expect the parser to recognize this section
                as level 3, not level 4.
            </p>
        <h2>This is the third second-level section</h2>
        <p>
            This paragraph belongs to subsection three.
        </p>
    <h1>This is the second first-level section</h1>
    <p>
        This paragraph belongs to section two.
    </p>
    <pre>
        //what is source code?
    </pre>
    <p>
        This is <em>also</em> a <strong>paragraph</strong>. Take a look
        at the <a href="#para1">other paragraph</a>.
    </p>
    <p>
        Just introduce some <img src="http://maven.apache.org/images/logos/maven-feather.png"/>
        images. <img src="http://maven.apache.org/images/logos/maven-feather.png" alt="maven feather"/>
        <img src="http://maven.apache.org/images/logos/maven-feather.png" alt="maven feather"
        title="built by: maven"/>
    </p>
  </body>
</html>
