diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index b76b895..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "maven" - directory: "/" - schedule: - interval: "daily" - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 6b8ce40..0000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,2 +0,0 @@ -_extends: .github -tag-template: plexus-build-api-$NEXT_MINOR_VERSION diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index 09feae4..0000000 --- a/.github/workflows/maven.yml +++ /dev/null @@ -1,31 +0,0 @@ -# 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. - -name: GitHub CI - -on: [push, pull_request] - -jobs: - build: - name: Build it - uses: codehaus-plexus/.github/.github/workflows/maven.yml@master - - deploy: - name: Deploy - needs: build - uses: codehaus-plexus/.github/.github/workflows/maven-deploy.yml@master - secrets: inherit diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 4c09c8a..0000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Release Drafter -on: - push: - branches: - - master -jobs: - update_release_draft: - runs-on: ubuntu-latest - steps: - - uses: release-drafter/release-drafter@v6 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 37eebec..0000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -target/ -*.iml -.idea/ -.classpath -.project -.settings/ \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 1789d9f..0000000 --- a/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Plexus Build API -================ - -[![Apache License, Version 2.0, January 2004](https://img.shields.io/github/license/codehaus-plexus/plexus-classworlds.svg?label=License)](http://www.apache.org/licenses/) -[![Maven Central](https://img.shields.io/maven-central/v/org.codehaus.plexus/plexus-build-api.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.codehaus.plexus/plexus-build-api) -![Build Status](https://github.com/codehaus-plexus/plexus-build-api/actions/workflows/maven.yml/badge.svg) - -This API allows IDEs to integrate with Maven deeper than it would be possible by just using regular Maven/Mojo API. - -It supports - -- incremental builds e.g. allows to query which files have been touched since last build -- fine-grained error/info markers (referring to specific files in particular line numbers) -- notifications about updated files - -Current Implementations ------------------------ - -### Default Implementation - -The default implementation shipping with this artifact is supposed to impose minimal overhead. It doesn't support incremental build and acts directly on the file system. Errors and warning are just logged through SLF4J. - -### M2Eclipse - -[M2Eclipse](https://www.eclipse.org/m2e/) is using this API for supporting both incremental builds and fully integrated error markers in Eclipse. They maintain information for Mojo developers at [Making Maven Plugins Compatible](https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html). -Currently only versions up to 0.0.7 (with old Maven coordinates `org.sonatype.plexus:plexus-build-api`) are supported, this limitation is tracked in [Issue 944](https://github.com/eclipse-m2e/m2e-core/issues/944). - -History -------- - -The project was relocated from . Also its Maven coordinates changed from `org.sonatype.plexus:plexus-build-api` to `org.codehaus.plexus:plexus-build-api`, the API is still the same, though. - -## Provided APIs - -### IDE connection to maven process - -This API is usually not used by mojos but for IDE integration, if enabled as a maven-core extension plexus-build-api supply a way to communicate with the running maven build and get events. -The default implementation open a tcp connections to a port specified by the system property `plexus.build.ipc.port` using key/value encoded message format. If no such value is given all messages are silently discarded. diff --git a/css/apache-maven-fluido-1.11.2.min.css b/css/apache-maven-fluido-1.11.2.min.css new file mode 100644 index 0000000..79766a9 --- /dev/null +++ b/css/apache-maven-fluido-1.11.2.min.css @@ -0,0 +1,20 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:gray}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>table.table{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.9em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! + * "Fork me on GitHub" CSS ribbon v0.2.3 | MIT License + * https://github.com/simonwhitaker/github-fork-ribbon-css +*/.github-fork-ribbon{width:12.1em;height:12.1em;position:absolute;overflow:hidden;top:0;right:0;z-index:9999;pointer-events:none;font-size:13px;text-decoration:none;text-indent:-999999px}.github-fork-ribbon.fixed{position:fixed}.github-fork-ribbon:hover,.github-fork-ribbon:active{background-color:rgba(0,0,0,0.0)}.github-fork-ribbon:before,.github-fork-ribbon:after{position:absolute;display:block;width:15.38em;height:1.54em;top:3.23em;right:-3.23em;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon:before{content:"";padding:.38em 0;background-color:#a00;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,0.15)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-ms-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-o-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);-moz-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);pointer-events:auto}.github-fork-ribbon:after{content:attr(data-ribbon);color:#fff;font:700 1em "Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.54em;text-decoration:none;text-shadow:0 -.08em rgba(0,0,0,0.5);text-align:center;text-indent:0;padding:.15em 0;margin:.15em 0;border-width:.08em 0;border-style:dotted;border-color:#fff;border-color:rgba(255,255,255,0.7)}.github-fork-ribbon.left-top,.github-fork-ribbon.left-bottom{right:auto;left:0}.github-fork-ribbon.left-bottom,.github-fork-ribbon.right-bottom{top:auto;bottom:0}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after{right:auto;left:-3.23em}.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{top:auto;bottom:3.23em}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)} \ No newline at end of file diff --git a/css/print.css b/css/print.css new file mode 100644 index 0000000..34af557 --- /dev/null +++ b/css/print.css @@ -0,0 +1,35 @@ +/* + * 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. + */ + +#banner, +#footer, +#leftcol, +#breadcrumbs, +.docs #toc, +.docs .courtesylinks, +#leftColumn, +#navColumn { + display: none !important; +} + +#bodyColumn, +body.docs div.docs { + margin: 0 !important; + border: none !important; +} diff --git a/css/site.css b/css/site.css new file mode 100644 index 0000000..055e7e2 --- /dev/null +++ b/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/dependencies.html b/dependencies.html new file mode 100644 index 0000000..9c4e23c --- /dev/null +++ b/dependencies.html @@ -0,0 +1,288 @@ + + + + + + + + + + plexus-build-api – Project Dependencies + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Dependencies

+

compile

+

The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

+ + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicenses
javax.injectjavax.inject1jarThe Apache Software License, Version 2.0
org.codehaus.plexusplexus-utils4.0.0jarApache License, Version 2.0
org.slf4jslf4j-api1.7.36jarMIT License
+

Project Transitive Dependencies

+

No transitive dependencies are required for this project.

+

Project Dependency Graph

+ +
+

Dependency Tree

+
+

Licenses

+

MIT License: SLF4J API Module

+

Apache License, Version 2.0: Plexus Common Utilities, plexus-build-api

+

The Apache Software License, Version 2.0: javax.inject

+

Dependency File Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameSizeEntriesClassesPackagesJava VersionDebug Information
javax.inject-1.jar2.5 kB8611.5No
plexus-utils-4.0.0.jar192.4 kB128867-Yes
slf4j-api-1.7.36.jar41.1 kB463441.5Yes
TotalSizeEntriesClassesPackagesJava VersionDebug Information
3236 kB182126121.52
compile: 3compile: 236 kBcompile: 182compile: 126compile: 12-compile: 2
+
+
+
+
+ + + + diff --git a/dependency-convergence.html b/dependency-convergence.html new file mode 100644 index 0000000..cfe750b --- /dev/null +++ b/dependency-convergence.html @@ -0,0 +1,157 @@ + + + + + + + + + + plexus-build-api – Dependency Convergence + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Dependency Convergence

+ + + + + + + + + + + + + + + + + + +
+ Statistics: +
Number of dependencies (NOD):3
Number of unique artifacts (NOA):3
Number of version-conflicting artifacts (NOC):0
Number of SNAPSHOT artifacts (NOS):0
Convergence (NOD/NOA):[Success] 100 %
Ready for release (100% convergence and no SNAPSHOTS):[Success] Success
+
+
+
+
+ + + + diff --git a/dependency-info.html b/dependency-info.html new file mode 100644 index 0000000..604a786 --- /dev/null +++ b/dependency-info.html @@ -0,0 +1,162 @@ + + + + + + + + + + plexus-build-api – Dependency Information + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Dependency Information

+

Apache Maven

+
+
<dependency>
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-build-api</artifactId>
+  <version>1.1.0</version>
+</dependency>
+

Apache Ivy

+
+
<dependency org="org.codehaus.plexus" name="plexus-build-api" rev="1.1.0">
+  <artifact name="plexus-build-api" type="jar" />
+</dependency>
+

Groovy Grape

+
+
@Grapes(
+@Grab(group='org.codehaus.plexus', module='plexus-build-api', version='1.1.0')
+)
+

Gradle/Grails

+
+
compile 'org.codehaus.plexus:plexus-build-api:1.1.0'
+

Scala SBT

+
+
libraryDependencies += "org.codehaus.plexus" % "plexus-build-api" % "1.1.0"
+

Leiningen

+
+
[org.codehaus.plexus/plexus-build-api "1.1.0"]
+
+
+
+
+ + + + diff --git a/dependency-management.html b/dependency-management.html new file mode 100644 index 0000000..4ae2a26 --- /dev/null +++ b/dependency-management.html @@ -0,0 +1,268 @@ + + + + + + + + + + plexus-build-api – Project Dependency Management + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Dependency Management

+

compile

+

The following is a list of compile dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run the submodule:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
org.junit.jupiterjunit-jupiter5.9.3jarEclipse Public License v2.0
org.junit.jupiterjunit-jupiter-api5.9.3jarEclipse Public License v2.0
org.junit.jupiterjunit-jupiter-engine5.9.3jarEclipse Public License v2.0
org.junit.jupiterjunit-jupiter-migrationsupport5.9.3jarEclipse Public License v2.0
org.junit.jupiterjunit-jupiter-params5.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-commons1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-console1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-engine1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-jfr1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-launcher1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-reporting1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-runner1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-suite1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-suite-api1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-suite-commons1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-suite-engine1.9.3jarEclipse Public License v2.0
org.junit.platformjunit-platform-testkit1.9.3jarEclipse Public License v2.0
org.junit.vintagejunit-vintage-engine5.9.3jarEclipse Public License v2.0
+

provided

+

The following is a list of provided dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile the submodule, but should be provided by default when using the library:

+ + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
org.apache.maven.plugin-toolsmaven-plugin-annotations3.9.0jarApache-2.0
+
+
+
+
+ + + + diff --git a/distribution-management.html b/distribution-management.html new file mode 100644 index 0000000..38180ce --- /dev/null +++ b/distribution-management.html @@ -0,0 +1,141 @@ + + + + + + + + + + plexus-build-api – Project Distribution Management + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

The following is the distribution management information used by this project.

+

Repository - plexus-releases

https://oss.sonatype.org/service/local/staging/deploy/maven2/
+

Snapshot Repository - plexus-snapshots

https://oss.sonatype.org/content/repositories/plexus-snapshots
+

Site - github:gh-pages

+

scm:git:https://github.com/codehaus-plexus/plexus-build-api.git/plexus-build-api

