	@import "all.css";
	
	* {margin: 0; padding: 0;}
	
	body {
		text-align:center;
    		font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		}
		
	#frame {
		margin-right:auto;
		margin-left:auto;
		margin-top:0px;
		padding:0px;
		text-align:left;
		}
		
	#contentleft {
		padding:0px;
		float:left;
		}
	
	#contentcenter {
		width:550px;
		padding:0px;
		border: 1px dotted #000000;
		float:left;
		}
	
	#contentright {
		padding:0px;
		float:left;
		}

	#leftnav {
		width:150px;
		padding:0px;
		float:right;
		margin-top:30px;
		}

	#news {
		width:150px;
		padding:0px;
		float:left;
		margin-top:65px;
		}
		
	#leftnav p {
    	font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		}

	#leftnav a:link {
	    color: #333333; text-decoration: none;
		}
		
	#leftnav a:visited {
	    color: #333333; text-decoration: none;
		}
		
	#leftnav a:hover {
	    color:#FFFFFF;
	    background-color: #dd592e;
		}
		
	leftnav a:active {
	    color: #333333; text-decoration: none;
		}
		
	#news a:link {
	    color: #333333; text-decoration: none;
		}
		
	#news a:visited {
	    color: #333333; text-decoration: none;
		}
		
	#news a:hover {
	    color:#FFFFFF;
	    background-color: #dd592e;
		}
		
	#news a:active {
	    color: #333333; text-decoration: none;
	}
	
	#contentheader {
		background-color: #333333;
		align: center;
	}
		
	#contentheader p {
    		font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		margin:0px 15px 10px 25px;
		line-height: 140%;	
		color:#FFFFFF;
		}	
		
    #contentcenter h1 {
   	 	font-family:Arial, Helvetica, sans-serif;
		font-size:13pt;
		color:#333333;
		background:#EEEEEE;
		}


    #contentcenter h2 {
   	 	font-family:Arial, Helvetica, sans-serif;
		font-size:13pt;
		color:#333333;
		padding:4px;
		}

    #contentcenter h3 {
   	 	font-family:Arial, Helvetica, sans-serif;
		color:#333333;
		padding:4px;
		font-size:11pt;
		background:#EEEEEE;
		}

		
	#contentcenter p {
    	font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;	
		color:#333333;
		}


		
	#contentcenter li, ul, ol  {
    	font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		margin:0px 15px 10px 25px;	
		color:#333333;
		line-height: 140%;	
		}



	#contentcenter a:link {
		text-decoration: none
		}
		
	#contentcenter a:visited {
		text-decoration: none
	}
		
	#contentcenter a:hover {
	    background-color: yellow;
		}
		
	#contentcenter a:active {
	    color:#006600; text-decoration: none
		}
		
	p ,pre {
    	font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		margin:15px 15px 15px 15px;
		color:#333333;
		}
		
    #navigation-left {
	    font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		margin:10px 10px 10px 10px;
		text-align:right;
		background:#fff;
		}
	
	#navigation-left a:link {
	    color: #000099; text-decoration: none
		}
		
	#navigation-left a:visited {
	    color: #000099; text-decoration: none
		}
		
	#navigation-left a:hover {
	    color: #000099; text-decoration: none
		}
		
	#navigation-left a:active {
	    color: #000099; text-decoration: none
		}
		
    #navigation-right {
	    font-family:Arial, Helvetica, sans-serif;
		font-size:9pt;
		margin:10px 10px 10px 10px;
		text-align:center;
		background:#fff;
		}
		
	#navigation-right a:link {
	    color: #333333; text-decoration: none
		}
		
	#navigation-right a:visited {
	    color: #333333; text-decoration: none
		}
		
	#navigation-right a:hover {
	    color: #990000; text-decoration: none
		}
		
	#navigation-right a:active {
	    color: #333333; text-decoration: none
		}
		
	h1 {
		font-size:14pt;
		padding-top:10px;
		}
		
	#contentheader h1 {
		font-size:22pt;
		padding:10px;
		margin:0px;
		}

	h3 {
		font-size:14pt;
		padding:10px;
		margin:0px;
		}
		
	#searchform{
		margin-left:10px;
		margin-top:10px;
		margin-bottom:15px;
		}
	
