<!--
   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></head>
<body>
<wicket:extend>
    <h3><span wicket:id="pageHeader"></span></h3>

    <div wicket:id="layout">
        <div id="vertical">
            <div id="horizontal">
                <div>
                    <p>
                    <div wicket:id="navpanel"></div>
                </div>
                <div>
                    <p>
                    <div wicket:id="authzlistpanel"></div>
                </div>
                <div>
                    <p>
                    <div wicket:id="authzdetailpanel"></div>
                </div>
            </div>
            <div wicket:id="infopanel"></div>
        </div>
    </div>
</wicket:extend>
</body>
</html>