+
+
+
+
+ + + + diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..423bd5d Binary files /dev/null and b/fonts/glyphicons-halflings-regular.eot differ diff --git a/fonts/glyphicons-halflings-regular.svg b/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..c8f06d9 --- /dev/null +++ b/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..a498ef4 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.ttf differ diff --git a/fonts/glyphicons-halflings-regular.woff b/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..d83c539 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.woff differ diff --git a/images/accessories-text-editor.png b/images/accessories-text-editor.png new file mode 100644 index 0000000..abc3366 Binary files /dev/null and b/images/accessories-text-editor.png differ diff --git a/images/add.gif b/images/add.gif new file mode 100644 index 0000000..1cb3dbf Binary files /dev/null and b/images/add.gif differ diff --git a/images/apache-maven-project-2.png b/images/apache-maven-project-2.png new file mode 100644 index 0000000..a44db6e Binary files /dev/null and b/images/apache-maven-project-2.png differ diff --git a/images/application-certificate.png b/images/application-certificate.png new file mode 100644 index 0000000..cc6aff6 Binary files /dev/null and b/images/application-certificate.png differ diff --git a/images/close.gif b/images/close.gif new file mode 100644 index 0000000..1c26bbc Binary files /dev/null and b/images/close.gif differ diff --git a/images/contact-new.png b/images/contact-new.png new file mode 100644 index 0000000..ebc4316 Binary files /dev/null and b/images/contact-new.png differ diff --git a/images/document-properties.png b/images/document-properties.png new file mode 100644 index 0000000..34c2409 Binary files /dev/null and b/images/document-properties.png differ diff --git a/images/drive-harddisk.png b/images/drive-harddisk.png new file mode 100644 index 0000000..d7ce475 Binary files /dev/null and b/images/drive-harddisk.png differ diff --git a/images/fix.gif b/images/fix.gif new file mode 100644 index 0000000..b7eb3dc Binary files /dev/null and b/images/fix.gif differ diff --git a/images/icon_error_sml.gif b/images/icon_error_sml.gif new file mode 100644 index 0000000..12e9a01 Binary files /dev/null and b/images/icon_error_sml.gif differ diff --git a/images/icon_help_sml.gif b/images/icon_help_sml.gif new file mode 100644 index 0000000..aaf20e6 Binary files /dev/null and b/images/icon_help_sml.gif differ diff --git a/images/icon_info_sml.gif b/images/icon_info_sml.gif new file mode 100644 index 0000000..b776326 Binary files /dev/null and b/images/icon_info_sml.gif differ diff --git a/images/icon_success_sml.gif b/images/icon_success_sml.gif new file mode 100644 index 0000000..0a19527 Binary files /dev/null and b/images/icon_success_sml.gif differ diff --git a/images/icon_warning_sml.gif b/images/icon_warning_sml.gif new file mode 100644 index 0000000..ac6ad6a Binary files /dev/null and b/images/icon_warning_sml.gif differ diff --git a/images/image-x-generic.png b/images/image-x-generic.png new file mode 100644 index 0000000..ab49efb Binary files /dev/null and b/images/image-x-generic.png differ diff --git a/images/internet-web-browser.png b/images/internet-web-browser.png new file mode 100644 index 0000000..307d6ac Binary files /dev/null and b/images/internet-web-browser.png differ diff --git a/images/logos/build-by-maven-black.png b/images/logos/build-by-maven-black.png new file mode 100644 index 0000000..919fd0f Binary files /dev/null and b/images/logos/build-by-maven-black.png differ diff --git a/images/logos/build-by-maven-white.png b/images/logos/build-by-maven-white.png new file mode 100644 index 0000000..7d44c9c Binary files /dev/null and b/images/logos/build-by-maven-white.png differ diff --git a/images/logos/maven-feather.png b/images/logos/maven-feather.png new file mode 100644 index 0000000..b5ada83 Binary files /dev/null and b/images/logos/maven-feather.png differ diff --git a/images/network-server.png b/images/network-server.png new file mode 100644 index 0000000..1d12e19 Binary files /dev/null and b/images/network-server.png differ diff --git a/images/package-x-generic.png b/images/package-x-generic.png new file mode 100644 index 0000000..8b7e9e6 Binary files /dev/null and b/images/package-x-generic.png differ diff --git a/images/profiles/pre-release.png b/images/profiles/pre-release.png new file mode 100644 index 0000000..d448e85 Binary files /dev/null and b/images/profiles/pre-release.png differ diff --git a/images/profiles/retired.png b/images/profiles/retired.png new file mode 100644 index 0000000..f89f6a2 Binary files /dev/null and b/images/profiles/retired.png differ diff --git a/images/profiles/sandbox.png b/images/profiles/sandbox.png new file mode 100644 index 0000000..f88b362 Binary files /dev/null and b/images/profiles/sandbox.png differ diff --git a/images/remove.gif b/images/remove.gif new file mode 100644 index 0000000..fc65631 Binary files /dev/null and b/images/remove.gif differ diff --git a/images/rss.png b/images/rss.png new file mode 100644 index 0000000..a9850ee Binary files /dev/null and b/images/rss.png differ diff --git a/images/update.gif b/images/update.gif new file mode 100644 index 0000000..b2a6d0b Binary files /dev/null and b/images/update.gif differ diff --git a/images/window-new.png b/images/window-new.png new file mode 100644 index 0000000..0e12ef9 Binary files /dev/null and b/images/window-new.png differ diff --git a/img/glyphicons-halflings-white.png b/img/glyphicons-halflings-white.png new file mode 100644 index 0000000..3bf6484 Binary files /dev/null and b/img/glyphicons-halflings-white.png differ diff --git a/img/glyphicons-halflings.png b/img/glyphicons-halflings.png new file mode 100644 index 0000000..a996999 Binary files /dev/null and b/img/glyphicons-halflings.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..ff74931 --- /dev/null +++ b/index.html @@ -0,0 +1,137 @@ + + + + + + + + + + plexus-build-api – About + + + + + + + + + + +
+
+ + + +
+ +
+
+ + + + diff --git a/issue-management.html b/issue-management.html new file mode 100644 index 0000000..c216a6b --- /dev/null +++ b/issue-management.html @@ -0,0 +1,141 @@ + + + + + + + + + + plexus-build-api – Issue Management + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

This project uses github to manage its issues.

+

Issue Management

+

Issues, bugs, and feature requests should be submitted to the following issue management system for this project.

