<!--
   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 xmlns:wicket="http://www.w3.org/1999/XSL/Transform">
<head></head>
<body>
<wicket:extend>
    <h3>Fortress Web Error Page</h3>

    <div class="ui-widget">
        <div style="padding: 0pt 0.7em;" class="ui-state-error ui-corner-all">
            <p><span style="float: left; margin-right: 0.3em;"
                     class="ui-icon ui-icon-alert"></span>
                <strong><span wicket:id="title"/></strong>

            <div><span wicket:id="message"/></div>
            <p>
                <a href="" wicket:id="homePage">
                    <wicket:message key="home"/>
                </a>
            </p>
        </div>
    </div>
</wicket:extend>
</body>
</html>