+
+
+
+
+
+ + + + diff --git a/js/apache-maven-fluido-1.11.2.min.js b/js/apache-maven-fluido-1.11.2.min.js new file mode 100644 index 0000000..7a84154 --- /dev/null +++ b/js/apache-maven-fluido-1.11.2.min.js @@ -0,0 +1,287 @@ +(function(e,p){"object"===typeof module&&"object"===typeof module.exports?module.exports=e.document?p(e,!0):function(e){if(!e.document)throw Error("jQuery requires a window with a document");return p(e)}:p(e)})("undefined"!==typeof window?window:this,function(e,p){function x(a){var b=a.length,f=d.type(a);return"function"===f||d.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===f||0===b||"number"===typeof b&&0b;b+=2)"margin"=== +f&&(u+=d.css(a,f+oa[b],!0,l)),k?("content"===f&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==f&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==f&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,f){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); +l=parseFloat(l)||0}return l+S(a,b,f||(c?"border":"content"),k,u)+"px"}function H(a,b,f,d,l){return new H.prototype.init(a,b,f,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var f,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)f=oa[l],d["margin"+f]=d["padding"+f]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,f){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,e=l.length;cf&&l)return b;e.resolveWith(a,[h]);return!1}, +h=e.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},f),originalProperties:b,originalOptions:f,startTime:wa||J(),duration:f.duration,tweens:[],createTween:function(b,f){b=d.Tween(a,h.opts,b,f,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var f=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;fa?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,f){return a.call(b,f,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, +last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&af?Math.max(0,d+f):f:0;fF.cacheLength&&delete a[b.shift()];return a[d+" "]=f}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function e(a,b){var d=b&&a,f=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| +-2147483648)-(~a.sourceIndex||-2147483648);if(f)return f;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,f){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(f[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& +a}function n(){}function v(a){for(var b=0,d=a.length,f="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ta=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ua=new RegExp(ia),wa=new RegExp("^"+ka+"$"),ja={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+la),PSEUDO:new RegExp("^"+ia), +CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},ya=/^(?:input|select|textarea|button)$/i,za=/^h\d$/i,ha= +/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,f=0;a[d++]=b[f++];);a.length= +d-1}}}B=b.support={};G=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};R=b.setDocument=function(a){var b=a?a.ownerDocument||a:E;if(b===I||9!==b.nodeType||!b.documentElement)return I;I=b;O=b.documentElement;(a=b.defaultView)&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",xa,!1):a.attachEvent&&a.attachEvent("onunload",xa));H=!G(b);B.attributes=l(function(a){a.className="i";return!a.getAttribute("className")});B.getElementsByTagName=l(function(a){a.appendChild(b.createComment("")); +return!a.getElementsByTagName("*").length});B.getElementsByClassName=ha.test(b.getElementsByClassName);B.getById=l(function(a){O.appendChild(a).id=Q;return!b.getElementsByName||!b.getElementsByName(Q).length});B.getById?(F.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&H)return(a=b.getElementById(a))&&a.parentNode?[a]:[]},F.filter.ID=function(a){var b=a.replace(qa,ra);return function(a){return a.getAttribute("id")===b}}):(delete F.find.ID,F.filter.ID=function(a){var b=a.replace(qa, +ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],f=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[f++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; +J=[];r=[];if(B.qsa=ha.test(b.querySelectorAll))l(function(a){O.appendChild(a).innerHTML="\x3ca id\x3d'"+Q+"'\x3e\x3c/a\x3e\x3cselect id\x3d'"+Q+"-\f]' msallowcapture\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";a.querySelectorAll("[msallowcapture^\x3d'']").length&&r.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||r.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); +a.querySelectorAll("[id~\x3d"+Q+"-]").length||r.push("~\x3d");a.querySelectorAll(":checked").length||r.push(":checked");a.querySelectorAll("a#"+Q+"+*").length||r.push(".#.+[+~]")}),l(function(a){var d=b.createElement("input");d.setAttribute("type","hidden");a.appendChild(d).setAttribute("name","D");a.querySelectorAll("[name\x3dd]").length&&r.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");a.querySelectorAll(":enabled").length||r.push(":enabled",":disabled");a.querySelectorAll("*,:x");r.push(",.*:")}); +(B.matchesSelector=ha.test(Ba=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&l(function(a){B.disconnectedMatch=Ba.call(a,"div");Ba.call(a,"[s!\x3d'']:x");J.push("!\x3d",ia)});r=r.length&&new RegExp(r.join("|"));J=J.length&&new RegExp(J.join("|"));va=(a=ha.test(O.compareDocumentPosition))||ha.test(O.contains)?function(a,b){var d=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!!(b&&1===b.nodeType&&(d.contains?d.contains(b):a.compareDocumentPosition&& +a.compareDocumentPosition(b)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};ca=a?function(a,d){if(a===d)return x=!0,0;var f=!a.compareDocumentPosition-!d.compareDocumentPosition;if(f)return f;f=(a.ownerDocument||a)===(d.ownerDocument||d)?a.compareDocumentPosition(d):1;return f&1||!B.sortDetached&&d.compareDocumentPosition(a)===f?a===b||a.ownerDocument===E&&va(E,a)?-1:d===b||d.ownerDocument===E&&va(E,d)?1:P?ba(P,a)-ba(P,d):0:f&4?-1:1}:function(a,d){if(a===d)return x=!0,0; +var f=0,k=a.parentNode,l=d.parentNode,c=[a],u=[d];if(!k||!l)return a===b?-1:d===b?1:k?-1:l?1:P?ba(P,a)-ba(P,d):0;if(k===l)return e(a,d);for(;a=a.parentNode;)c.unshift(a);for(a=d;a=a.parentNode;)u.unshift(a);for(;c[f]===u[f];)f++;return f?e(c[f],u[f]):c[f]===E?-1:u[f]===E?1:0};return b};b.matches=function(a,d){return b(a,null,null,d)};b.matchesSelector=function(a,d){(a.ownerDocument||a)!==I&&R(a);d=d.replace(ta,"\x3d'$1']");if(!(!B.matchesSelector||!H||J&&J.test(d)||r&&r.test(d)))try{var f=Ba.call(a, +d);if(f||B.disconnectedMatch||a.document&&11!==a.document.nodeType)return f}catch(Da){}return 0a.nodeType)return!1;return!0},parent:function(a){return!F.pseudos.empty(a)},header:function(a){return za.test(a.nodeName)},input:function(a){return ya.test(a.nodeName)}, +button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,d){return[0>d?d+b:d]}),even:m(function(a,b){for(var d=0;dd?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,f){var k=b[0];f&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,f=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= +0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var f;if(!a)return this;if("string"=== +typeof a){f="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!f||!f[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(f[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(f[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(f[1])&&d.isPlainObject(b))for(f in b)if(d.isFunction(this[f]))this[f](b[f]);else this.attr(f,b[f])}else{if((b=z.getElementById(f[2]))&&b.parentNode){if(b.id!==f[2])return Ha.find(a);this.length=1;this[0]=b}this.context= +z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,f){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===f||1!==a.nodeType||!d(a).is(f));)1===a.nodeType&& +k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,f=d(a,this),k=f.length;return this.filter(function(){for(b=0;bf.nodeType&&(e?-1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: +new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(f,b))){if(!k&&!n.noBubble&&!d.isWindow(f)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(f.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||e)}for(v= +0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1]*)\/>/gi,rb=/<([\w:]+)/,sb=/\s*$/g,ca={option:[1,"\x3cselect multiple\x3d'multiple'\x3e","\x3c/select\x3e"],legend:[1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"],area:[1, +"\x3cmap\x3e","\x3c/map\x3e"],param:[1,"\x3cobject\x3e","\x3c/object\x3e"],thead:[1,"\x3ctable\x3e","\x3c/table\x3e"],tr:[2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"],col:[2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"],td:[3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"],_default:w.htmlSerialize?[0,"",""]:[1,"X\x3cdiv\x3e","\x3c/div\x3e"]},Za=Aa(z).appendChild(z.createElement("div"));ca.optgroup= +ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,f){var c,l,e,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?e=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(e=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(e),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& +n[d.expando]){v=d._data(n);for(p in v.events)d.removeEvent(n,p,v.handle);n.removeAttribute(d.expando)}if("script"===t&&n.text!==l.text)ia(n).text=l.text,A(n);else if("object"===t)n.parentNode&&(n.outerHTML=l.outerHTML),w.html5Clone&&l.innerHTML&&!d.trim(n.innerHTML)&&(n.innerHTML=l.innerHTML);else if("input"===t&&Ua.test(l.type))n.defaultChecked=n.checked=l.checked,n.value!==l.value&&(n.value=l.value);else if("option"===t)n.defaultSelected=n.selected=l.defaultSelected;else if("input"===t||"textarea"=== +t)n.defaultValue=l.defaultValue}}if(b)if(f)for(h=h||N(a),c=c||N(e),g=0;null!=(l=h[g]);g++)P(l,c[g]);else P(a,e);c=N(e,"script");0f;f++)c[a+oa[f]+b]=d[f]||d[f-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var f,e={},k=0;if(d.isArray(b)){c=ga(a);for(f=b.length;kc)?null:[],g=a?c+1:f.length,h=0>c?g:a?c:0;hc.indexOf(" "+e+" ")&&(c+=e+" ");c=d.trim(c);f.className!==c&&(f.className=c)}return this},removeClass:function(a){var b, +f,c,e,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];ha||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=f;var P, +O,F,p={},G=c.dataTypes.slice();if(G[1])for(O in c.converters)p[O.toLowerCase()]=c.converters[O];for(D=G.shift();D;)if(c.responseFields[D]&&(z[c.responseFields[D]]=I),!F&&r&&c.dataFilter&&(I=c.dataFilter(I,c.dataType)),F=D,D=G.shift())if("*"===D)D=F;else if("*"!==F&&F!==D){O=p[F+" "+D]||p["* "+D];if(!O)for(P in p)if(l=P.split(" "),l[1]===D&&(O=p[F+" "+l[0]]||p["* "+l[0]])){!0===O?O=p[P]:!0!==p[P]&&(D=l[0],G.unshift(l[1]));break}if(!0!==O)if(O&&c["throws"])I=O(I);else try{I=O(I)}catch(Tb){l={state:"parsererror", +error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(f)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,e=l.data,k=l.error,f=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";f?w.resolveWith(y,[e,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(f?"ajaxSuccess":"ajaxError", +[B,t,f?e:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var e,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? +null:b},getAllResponseHeaders:function(){return 2===L?h:null},setRequestHeader:function(a,b){var d=a.toLowerCase();L||(a=z[d]=z[d]||a,I[a]=b);return this},overrideMimeType:function(a){L||(t.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>L)for(b in a)da[b]=[da[b],a[b]];else B.always(a[B.status]);return this},abort:function(a){a=a||r;v&&v.abort(a);c(0,a);return this}};w.promise(B).complete=A.add;B.success=B.done;B.error=B.fail;t.url=((a||t.url||la)+"").replace(qc,"").replace(tc,ua[1]+ +"//");t.type=b.method||b.type||t.method||t.type;t.dataTypes=d.trim(t.dataType||"*").toLowerCase().match(Y)||[""];null==t.crossDomain&&(a=zb.exec(t.url.toLowerCase()),t.crossDomain=!(!a||a[1]===ua[1]&&a[2]===ua[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(ua[3]||("http:"===ua[1]?"80":"443"))));t.data&&t.processData&&"string"!==typeof t.data&&(t.data=d.param(t.data,t.traditional));D(Ab,t,b,B);if(2===L)return B;(n=d.event&&t.global)&&0===d.active++&&d.event.trigger("ajaxStart");t.type=t.type.toUpperCase(); +t.hasContent=!sc.test(t.type);g=t.url;t.hasContent||(t.data&&(g=t.url+=(db.test(g)?"\x26":"?")+t.data,delete t.data),!1===t.cache&&(t.url=yb.test(g)?g.replace(yb,"$1_\x3d"+cb++):g+(db.test(g)?"\x26":"?")+"_\x3d"+cb++));t.ifModified&&(d.lastModified[g]&&B.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&B.setRequestHeader("If-None-Match",d.etag[g]));(t.data&&t.hasContent&&!1!==t.contentType||b.contentType)&&B.setRequestHeader("Content-Type",t.contentType);B.setRequestHeader("Accept", +t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(e in t.headers)B.setRequestHeader(e,t.headers[e]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(e in{success:1,error:1,complete:1})B[e](t[e]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, +F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,e,g){d.isFunction(c)&&(g=g||e,e=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:e})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, +b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return d.isFunction(a)?this.each(function(b){d(this).wrapInner(a.call(this,b))}):this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=d.isFunction(a);return this.each(function(c){d(this).wrapAll(b? +a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}});d.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!w.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||d.css(a,"display"))};d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)};var uc=/%20/g,Nb=/\[\]$/,Cb=/\r?\n/g,vc=/^(?:submit|button|image|reset|file)$/i,wc=/^(?:input|select|textarea|keygen)/i;d.param= +function(a,b){var c,e=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return e.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, +"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& +La()))a:{try{a=new e.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,e){var f,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(f in a.xhrFields)g[f]=a.xhrFields[f];a.mimeType&& +g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(f in c)void 0!==c[f]&&g.setRequestHeader(f,c[f]+"");g.send(a.hasContent&&a.data||null);b=function(c,f){var h,l,m;if(b&&(f||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,f)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== +h&&(h=204):h=m.text?200:404}m&&e(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", +a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,f){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||f(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, +!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var f,g,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return f=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, +"$1"+f):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+f),a.converters["script json"]=function(){h||d.error(f+" was not called");return h[0]},a.dataTypes[0]="json",g=e[f],e[f]=function(){h=arguments},c.always(function(){e[f]=g;a[f]&&(a.jsonpCallback=b.jsonpCallback,Db.push(f));h&&d.isFunction(g)&&g(h[0]);h=g=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var f=mb.exec(a);c=!c&&[];if(f)return[b.createElement(f[1])]; +f=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],f.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var f,e,g,h=this,m=a.indexOf(" ");0<=m&&(f=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):g==c?this.pause().cycle():this.slide(c>g?"next":"prev",e(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end), +this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,g){var h=this.$element.find(".item.active"),m=g||h[c]();g=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;g&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=e.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& +(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=e(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(e.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; +setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}g&&this.cycle();return this}}};var x=e.fn.carousel;e.fn.carousel=function(c){return this.each(function(){var g=e(this),h=g.data("carousel"),m=e.extend({},e.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||g.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); +else if(n)h[n]();else m.interval&&h.pause().cycle()})};e.fn.carousel.defaults={interval:5E3,pause:"hover"};e.fn.carousel.Constructor=p;e.fn.carousel.noConflict=function(){e.fn.carousel=x;return this};e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var g=e(this),h,m=e(g.attr("data-target")||(h=g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=e.extend({},m.data(),g.data());var n;m.carousel(h);(n=g.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); +c.preventDefault()})}(window.jQuery); +!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.collapse.defaults,g);this.options.parent&&(this.$parent=e(this.options.parent));this.options.toggle&&this.toggle()};p.prototype={constructor:p,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var c,g,h,m;if(!this.transitioning&&!this.$element.hasClass("in")){c=this.dimension();g=e.camelCase(["scroll",c].join("-"));if((h=this.$parent&&this.$parent.find("\x3e .accordion-group \x3e .in"))&&h.length){if((m= +h.data("collapse"))&&m.transitioning)return;h.collapse("hide");m||h.data("collapse",null)}this.$element[c](0);this.transition("addClass",e.Event("show"),"shown");e.support.transition&&this.$element[c](this.$element[0][g])}},hide:function(){var c;!this.transitioning&&this.$element.hasClass("in")&&(c=this.dimension(),this.reset(this.$element[c]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[c](0))},reset:function(c){var e=this.dimension();this.$element.removeClass("collapse")[e](c|| +"auto")[0].offsetWidth;this.$element[null!==c?"addClass":"removeClass"]("collapse");return this},transition:function(c,g,h){var m=this,n=function(){"show"==g.type&&m.reset();m.transitioning=0;m.$element.trigger(h)};this.$element.trigger(g);g.isDefaultPrevented()||(this.transitioning=1,this.$element[c]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,n):n())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var x=e.fn.collapse; +e.fn.collapse=function(c){return this.each(function(){var g=e(this),h=g.data("collapse"),m=e.extend({},e.fn.collapse.defaults,g.data(),"object"==typeof c&&c);h||g.data("collapse",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.collapse.defaults={toggle:!0};e.fn.collapse.Constructor=p;e.fn.collapse.noConflict=function(){e.fn.collapse=x;return this};e(document).on("click.collapse.data-api","[data-toggle\x3dcollapse]",function(c){var g=e(this),h;c=g.attr("data-target")||c.preventDefault()||(h= +g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,"");h=e(c).data("collapse")?"toggle":g.data();g[e(c).hasClass("in")?"addClass":"removeClass"]("collapsed");e(c).collapse(h)})}(window.jQuery); +!function(e){function p(){e(".dropdown-backdrop").remove();e("[data-toggle\x3ddropdown]").each(function(){x(e(this)).removeClass("open")})}function x(c){var g=c.attr("data-target");g||(g=(g=c.attr("href"))&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,""));(g=g&&e(g))&&g.length||(g=c.parent());return g}var c=function(c){var g=e(c).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(c){c= +e(this);var g,h;if(!c.is(".disabled, :disabled")){g=x(c);h=g.hasClass("open");p();if(!h){if("ontouchstart"in document.documentElement)e('\x3cdiv class\x3d"dropdown-backdrop"/\x3e').insertBefore(e(this)).on("click",p);g.toggleClass("open")}c.focus();return!1}},keydown:function(c){var g,h,p;if(/(38|40|27)/.test(c.keyCode)&&(g=e(this),c.preventDefault(),c.stopPropagation(),!g.is(".disabled, :disabled"))){h=x(g);p=h.hasClass("open");if(!p||p&&27==c.keyCode)return 27==c.which&&h.find("[data-toggle\x3ddropdown]").focus(), +g.click();g=e("[role\x3dmenu] li:not(.divider):visible a",h);g.length&&(h=g.index(g.filter(":focus")),38==c.keyCode&&0c.left&&(e=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(e-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,e,h){this.arrow().css(h,c?50*(1-c/e)+"%":"")},setContent:function(){var c=this.tip(),e=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](e);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= +setTimeout(function(){g.off(e.support.transition.end).detach()},500);g.one(e.support.transition.end,function(){clearTimeout(c);g.detach()})}var g=this.tip(),h=e.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return g.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?c():g.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| +"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return e.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,e=this.options;return c.attr("data-original-title")||("function"==typeof e.title?e.title.call(c[0]):e.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow= +this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?e(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=e.fn.tooltip; +e.fn.tooltip=function(c){return this.each(function(){var g=e(this),h=g.data("tooltip"),m="object"==typeof c&&c;h||g.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.tooltip.Constructor=p;e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};e.fn.tooltip.noConflict= +function(){e.fn.tooltip=x;return this}}(window.jQuery); +!function(e){var p=function(c,e){this.init("popover",c,e)};p.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),e=this.getTitle(),h=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](e);c.find(".popover-content")[this.options.html?"html":"text"](h);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,e=this.options; +return("function"==typeof e.content?e.content.call(c[0]):e.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=e(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=e.fn.popover;e.fn.popover=function(c){return this.each(function(){var g=e(this),h=g.data("popover"),m="object"==typeof c&&c;h||g.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.popover.Constructor=p;e.fn.popover.defaults= +e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});e.fn.popover.noConflict=function(){e.fn.popover=x;return this}}(window.jQuery); +!function(e){function p(c,g){var h=e.proxy(this.process,this),m=e(c).is("body")?e(window):e(c),n;this.options=e.extend({},e.fn.scrollspy.defaults,g);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=e(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=e("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=e([]);this.targets=e([]);this.$body.find(this.selector).map(function(){var g= +e(this),g=g.data("target")||g.attr("href"),h=/^#\w/.test(g)&&e(g);return h&&h.length&&[[h.position().top+(!e.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),g]]||null}).sort(function(c,e){return c[0]-e[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,e=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),h=this.offsets,m=this.targets,n=this.activeTarget, +p;if(c>=e)return n!=(p=m.last()[0])&&this.activate(p);for(p=h.length;p--;)n!=m[p]&&c>=h[p]&&(!h[p+1]||c<=h[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;e(this.selector).parent(".active").removeClass("active");c=e(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=e.fn.scrollspy;e.fn.scrollspy=function(c){return this.each(function(){var g= +e(this),h=g.data("scrollspy"),m="object"==typeof c&&c;h||g.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.scrollspy.Constructor=p;e.fn.scrollspy.defaults={offset:10};e.fn.scrollspy.noConflict=function(){e.fn.scrollspy=x;return this};e(window).on("load",function(){e('[data-spy\x3d"scroll"]').each(function(){var c=e(this);c.scrollspy(c.data())})})}(window.jQuery); +!function(e){var p=function(c){this.element=e(c)};p.prototype={constructor:p,show:function(){var c=this.element,g=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=g.find(".active:last a")[0],n=e.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=e(h),this.activate(c.parent("li"),g),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, +g,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=g.find("\x3e .active"),p=h&&e.support.transition&&n.hasClass("fade");p?n.one(e.support.transition.end,m):m();n.removeClass("in")}};var x=e.fn.tab;e.fn.tab=function(c){return this.each(function(){var g=e(this),h=g.data("tab");h||g.data("tab", +h=new p(this));if("string"==typeof c)h[c]()})};e.fn.tab.Constructor=p;e.fn.tab.noConflict=function(){e.fn.tab=x;return this};e(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();e(this).tab("show")})}(window.jQuery); +!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.typeahead.defaults,g);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=e(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); +return this.hide()},updater:function(c){return c},show:function(){var c=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.length=c-n?"bottom":null!=p&&g<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-g:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=e.fn.affix;e.fn.affix=function(c){return this.each(function(){var g=e(this),h=g.data("affix"),m="object"==typeof c&&c;h||g.data("affix", +h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.affix.Constructor=p;e.fn.affix.defaults={offset:0};e.fn.affix.noConflict=function(){e.fn.affix=x;return this};e(window).on("load",function(){e('[data-spy\x3d"affix"]').each(function(){var c=e(this),g=c.data();g.offset=g.offset||{};g.offsetBottom&&(g.offset.bottom=g.offsetBottom);g.offsetTop&&(g.offset.top=g.offsetTop);c.affix(g)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function e(c){function e(c){var e=c.charCodeAt(0);if(92!==e)return e;var g=c.charAt(1);return(e=H[g])?e:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= +[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var e=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=e.length,m=[],v=0,A=0;v/, +q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));e.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));e.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=e.types)&& +h.push(["typ",m]);e=(""+e.keywords).replace(/^ | $/g,"");e.length&&h.push(["kwd",RegExp("^(?:"+e.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,e){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; +if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var e=c.nodeValue,r=e.match(p);if(r){var v=e.substring(0,r.index);c.nodeValue=v;(e=e.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(e),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function e(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=e(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, +h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=e(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],fa=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],aa=[E,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +V=[aa,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],ha=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=g({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +ha,Aa,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),ia={};m(Ia,["default-code"]);m(c([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +"default-markup htm html mxml xhtml xml xsl".split(" "));m(c([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(g({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(g({keywords:"null,true,false"}),["json"]);m(g({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(g({keywords:aa,cStyleComments:!0}),["java"]);m(g({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(g({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);m(g({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(g({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(g({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(g({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,e,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:e,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function e(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]\.\/\(\)\*\\\n\t\b\v]/g, +"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var e=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return e||c||!1}}}); \ No newline at end of file diff --git a/LICENSE b/licenses.html similarity index 51% rename from LICENSE rename to licenses.html index 261eeb9..6772a3b 100644 --- a/LICENSE +++ b/licenses.html @@ -1,3 +1,124 @@ + + + + + + + + + + plexus-build-api – Project Licenses + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

Typically the licenses listed for the project are that of the project itself, and not of dependencies.

+

Project Licenses

+

Apache License, Version 2.0

+
+
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
@@ -6,38 +127,38 @@
 
    1. Definitions.
 
-      "License" shall mean the terms and conditions for use, reproduction,
+      "License" shall mean the terms and conditions for use, reproduction,
       and distribution as defined by Sections 1 through 9 of this document.
 
-      "Licensor" shall mean the copyright owner or entity authorized by
+      "Licensor" shall mean the copyright owner or entity authorized by
       the copyright owner that is granting the License.
 
-      "Legal Entity" shall mean the union of the acting entity and all
+      "Legal Entity" shall mean the union of the acting entity and all
       other entities that control, are controlled by, or are under common
       control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
+      "control" means (i) the power, direct or indirect, to cause the
       direction or management of such entity, whether by contract or
       otherwise, or (ii) ownership of fifty percent (50%) or more of the
       outstanding shares, or (iii) beneficial ownership of such entity.
 
-      "You" (or "Your") shall mean an individual or Legal Entity
+      "You" (or "Your") shall mean an individual or Legal Entity
       exercising permissions granted by this License.
 
-      "Source" form shall mean the preferred form for making modifications,
+      "Source" form shall mean the preferred form for making modifications,
       including but not limited to software source code, documentation
       source, and configuration files.
 
-      "Object" form shall mean any form resulting from mechanical
+      "Object" form shall mean any form resulting from mechanical
       transformation or translation of a Source form, including but
       not limited to compiled object code, generated documentation,
       and conversions to other media types.
 
-      "Work" shall mean the work of authorship, whether in Source or
+      "Work" shall mean the work of authorship, whether in Source or
       Object form, made available under the License, as indicated by a
       copyright notice that is included in or attached to the work
       (an example is provided in the Appendix below).
 
-      "Derivative Works" shall mean any work, whether in Source or Object
+      "Derivative Works" shall mean any work, whether in Source or Object
       form, that is based on (or derived from) the Work and for which the
       editorial revisions, annotations, elaborations, or other modifications
       represent, as a whole, an original work of authorship. For the purposes
@@ -45,21 +166,21 @@
       separable from, or merely link (or bind by name) to the interfaces of,
       the Work and Derivative Works thereof.
 
-      "Contribution" shall mean any work of authorship, including
+      "Contribution" shall mean any work of authorship, including
       the original version of the Work and any modifications or additions
       to that Work or Derivative Works thereof, that is intentionally
       submitted to Licensor for inclusion in the Work by the copyright owner
       or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
+      the copyright owner. For the purposes of this definition, "submitted"
       means any form of electronic, verbal, or written communication sent
       to the Licensor or its representatives, including but not limited to
       communication on electronic mailing lists, source code control systems,
       and issue tracking systems that are managed by, or on behalf of, the
       Licensor for the purpose of discussing and improving the Work, but
       excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
+      designated in writing by the copyright owner as "Not a Contribution."
 
-      "Contributor" shall mean Licensor and any individual or Legal Entity
+      "Contributor" shall mean Licensor and any individual or Legal Entity
       on behalf of whom a Contribution has been received by Licensor and
       subsequently incorporated within the Work.
 
@@ -103,7 +224,7 @@
           excluding those notices that do not pertain to any part of
           the Derivative Works; and
 
-      (d) If the Work includes a "NOTICE" text file as part of its
+      (d) If the Work includes a "NOTICE" text file as part of its
           distribution, then any Derivative Works that You distribute must
           include a readable copy of the attribution notices contained
           within such NOTICE file, excluding those notices that do not
@@ -142,7 +263,7 @@
 
    7. Disclaimer of Warranty. Unless required by applicable law or
       agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
+      Contributor provides its Contributions) on an "AS IS" BASIS,
       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
       implied, including, without limitation, any warranties or conditions
       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
@@ -178,24 +299,45 @@
    APPENDIX: How to apply the Apache License to your work.
 
       To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
+      boilerplate notice, with the fields enclosed by brackets "[]"
       replaced with your own identifying information. (Don't include
       the brackets!)  The text should be enclosed in the appropriate
       comment syntax for the file format. We also recommend that a
       file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
+      same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
    Copyright [yyyy] [name of copyright owner]
 
-   Licensed under the Apache License, Version 2.0 (the "License");
+   Licensed 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,
+   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.
+
+
+
+
+
+ + + + diff --git a/mailing-lists.html b/mailing-lists.html new file mode 100644 index 0000000..5c7134a --- /dev/null +++ b/mailing-lists.html @@ -0,0 +1,156 @@ + + + + + + + + + + plexus-build-api – Project Mailing Lists + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Mailing Lists

+

These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.

+ + + + + + + + + + + + + + + + + + +
NameSubscribeUnsubscribePostArchive
Plexus and MojoHaus Development ListSubscribeUnsubscribePostgroups.google.com
Former (pre-2015-06) Development List---markmail.org
+
+
+
+
+ + + + diff --git a/plugin-management.html b/plugin-management.html new file mode 100644 index 0000000..c4e8f46 --- /dev/null +++ b/plugin-management.html @@ -0,0 +1,249 @@ + + + + + + + + + + plexus-build-api – Project Plugin Management + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Plugin Management

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersion
com.diffplug.spotlessspotless-maven-plugin2.36.0
org.apache.maven.pluginsmaven-antrun-plugin1.3
org.apache.maven.pluginsmaven-assembly-plugin3.6.0
org.apache.maven.pluginsmaven-checkstyle-plugin3.2.2
org.apache.maven.pluginsmaven-clean-plugin3.2.0
org.apache.maven.pluginsmaven-compiler-plugin3.11.0
org.apache.maven.pluginsmaven-dependency-plugin2.8
org.apache.maven.pluginsmaven-deploy-plugin3.1.1
org.apache.maven.pluginsmaven-enforcer-plugin3.3.0
org.apache.maven.pluginsmaven-gpg-plugin3.1.0
org.apache.maven.pluginsmaven-install-plugin3.1.1
org.apache.maven.pluginsmaven-jar-plugin3.3.0
org.apache.maven.pluginsmaven-javadoc-plugin3.5.0
org.apache.maven.pluginsmaven-jxr-plugin3.3.0
org.apache.maven.pluginsmaven-plugin-plugin3.9.0
org.apache.maven.pluginsmaven-plugin-report-plugin3.9.0
org.apache.maven.pluginsmaven-pmd-plugin3.21.0
org.apache.maven.pluginsmaven-project-info-reports-plugin3.4.3
org.apache.maven.pluginsmaven-release-plugin3.0.0
org.apache.maven.pluginsmaven-resources-plugin3.3.1
org.apache.maven.pluginsmaven-scm-publish-plugin3.2.1
org.apache.maven.pluginsmaven-site-plugin3.12.1
org.apache.maven.pluginsmaven-source-plugin3.2.1
org.apache.maven.pluginsmaven-surefire-plugin3.1.0
org.apache.maven.pluginsmaven-surefire-report-plugin3.1.0
org.codehaus.mojotaglist-maven-plugin3.0.0
org.codehaus.plexusplexus-component-metadata2.1.1
+
+
+
+
+ + + + diff --git a/plugins.html b/plugins.html new file mode 100644 index 0000000..10662d6 --- /dev/null +++ b/plugins.html @@ -0,0 +1,199 @@ + + + + + + + + + + plexus-build-api – Project Plugins + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Build Plugins

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersion
com.diffplug.spotlessspotless-maven-plugin2.36.0
org.apache.maven.pluginsmaven-checkstyle-plugin3.2.2
org.apache.maven.pluginsmaven-clean-plugin3.2.0
org.apache.maven.pluginsmaven-compiler-plugin3.11.0
org.apache.maven.pluginsmaven-deploy-plugin3.1.1
org.apache.maven.pluginsmaven-enforcer-plugin3.3.0
org.apache.maven.pluginsmaven-install-plugin3.1.1
org.apache.maven.pluginsmaven-jar-plugin3.3.0
org.apache.maven.pluginsmaven-resources-plugin3.3.1
org.apache.maven.pluginsmaven-site-plugin3.12.1
org.apache.maven.pluginsmaven-surefire-plugin3.1.0
org.eclipse.sisusisu-maven-plugin0.9.0.M2
+

Project Report Plugins

+ + + + + + + + +
GroupIdArtifactIdVersion
org.apache.maven.pluginsmaven-project-info-reports-plugin3.4.3
+
+
+
+
+ + + + diff --git a/pom.xml b/pom.xml deleted file mode 100644 index d6fad88..0000000 --- a/pom.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - 4.0.0 - - - org.codehaus.plexus - plexus - 22 - - - plexus-build-api - 1.2.1-SNAPSHOT - - - scm:git:https://github.com/codehaus-plexus/plexus-build-api.git - ${project.scm.connection} - master - https://github.com/codehaus-plexus/plexus-build-api/tree/master - - - - - org.codehaus.plexus - plexus-utils - 4.0.2 - - - javax.inject - javax.inject - 1 - - - org.slf4j - slf4j-api - 1.7.36 - - - - org.sonatype.plexus - plexus-build-api - 0.0.7 - - - * - * - - - - - org.eclipse.sisu - org.eclipse.sisu.plexus - 0.9.0.M4 - - - * - * - - - - - org.apache.maven - maven-core - 3.9.10 - provided - - - - - - - - true - src/main/resources - - - - - org.eclipse.sisu - sisu-maven-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - true - - - - org.apache.maven.plugins - maven-jar-plugin - - - - test-jar - - - - - - org.apache.maven.plugins - maven-scm-publish-plugin - - ${project.reporting.outputDirectory} - - - - - scm-publish - - - publish-scm - - site-deploy - - - - - - - diff --git a/project-info.html b/project-info.html new file mode 100644 index 0000000..462a182 --- /dev/null +++ b/project-info.html @@ -0,0 +1,184 @@ + + + + + + + + + + plexus-build-api – Project Information + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Information

+

This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

+

Overview

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DocumentDescription
AboutThe Plexus project provides a full software stack for creating and executing software projects.
SummaryThis document lists other related information of this project
Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
LicensesThis document lists the project license(s).
TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
Source Code ManagementThis document lists ways to access the online source repository.
Issue ManagementThis document provides information on the issue management system used in this project.
Mailing ListsThis document provides subscription and archive information for this project's mailing lists.
Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
DependenciesThis document lists the project's dependencies and provides information on each dependency.
Dependency ConvergenceThis document presents the convergence of dependency versions across the entire project, and its sub modules.
Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
PluginsThis document lists the build plugins and the report plugins used by this project.
Distribution ManagementThis document provides informations on the distribution management of this project.
+
+
+
+
+ + + + diff --git a/scm.html b/scm.html new file mode 100644 index 0000000..03cebf0 --- /dev/null +++ b/scm.html @@ -0,0 +1,151 @@ + + + + + + + + + + plexus-build-api – Source Code Management + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/documentation.

+

Web Browser Access

+

The following is a link to a browsable version of the source repository:

+
+

Anonymous Access

+

The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

+
+
$ git clone --branch plexus-build-api-1.1.0 https://github.com/codehaus-plexus/plexus-build-api.git
+

Developer Access

+

Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

+
+
$ git clone --branch plexus-build-api-1.1.0 https://github.com/codehaus-plexus/plexus-build-api.git
+

Access from Behind a Firewall

+

Refer to the documentation of the SCM used for more information about access behind a firewall.

+
+
+
+
+ + + + diff --git a/src/main/java/org/codehaus/plexus/build/BuildContext.java b/src/main/java/org/codehaus/plexus/build/BuildContext.java deleted file mode 100644 index e13b37d..0000000 --- a/src/main/java/org/codehaus/plexus/build/BuildContext.java +++ /dev/null @@ -1,240 +0,0 @@ -/* -Copyright (c) 2008 Sonatype, Inc. All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build; - -import java.io.File; -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; - -import org.codehaus.plexus.util.Scanner; - -// TODO should it be BuildWorkspace or something like that? -/** - *

BuildContext interface.

- */ -public interface BuildContext { - /** Constant SEVERITY_WARNING=1 */ - int SEVERITY_WARNING = 1; - - /** Constant SEVERITY_ERROR=2 */ - int SEVERITY_ERROR = 2; - - // TODO should we add File getBasedir()? - - /** - * Returns true if file or folder identified by relpath has - * changed since last build. - * - * @param relpath is path relative to build context basedir - * @return a boolean. - */ - boolean hasDelta(String relpath); - - /** - * Returns true if the file has changed since last build or is not - * under basedir. - * - * @since 0.0.5 - * @param file a {@link java.io.File} object. - * @return a boolean. - */ - boolean hasDelta(File file); - - /** - * Returns true if any file or folder identified by relpaths has - * changed since last build. - * - * @param relpaths paths relative to build context basedir - * @return a boolean. - */ - boolean hasDelta(List relpaths); - - /** - * Indicates that the file or folder content has been modified during the build. - * - * @see #newFileOutputStream(File) - * @param file a {@link java.io.File} object. - */ - void refresh(File file); - - /** - * Returns new OutputStream that writes to the file. - * - * Files changed using OutputStream returned by this method do not need to be - * explicitly refreshed using {@link #refresh(File)}. - * - * As an optional optimisation, OutputStreams created by incremental build - * context will attempt to avoid writing to the file if file content - * has not changed. - * - * @param file a {@link java.io.File} object. - * @return a {@link java.io.OutputStream} object. - * @throws java.io.IOException if any. - */ - OutputStream newFileOutputStream(File file) throws IOException; - - /** - * Convenience method, fully equal to newScanner(basedir, false) - * - * @param basedir a {@link java.io.File} object. - * @return a {@link org.codehaus.plexus.util.Scanner} object. - */ - Scanner newScanner(File basedir); - - /** - * Returned Scanner scans basedir for files and directories - * deleted since last build. Returns empty Scanner if basedir - * is not under this build context basedir. - * - * @param basedir a {@link java.io.File} object. - * @return a {@link org.codehaus.plexus.util.Scanner} object. - */ - Scanner newDeleteScanner(File basedir); - - /** - * Returned Scanner scans files and folders under basedir. - * - * If this is an incremental build context and ignoreDelta - * is false, the scanner will only "see" files and folders with - * content changes since last build. - * - * If ignoreDelta is true, the scanner will "see" all - * files and folders. - * - * Please beware that ignoreDelta=false does NOT work reliably for operations - * that copy resources from source to target locations. Returned Scanner - * only scans changed source resources and it does not consider changed or deleted - * target resources. This results in missing or stale target resources. - * Starting with 0.5.0, recommended way to process resources is to use - * #newScanner(basedir,true) to locate all source resources and {@link #isUptodate(File, File)} - * to optimized processing of uptodate target resources. - * - * Returns empty Scanner if basedir is not under this build context basedir. - * - * https://issues.apache.org/jira/browse/MSHARED-125 - * - * @param basedir a {@link java.io.File} object. - * @param ignoreDelta a boolean. - * @return a {@link org.codehaus.plexus.util.Scanner} object. - */ - Scanner newScanner(File basedir, boolean ignoreDelta); - - /** - * Returns true if this build context is incremental. - * - * Scanners created by {@link #newScanner(File)} of an incremental build context - * will ignore files and folders that were not changed since last build. - * Additionally, {@link #newDeleteScanner(File)} will scan files and directories - * deleted since last build. - * - * @return a boolean. - */ - boolean isIncremental(); - - /** - * Associate specified key with specified value - * in the build context. - * - * Primary (and the only) purpose of this method is to allow preservation of - * state needed for proper incremental behaviour between consecutive executions - * of the same mojo needed to. - * - * For example, maven-plugin-plugin:descriptor mojo - * can store collection of extracted MojoDescritpor during first invocation. Then - * on each consecutive execution maven-plugin-plugin:descriptor will only need - * to extract MojoDescriptors for changed files. - * - * @see #getValue(String) - * @param key a {@link java.lang.String} object. - * @param value a {@link java.lang.Object} object. - */ - void setValue(String key, Object value); - - /** - * Returns value associated with key during previous mojo execution. - * - * This method always returns null for non-incremental builds - * (i.e., {@link #isIncremental()} returns false) and mojos are - * expected to fall back to full, non-incremental behaviour. - * - * @see #setValue(String, Object) - * @see #isIncremental() - * @param key a {@link java.lang.String} object. - * @return a {@link java.lang.Object} object. - */ - Object getValue(String key); - - /** - *

addWarning.

- * - * @deprecated Use addMessage with severity=SEVERITY_ERROR instead - * @since 0.0.5 - * @param file a {@link java.io.File} object. - * @param line a int. - * @param column a int. - * @param message a {@link java.lang.String} object. - * @param cause a {@link java.lang.Throwable} object. - */ - void addWarning(File file, int line, int column, String message, Throwable cause); - - /** - *

addError.

- * - * @deprecated Use addMessage with severity=SEVERITY_WARNING instead - * @since 0.0.5 - * @param file a {@link java.io.File} object. - * @param line a int. - * @param column a int. - * @param message a {@link java.lang.String} object. - * @param cause a {@link java.lang.Throwable} object. - */ - void addError(File file, int line, int column, String message, Throwable cause); - - /** - * Adds a message to the build context. The message is associated with a file and a location inside that file. - * - * @param file The file or folder with which the message is associated. Should not be null and it is recommended to be - * an absolute path. - * @param line The line number inside the file. Use 1 (not 0) for the first line. Use 0 for unknown/unspecified. - * @param column The column number inside the file. Use 1 (not 0) for the first column. Use 0 for unknown/unspecified. - * @param severity The severity of the message: SEVERITY_WARNING or SEVERITY_ERROR. - * @param cause A Throwable object associated with the message. Can be null. - * @since 0.0.7 - * @param message a {@link java.lang.String} object. - */ - void addMessage(File file, int line, int column, String message, int severity, Throwable cause); - - /** - * Removes all messages associated with a file or folder during a previous build. It does not affect the messages - * added during the current build. - * - * @since 0.0.7 - * @param file a {@link java.io.File} object. - */ - void removeMessages(File file); - - /** - * Returns true, if the target file exists and is uptodate compared to the source file. - * - * More specifically, this method returns true when both target and source files exist, - * do not have changes since last incremental build and the target file was last modified - * later than the source file. Returns false in all other cases. - * - * @since 0.0.5 - * @param target a {@link java.io.File} object. - * @param source a {@link java.io.File} object. - * @return a boolean. - */ - boolean isUptodate(File target, File source); -} diff --git a/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java b/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java deleted file mode 100644 index 2b34e71..0000000 --- a/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java +++ /dev/null @@ -1,208 +0,0 @@ -/* -Copyright (c) 2008 Sonatype, Inc. All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ - -package org.codehaus.plexus.build; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import java.io.File; -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.apache.maven.plugin.LegacySupport; -import org.codehaus.plexus.build.connect.BuildConnection; -import org.codehaus.plexus.build.connect.messages.RefreshMessage; -import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.util.Scanner; -import org.codehaus.plexus.util.io.CachingOutputStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Filesystem based non-incremental build context implementation which behaves - * as if all files were just created. More specifically, - * - *
    - *
  1. hasDelta returns true for all paths
  2. - *
  3. newScanner returns Scanner that scans all files under provided - * basedir
  4. - *
  5. newDeletedScanner always returns empty scanner
  6. - *
  7. isIncremental returns false
  8. - *
  9. getValue always returns the last set value in this session and only - * stores to memory
  10. - *
- */ -@Named("default") -@Singleton -public class DefaultBuildContext implements BuildContext { - - private final Logger logger = LoggerFactory.getLogger(DefaultBuildContext.class); - // the legacy API requires the AbstractLogEnabled we just have it here to get - // compile errors in case it is missing from the classpath! - @SuppressWarnings("unused") - private static final AbstractLogEnabled DUMMY = null; - - private final Map contextMap = new ConcurrentHashMap<>(); - private org.sonatype.plexus.build.incremental.BuildContext legacy; - private BuildConnection connection; - private LegacySupport legacySupport; - - /** - * @param legacy the legacy API we delegate to by default, this allow us - * to support "older" plugins and implementors of the API - * while still having a way to move forward! - * @param connection the connection we use to forward refresh events - * @param legacySupport legacy support to get the current session - */ - @Inject - public DefaultBuildContext( - org.sonatype.plexus.build.incremental.BuildContext legacy, - BuildConnection connection, - LegacySupport legacySupport) { - this.legacy = legacy; - this.connection = connection; - this.legacySupport = legacySupport; - } - - /** {@inheritDoc} */ - public boolean hasDelta(String relpath) { - return legacy.hasDelta(relpath); - } - - /** - *

hasDelta.

- * - * @param file a {@link java.io.File} object. - * @return a boolean. - */ - public boolean hasDelta(File file) { - return legacy.hasDelta(file); - } - - /** - *

hasDelta.

- * - * @param relpaths a {@link java.util.List} object. - * @return a boolean. - */ - public boolean hasDelta(List relpaths) { - return legacy.hasDelta(relpaths); - } - - /** {@inheritDoc} */ - public OutputStream newFileOutputStream(File file) throws IOException { - if (isDefaultImplementation()) { - return new CachingOutputStream(file.toPath()); - } - return legacy.newFileOutputStream(file); - } - - /** - * @return true if the legacy is the default implementation and we - * can safely override/change behavior here, or false if a - * custom implementation is used and full delegation is required. - */ - private boolean isDefaultImplementation() { - return legacy.getClass().equals(org.sonatype.plexus.build.incremental.DefaultBuildContext.class); - } - - /** {@inheritDoc} */ - public Scanner newScanner(File basedir) { - return legacy.newScanner(basedir); - } - - /** {@inheritDoc} */ - public void refresh(File file) { - legacy.refresh(file); - connection.send(new RefreshMessage(file.toPath()), legacySupport.getSession()); - } - - /** {@inheritDoc} */ - public Scanner newDeleteScanner(File basedir) { - return legacy.newDeleteScanner(basedir); - } - - /** {@inheritDoc} */ - public Scanner newScanner(File basedir, boolean ignoreDelta) { - return legacy.newScanner(basedir, ignoreDelta); - } - - /** - *

isIncremental.

- * - * @return a boolean. - */ - public boolean isIncremental() { - return legacy.isIncremental(); - } - - /** {@inheritDoc} */ - public Object getValue(String key) { - return contextMap.get(key); - } - - /** {@inheritDoc} */ - public void setValue(String key, Object value) { - contextMap.put(key, value); - } - - /** {@inheritDoc} */ - public void addError(File file, int line, int column, String message, Throwable cause) { - addMessage(file, line, column, message, SEVERITY_ERROR, cause); - } - - /** {@inheritDoc} */ - public void addWarning(File file, int line, int column, String message, Throwable cause) { - addMessage(file, line, column, message, SEVERITY_WARNING, cause); - } - - private String getMessage(File file, int line, int column, String message) { - return file.getAbsolutePath() + " [" + line + ':' + column + "]: " + message; - } - - /** {@inheritDoc} */ - public void addMessage(File file, int line, int column, String message, int severity, Throwable cause) { - if (isDefaultImplementation()) { - switch (severity) { - case BuildContext.SEVERITY_ERROR: - logger.error(getMessage(file, line, column, message), cause); - return; - case BuildContext.SEVERITY_WARNING: - logger.warn(getMessage(file, line, column, message), cause); - return; - default: - logger.debug(getMessage(file, line, column, message), cause); - return; - } - } - legacy.addMessage(file, line, column, message, severity, cause); - } - - /** {@inheritDoc} */ - public void removeMessages(File file) { - if (isDefaultImplementation()) { - return; - } - legacy.removeMessages(file); - } - - /** {@inheritDoc} */ - public boolean isUptodate(File target, File source) { - return legacy.isUptodate(target, source); - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/BuildConnection.java b/src/main/java/org/codehaus/plexus/build/connect/BuildConnection.java deleted file mode 100644 index 921115e..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/BuildConnection.java +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect; - -import org.apache.maven.execution.MavenSession; -import org.codehaus.plexus.build.connect.messages.Message; - -/** - * A {@link BuildConnection} allow communication between a an IDE and a maven - * build to observe the state of the build and act on certain events. This is - * usually not used directly by mojos but invoked internally by other APIs. - */ -public interface BuildConnection { - - /** - * Send a message and returns the reply from the other endpoint, should only be - * called from a maven thread! - * - * @param message the message to send - * @param mavenSession the maven session to reference - * @return the reply message or null if this connection is not - * enabled and the message was discarded. - */ - Message send(Message message, MavenSession mavenSession); - - /** - * This method allows code to perform an eager check if a buildconnection is - * present to send messages. This can be used to guard operations to prevent - * allocate resources or objects if the message will be dropped. - * - * @return true if the connection can be used to send messages or - * if they will be discarded - */ - boolean isEnabled(); -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/Configuration.java b/src/main/java/org/codehaus/plexus/build/connect/Configuration.java deleted file mode 100644 index 2444145..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/Configuration.java +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect; - -import org.codehaus.plexus.build.connect.messages.Message; - -/** - * Provides access to the configuration provided by the server - */ -public interface Configuration { - - /** - * If this property is set to true in reply to a InitMessage - */ - public static final String CONFIG_SEND_PROJECTS = "sendProjectInfos"; - - /** - * @return true if {@link #CONFIG_SEND_PROJECTS} is - * provided - */ - public boolean isSendProjects(); - - /** - * Creates a Configuration from a message - * - * @param message - * @return the configuration backed by the message payload - */ - public static Configuration of(Message message) { - return new Configuration() { - - @Override - public boolean isSendProjects() { - return message.getBooleanProperty(CONFIG_SEND_PROJECTS, false); - } - }; - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/EventListener.java b/src/main/java/org/codehaus/plexus/build/connect/EventListener.java deleted file mode 100644 index 1eb5e8d..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/EventListener.java +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.apache.maven.eventspy.EventSpy; -import org.apache.maven.execution.ExecutionEvent; -import org.apache.maven.execution.ExecutionEvent.Type; -import org.apache.maven.execution.MavenSession; -import org.codehaus.plexus.build.connect.messages.InitMessage; -import org.codehaus.plexus.build.connect.messages.Message; -import org.codehaus.plexus.build.connect.messages.MojoMessage; -import org.codehaus.plexus.build.connect.messages.ProjectMessage; -import org.codehaus.plexus.build.connect.messages.ProjectsMessage; -import org.codehaus.plexus.build.connect.messages.SessionMessage; - -/** - * Listen to all maven events and forward them to the endpoint - */ -@Named -@Singleton -public class EventListener implements EventSpy { - - private BuildConnection connection; - private Configuration configuration; - - /** - * Creates endpoint for the given connection - * - * @param connection injected - */ - @Inject - public EventListener(BuildConnection connection) { - this.connection = connection; - } - - @Override - public void init(Context context) throws Exception { - Message message = connection.send(new InitMessage(context), null); - if (message != null) { - configuration = Configuration.of(message); - } - } - - @Override - public void onEvent(Object event) throws Exception { - if (configuration == null) { - return; - } - if (event instanceof ExecutionEvent) { - handleExecutionEvent((ExecutionEvent) event); - } - } - - private void handleExecutionEvent(ExecutionEvent event) { - MavenSession session = event.getSession(); - Type type = event.getType(); - switch (type) { - case SessionStarted: - connection.send(new SessionMessage(session, true), session); - if (configuration.isSendProjects()) { - connection.send(new ProjectsMessage(session.getProjects()), session); - } - break; - case SessionEnded: - connection.send(new SessionMessage(session, false), session); - break; - case ProjectStarted: - case ProjectFailed: - case ProjectSkipped: - case ProjectSucceeded: - connection.send(new ProjectMessage(event.getProject(), type), session); - break; - case MojoStarted: - case MojoFailed: - case MojoSkipped: - case MojoSucceeded: - connection.send(new MojoMessage(event.getMojoExecution(), type), session); - break; - default: - break; - } - } - - @Override - public void close() throws Exception {} -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/TcpBuildConnection.java b/src/main/java/org/codehaus/plexus/build/connect/TcpBuildConnection.java deleted file mode 100644 index 339487e..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/TcpBuildConnection.java +++ /dev/null @@ -1,253 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect; - -import javax.inject.Named; -import javax.inject.Singleton; - -import java.io.Closeable; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.WeakHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.BiConsumer; -import java.util.function.Function; - -import org.apache.maven.execution.MavenSession; -import org.codehaus.plexus.build.connect.messages.Message; - -/** - * Default implementation using the system property - * plexus.build.ipc.port to communicate with an endpoint to - * exchange messages - */ -@Named("default") -@Singleton -public class TcpBuildConnection implements BuildConnection { - private static final String PLEXUS_BUILD_IPC_PORT = "plexus.build.ipc.port"; - - private static final int PORT = Integer.getInteger(PLEXUS_BUILD_IPC_PORT, 0); - - private final Map sessionMap = new WeakHashMap<>(); - - private final ThreadLocal connections = - ThreadLocal.withInitial(() -> new TcpClientConnection()); - - @Override - public boolean isEnabled() { - return PORT > 0; - } - - @Override - public Message send(Message message, MavenSession mavenSession) { - if (isEnabled()) { - String sessionId = getId(mavenSession); - byte[] messageBytes = message.serialize(sessionId); - byte[] replyBytes = connections.get().send(messageBytes); - if (replyBytes.length > 0) { - return Message.decode(replyBytes); - } - } - return null; - } - - private synchronized String getId(MavenSession session) { - if (session == null) { - return Thread.currentThread().getName(); - } - return sessionMap.computeIfAbsent(session, x -> UUID.randomUUID().toString()); - } - - /** - * Creates a new server that will receive messages from a remote endpoint and - * inform the consumer - * - * @param consumer the consumer of messages, might be called by different - * threads, if the consumer throws an exception while handling a - * message it will maybe no longer receive some messages. The - * returned map is used as a payload for the reply to the - * server, if null is returned a simple - * acknowledgement without any payload will be send to the - * endpoint. If the consumer performs blocking operations the - * further execution of the maven process might be halted - * depending on the message type, if that is not desired work - * should be offloaded by the consumer to a different thread. - * @return a {@link ServerConnection} that can be used to shutdown the server - * and get properties that needs to be passed to the maven process - * @throws IOException if no local socket can be opened - */ - public static ServerConnection createServer(Function> consumer) throws IOException { - return new ServerConnection(new ServerSocket(0), consumer); - } - - /** - * Represents a server connection that must be created to communicate with the - * maven process using the {@link TcpBuildConnection} - */ - public static final class ServerConnection implements AutoCloseable { - - private ServerSocket socket; - private ExecutorService executor = Executors.newCachedThreadPool(); - private List connections = new ArrayList<>(); - - ServerConnection(ServerSocket socket, Function> consumer) { - this.socket = socket; - executor.execute(() -> { - while (!Thread.currentThread().isInterrupted()) { - try { - TcpServerConnection connection = new TcpServerConnection(socket.accept(), consumer); - connections.add(connection); - executor.execute(connection); - } catch (IOException e) { - return; - } - } - }); - } - - @Override - public void close() { - executor.shutdownNow(); - for (TcpServerConnection connection : connections) { - connection.close(); - } - try { - socket.close(); - } catch (IOException e) { - } - } - - /** - * Given a consumer publishes required properties for a process to launch - * - * @param consumer the consumer for system properties - */ - public void setupProcess(BiConsumer consumer) { - // currently only one but might become more later (e.g. timeout, reconnects, - // ...) - consumer.accept(PLEXUS_BUILD_IPC_PORT, Integer.toString(socket.getLocalPort())); - } - } - - private static final class TcpServerConnection implements Runnable, Closeable { - - private Socket socket; - private Function> consumer; - private DataInputStream in; - private DataOutputStream out; - private AtomicBoolean closed = new AtomicBoolean(); - - public TcpServerConnection(Socket socket, Function> consumer) throws IOException { - this.socket = socket; - this.consumer = consumer; - in = new DataInputStream(socket.getInputStream()); - out = new DataOutputStream(socket.getOutputStream()); - } - - @Override - public void run() { - try { - while (!closed.get() && !Thread.currentThread().isInterrupted()) { - try { - int length = in.readInt(); - if (length == 0) { - return; - } - byte[] bytes = new byte[length]; - in.readFully(bytes); - Message message = Message.decode(bytes); - Map payload = consumer.apply(message); - Message reply = Message.replyTo(message, payload); - byte[] responseBytes = reply.serialize(); - synchronized (out) { - out.writeInt(responseBytes.length); - out.write(responseBytes); - out.flush(); - } - } catch (Exception e) { - return; - } - } - } finally { - close(); - } - } - - @Override - public void close() { - if (closed.compareAndSet(false, true)) { - try { - synchronized (out) { - out.writeInt(0); - out.flush(); - } - } catch (IOException e) { - } - try { - socket.close(); - } catch (IOException e) { - } - } - } - } - - private static final class TcpClientConnection { - - private Socket socket; - private boolean closed; - private DataInputStream in; - private DataOutputStream out; - - public byte[] send(byte[] messageBytes) { - if (!closed) { - try { - if (socket == null) { - socket = new Socket("localhost", PORT); - in = new DataInputStream(socket.getInputStream()); - out = new DataOutputStream(socket.getOutputStream()); - } - out.writeInt(messageBytes.length); - out.write(messageBytes); - out.flush(); - int length = in.readInt(); - if (length == 0) { - socket.close(); - closed = true; - } else { - byte[] bytes = new byte[length]; - in.readFully(bytes); - return bytes; - } - } catch (IOException e) { - closed = true; - if (socket != null) { - try { - socket.close(); - } catch (IOException e1) { - } - } - } - } - return new byte[0]; - } - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/InitMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/InitMessage.java deleted file mode 100644 index e8cabcb..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/InitMessage.java +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Properties; - -import org.apache.maven.eventspy.EventSpy.Context; - -/** - * Message send to init the inital communication with the endpoints - */ -public class InitMessage extends Message { - - /** - * Creates a message with inital information about the running maven system - * - * @param context the context settings to send to the endpoint - */ - public InitMessage(Context context) { - super(toMap(context)); - } - - private static Map toMap(Context context) { - Map data = new LinkedHashMap<>(); - context.getData().forEach((k, v) -> { - if (v instanceof String) { - data.put(k, (String) v); - } - if (v instanceof Properties) { - Properties properties = (Properties) v; - for (String p : properties.stringPropertyNames()) { - data.put(k + "." + p, properties.getProperty(p)); - } - } - }); - return data; - } - - InitMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/Message.java b/src/main/java/org/codehaus/plexus/build/connect/messages/Message.java deleted file mode 100644 index ddc1430..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/Message.java +++ /dev/null @@ -1,265 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.atomic.AtomicLong; -import java.util.stream.Stream; - -/** - * A message exchanged between two endpoints, usually an IDE and a maven build - */ -public class Message { - private static final ThreadLocal ID = new ThreadLocal() { - private final AtomicLong generator = new AtomicLong(); - - @Override - protected Long initialValue() { - return generator.getAndIncrement(); - } - }; - private final long threadId; - private final Map properties; - private final String sessionId; - - Message(Map payload) { - this(null, ID.get(), payload); - } - - Message(String sessionId, long threadId, Map payload) { - this.sessionId = sessionId; - this.properties = Objects.requireNonNull(payload); - this.threadId = threadId; - } - - /** - * @return the keys stored in this message - */ - public Stream keys() { - return properties.keySet().stream(); - } - - /** - * Get a String property from the payload - * - * @param key the key to fetch - * @return the value - */ - public String getProperty(String key) { - return properties.get(key); - } - - /** - * Get a String property from the payload - * - * @param key the key to fetch - * @param defaultValue default value to use when no value is present - * @return the value - */ - public String getProperty(String key, String defaultValue) { - return properties.getOrDefault(key, defaultValue); - } - - /** - * Get a boolean property from the payload - * - * @param key the key to fetch - * @return the value - */ - public boolean getBooleanProperty(String key) { - return Boolean.parseBoolean(properties.get(key)); - } - - /** - * Get a boolean property from the payload - * - * @param key the key to fetch - * @param defaultValue the value to use if not value is present - * @return the value - */ - public boolean getBooleanProperty(String key, boolean defaultValue) { - String property = getProperty(key); - if (property == null) { - return defaultValue; - } - return Boolean.parseBoolean(property); - } - - /** - * @return the remote session id for this message, only valid for messages not - * created locally - */ - public String getSessionId() { - if (sessionId == null) { - throw new IllegalStateException("can not be called on a local message!"); - } - return sessionId; - } - - /** - * @return the bytes using the message session id - */ - public byte[] serialize() { - return serialize(getSessionId()); - } - - @Override - public String toString() { - return getClass().getSimpleName() + " [" + sessionId + "][" + threadId + "] " + properties; - } - - /** - * Creates bytes for this message using the session id - * - * @param sessionId - * @return the bytes using the supplied message id - */ - public byte[] serialize(String sessionId) { - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(stream); - try { - writeString(sessionId, out); - out.writeLong(threadId); - writeString(getClass().getSimpleName(), out); - if (properties.isEmpty()) { - out.writeInt(0); - } else { - Set> set = properties.entrySet(); - out.writeInt(set.size()); - for (Entry entry : set) { - writeString(entry.getKey(), out); - writeString(entry.getValue(), out); - } - } - } catch (IOException e) { - // should never happen, but if it happens something is wrong! - throw new RuntimeException("Internal Error: Write data failed", e); - } - return stream.toByteArray(); - } - - /** - * Creates a reply to a message using the thread id and session id from the - * original but with the provided payload - * - * @param message the reply message to inherit from - * @param payload the new payload - * @return the message - */ - public static Message replyTo(Message message, Map payload) { - if (payload == null) { - payload = Collections.emptyMap(); - } - return new Message(message.sessionId, message.threadId, payload); - } - - /** - * Decodes a message from its bytes - * - * @param bytes the bytes to decode - * @return the message or null if decoding failed - */ - public static Message decode(byte[] bytes) { - ByteArrayInputStream stream = new ByteArrayInputStream(bytes); - DataInputStream in = new DataInputStream(stream); - try { - String sessionId = readString(in); - long threadId = in.readLong(); - String messageType = readString(in); - int size = in.readInt(); - Map payload = new LinkedHashMap<>(size); - for (int i = 0; i < size; i++) { - payload.put(readString(in), readString(in)); - } - if ("SessionMessage".equals(messageType)) { - return new SessionMessage(sessionId, threadId, payload); - } - if ("ProjectsMessage".equals(messageType)) { - return new ProjectsMessage(sessionId, threadId, payload); - } - if ("RefreshMessage".equals(messageType)) { - return new RefreshMessage(sessionId, threadId, payload); - } - if ("InitMessage".equals(messageType)) { - return new InitMessage(sessionId, threadId, payload); - } - if ("ProjectMessage".equals(messageType)) { - return new ProjectMessage(sessionId, threadId, payload); - } - if ("MojoMessage".equals(messageType)) { - return new MojoMessage(sessionId, threadId, payload); - } - return new Message(sessionId, threadId, payload); - } catch (IOException e) { - // should never happen, but if it happens something is wrong! - System.err.println("Internal Error: Message decoding failed: " + e); - } - return null; - } - - private static String readString(DataInputStream in) throws IOException { - int length = in.readInt(); - if (length < 0) { - return null; - } - if (length == 0) { - return ""; - } - byte[] bs = new byte[length]; - in.readFully(bs); - return new String(bs, StandardCharsets.UTF_8); - } - - private static void writeString(String string, DataOutputStream stream) throws IOException { - if (string == null) { - stream.writeInt(-1); - } else { - byte[] bytes = string.getBytes(StandardCharsets.UTF_8); - stream.writeInt(bytes.length); - stream.write(bytes); - } - } - - @Override - public int hashCode() { - return Objects.hash(properties, sessionId, threadId); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - Message other = (Message) obj; - return Objects.equals(properties, other.properties) - && Objects.equals(sessionId, other.sessionId) - && threadId == other.threadId; - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/MojoMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/MojoMessage.java deleted file mode 100644 index e1beb34..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/MojoMessage.java +++ /dev/null @@ -1,138 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.maven.execution.ExecutionEvent.Type; -import org.apache.maven.plugin.MojoExecution; - -/** - * Mesaage generated when a mojo is executed - */ -public class MojoMessage extends Message { - - private static final String GOAL = "goal"; - private static final String LIFECYCLE_PHASE = "lifecyclePhase"; - private static final String EXECUTION_ID = "executionId"; - private static final String VERSION = "version"; - private static final String ARTIFACT_ID = "artifactId"; - private static final String GROUP_ID = "groupId"; - private static final String EVENT_TYPE = "eventType"; - - MojoMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } - - /** - * Creates a Mojo message from execution and type - * - * @param mojoExecution - * @param type - */ - public MojoMessage(MojoExecution mojoExecution, Type type) { - super(toMap(mojoExecution, type)); - } - - /** - * @return the group id - */ - public String getGroupId() { - return getProperty(GROUP_ID); - } - - /** - * @return the artifact id - */ - public String getArtifactId() { - return getProperty(ARTIFACT_ID); - } - - /** - * @return the version - */ - public String getVersion() { - return getProperty(VERSION); - } - - /** - * @return the execution id - */ - public String getExecutionId() { - return getProperty(EXECUTION_ID); - } - - /** - * @return the lifecycle phase - */ - public String getLifecyclePhase() { - return getProperty(LIFECYCLE_PHASE); - } - - /** - * @return the lifecycle phase - */ - public String getGoal() { - return getProperty(GOAL); - } - - /** - * @return the type of event - */ - public EventType getType() { - try { - return EventType.valueOf(getProperty(EVENT_TYPE)); - } catch (RuntimeException e) { - return EventType.Unknown; - } - } - - private static Map toMap(MojoExecution mojoExecution, Type type) { - Map map = new HashMap<>(); - map.put(EVENT_TYPE, type.name()); - map.put(GROUP_ID, mojoExecution.getGroupId()); - map.put(ARTIFACT_ID, mojoExecution.getArtifactId()); - map.put(VERSION, mojoExecution.getVersion()); - map.put(EXECUTION_ID, mojoExecution.getExecutionId()); - map.put(LIFECYCLE_PHASE, mojoExecution.getLifecyclePhase()); - map.put(GOAL, mojoExecution.getGoal()); - return map; - } - - /** - * create the event type - */ - public static enum EventType { - /** - * the mojo was started - */ - MojoStarted, - /** - * The mojo failed - */ - MojoFailed, - /** - * The mojo was skipped - */ - MojoSkipped, - /** - * The mojo succeed - */ - MojoSucceeded, - /** - * the type is unknown - */ - Unknown; - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectMessage.java deleted file mode 100644 index 0ec2ef1..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectMessage.java +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.io.File; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; - -import org.apache.maven.execution.ExecutionEvent.Type; -import org.apache.maven.project.MavenProject; - -/** - * Send to inform about project changes - */ -public class ProjectMessage extends Message { - - private static final String BASE_DIR = "baseDir"; - private static final String VERSION = "version"; - private static final String ARTIFACT_ID = "artifactId"; - private static final String GROUP_ID = "groupId"; - private static final String EVENT_TYPE = "eventType"; - - ProjectMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } - - /** - * Constructs a new event based on project and type - * - * @param mavenProject - * @param eventtype - */ - public ProjectMessage(MavenProject mavenProject, Type eventtype) { - super(toMap(mavenProject, eventtype)); - } - - /** - * @return the group id of the project - */ - public String getGroupId() { - return getProperty(GROUP_ID); - } - - /** - * @return the artifact id of the project - */ - public String getArtifactId() { - return getProperty(ARTIFACT_ID); - } - - /** - * @return the version of the project - */ - public String getVersion() { - return getProperty(VERSION); - } - - /** - * @return the basedir of the project - */ - public Path getBaseDir() { - return new File(getProperty(BASE_DIR)).toPath(); - } - - /** - * @return the type of the event - */ - public EventType getType() { - try { - return EventType.valueOf(getProperty(EVENT_TYPE)); - } catch (RuntimeException e) { - return EventType.Unknown; - } - } - - private static Map toMap(MavenProject mavenProject, Type eventtype) { - Map map = new HashMap<>(); - map.put(EVENT_TYPE, eventtype.name()); - map.put(GROUP_ID, mavenProject.getGroupId()); - map.put(ARTIFACT_ID, mavenProject.getArtifactId()); - map.put(VERSION, mavenProject.getVersion()); - map.put(BASE_DIR, mavenProject.getBasedir().getAbsolutePath()); - return map; - } - - /** - * Describe the type of the event - */ - public static enum EventType { - /** - * The project was started - */ - ProjectStarted, - /** - * The project failed - */ - ProjectFailed, - /** - * The project was skipped - */ - ProjectSkipped, - /** - * the project succeed - */ - ProjectSucceeded, - /** - * the type of event is unknown - */ - Unknown; - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectsMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectsMessage.java deleted file mode 100644 index 93bfa5a..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/ProjectsMessage.java +++ /dev/null @@ -1,143 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.nio.file.Path; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Stream; - -import org.apache.maven.model.Model; -import org.apache.maven.model.io.DefaultModelWriter; -import org.apache.maven.project.MavenProject; - -/** - * Message send to inform about reactor project in the build and their effective - * model - */ -public class ProjectsMessage extends Message { - - private static final DefaultModelWriter MODEL_WRITER = new DefaultModelWriter(); - - ProjectsMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } - - /** - * @param projects the projects to send - */ - public ProjectsMessage(Collection projects) { - super(buildMap(projects)); - } - - /** - * @return a stream of project infos - */ - public Stream projects() { - return keys().map(key -> { - String[] gav = key.split("\t"); - if (gav.length == 5 && "p".equals(gav[0])) { - ProjectInfo pi = new ProjectInfo() { - - @Override - public String getGroupId() { - return gav[1]; - } - - @Override - public String getArtifactId() { - return gav[2]; - } - - @Override - public String getVersion() { - return gav[3]; - } - - @Override - public String getModel() { - return getProperty(key); - } - - @Override - public Path getBaseDir() { - return new File(gav[4]).toPath(); - } - }; - return pi; - } - return null; - }) - .filter(Objects::nonNull); - } - - private static Map buildMap(Collection projects) { - Map map = new HashMap<>(); - for (MavenProject project : projects) { - String key = String.format( - "p\t%s\t%s\t%s\t%s", - project.getGroupId(), - project.getArtifactId(), - project.getVersion(), - project.getBasedir().getAbsolutePath()); - map.put(key, getEffectiveModel(project)); - } - return map; - } - - private static String getEffectiveModel(MavenProject project) { - Model model = project.getModel(); - StringWriter writer = new StringWriter(); - try { - MODEL_WRITER.write(writer, null, model); - } catch (IOException e) { - } - String string = writer.toString(); - return string; - } - - /** - * Holds basic project info - */ - public static interface ProjectInfo { - /** - * @return the group id of the reactor project - */ - String getGroupId(); - - /** - * @return the artifact id of the reactor project - */ - String getArtifactId(); - - /** - * @return the version of the reactor project - */ - String getVersion(); - - /** - * @return the effective model of the project - */ - String getModel(); - - /** - * @return the basedir of the project - */ - Path getBaseDir(); - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/RefreshMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/RefreshMessage.java deleted file mode 100644 index a473a02..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/RefreshMessage.java +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.io.File; -import java.nio.file.Path; -import java.util.Collections; -import java.util.Map; - -/** - * A message that indicates a path should be refreshed (e.g. because new files - * are placed in a generated folder) - */ -public class RefreshMessage extends Message { - - private static final String PATH_KEY = "path"; - - /** - * Create a new message to refresh a path - * - * @param path the path to refresh - */ - public RefreshMessage(Path path) { - super(Collections.singletonMap(PATH_KEY, path.toFile().getAbsolutePath())); - } - - /** - * @return the path to refresh - */ - public Path getPath() { - return new File(getProperty(PATH_KEY)).toPath(); - } - - RefreshMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } -} diff --git a/src/main/java/org/codehaus/plexus/build/connect/messages/SessionMessage.java b/src/main/java/org/codehaus/plexus/build/connect/messages/SessionMessage.java deleted file mode 100644 index 2f9e0a6..0000000 --- a/src/main/java/org/codehaus/plexus/build/connect/messages/SessionMessage.java +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright (c) 2025 Christoph Läubrich All rights reserved. - -This program is licensed to you under the Apache License Version 2.0, -and you may not use this file except in compliance with the Apache License Version 2.0. -You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0. - -Unless required by applicable law or agreed to in writing, -software distributed under the Apache License Version 2.0 is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. -*/ -package org.codehaus.plexus.build.connect.messages; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.maven.execution.MavenSession; - -/** - * Event that is received / send when a session starts/end - */ -public class SessionMessage extends Message { - - private static final String SESSION_EXECUTION_ROOT_DIRECTORY = "sessionExecutionRootDirectory"; - private static final String SESSION_START = "sessionStart"; - - /** - * Creates a new session message - * - * @param session the session to use - * @param start true if it is a start of the session or - * false if it is the end of a session - */ - public SessionMessage(MavenSession session, boolean start) { - super(buildMap(session, start)); - } - - SessionMessage(String sessionId, long threadId, Map payload) { - super(sessionId, threadId, payload); - } - - /** - * @return true if this is a session start event - */ - public boolean isSessionStart() { - return getBooleanProperty(SESSION_START); - } - - /** - * @return the value of the ExecutionRootDirectory of this session - */ - public String getExecutionRootDirectory() { - return getProperty(SESSION_EXECUTION_ROOT_DIRECTORY); - } - - private static Map buildMap(MavenSession session, boolean start) { - Map map = new HashMap<>(2); - map.put(SESSION_START, Boolean.toString(start)); - map.put(SESSION_EXECUTION_ROOT_DIRECTORY, session.getExecutionRootDirectory()); - return map; - } -} diff --git a/src/main/resources/META-INF/maven/extension.xml b/src/main/resources/META-INF/maven/extension.xml deleted file mode 100644 index 181a211..0000000 --- a/src/main/resources/META-INF/maven/extension.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.codehaus.plexus.build - - - - org.codehaus.plexus:plexus-build-api - - diff --git a/src/main/resources/org/codehaus/plexus/build/version.properties b/src/main/resources/org/codehaus/plexus/build/version.properties deleted file mode 100644 index 6631aef..0000000 --- a/src/main/resources/org/codehaus/plexus/build/version.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Used by M2E to determine API version from class path before injecting into plugin realms -api.version = ${project.version} diff --git a/summary.html b/summary.html new file mode 100644 index 0000000..b37ad74 --- /dev/null +++ b/summary.html @@ -0,0 +1,181 @@ + + + + + + + + + + plexus-build-api – Project Summary + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Summary

+

Project Information

+ + + + + + + + + + + + +
FieldValue
Nameplexus-build-api
DescriptionThe Plexus project provides a full software stack for creating and executing software projects.
Homepagehttps://codehaus-plexus.github.io/plexus-pom/plexus-build-api/
+

Project Organization

+ + + + + + + + + +
FieldValue
NameCodehaus Plexus
URLhttps://codehaus-plexus.github.io/
+

Build Information

+ + + + + + + + + + + + + + + + + + +
FieldValue
GroupIdorg.codehaus.plexus
ArtifactIdplexus-build-api
Version1.1.0
Typejar
Java Version1.8
+
+
+
+
+ + + + diff --git a/team.html b/team.html new file mode 100644 index 0000000..e311eb7 --- /dev/null +++ b/team.html @@ -0,0 +1,360 @@ + + + + + + + + + + plexus-build-api – Project Team + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+

Project Team

+

A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

+

The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

+

Members

+

The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageIdNameEmailOrganizationRoles
jvanzylJason van Zyljason@maven.org-Developer, Release Manager
kazPete Kazmier--Developer
jtaylorJames Taylorjames@jamestaylor.org-Developer
dandiepDan Diephousedan@envoisolutions.comEnvoi solutionsDeveloper
kasperKasper Nielsenapache@kav.dk-Developer
bwaldingBen Waldingbwalding@codehaus.orgWalding Consulting ServicesDeveloper
mhwMark Wilkinsonmhw@kremvax.net-Developer
michalMichal Maczkammaczka@interia.pl-Developer
evenisseEmmanuel Venisseevenisse@codehaus.org-Developer
trygvisTrygve Laugstøltrygvis@codehaus.org-Developer
kenneyKenney Westerhofkenney@codehaus.org-Developer
carlosCarlos Sanchezcarlos@codehaus.org-Developer
brettBrett Porterbrett@codehaus.org-Developer
jdcaseyJohn Caseyjdcasey@codehaus.org-Developer
handyandeAndrew Williamsandy@handyande.co.uk-Developer
rahulRahul Thakurrahul.thakur.xdev@gmail.com-Developer
joakimeJoakim Erdfeltjoakim@erdfelt.com-Developer
olamyOlivier Lamyolamy@codehaus.org-Developer
hboutemyHervé Boutemyhboutemy@apache.org-Developer
olegOleg Gusakovolegy@codehaus.org-Developer
vsivetonVincent Sivetonvsiveton@codehaus.org-Developer
krosenvoldKristian Rosenvoldkrosenvold@apache.org-Developer
agudianAndreas Gudianagudian@apache.org-Developer
khmarbaiseKarl Heinz Marbaisekhmarbaise@apache.org-Developer
michael-oMichael Osipov1983-01-06@gmx.net-Developer
belingueresGabriel Belingueresbelingueres@gmail.com-Developer
kwinKonrad Windszuskwin@apache.org-Developer
sjaranowskiSlawomir Jaranowskisjaranowski@apache.org-Developer
slachiewiczSylwester Lachiewiczslachiewicz@apache.orgASFDeveloper
gnodetGuillaume Nodetgnodet@apache.orgASFDeveloper
+

Contributors

+

There are no contributors listed for this project. Please check back again later.

+
+
+
+
+ + + +