http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/_posts/2017-03-29-storm110-released.md
----------------------------------------------------------------------
diff --git a/_posts/2017-03-29-storm110-released.md 
b/_posts/2017-03-29-storm110-released.md
new file mode 100644
index 0000000..22b7cd3
--- /dev/null
+++ b/_posts/2017-03-29-storm110-released.md
@@ -0,0 +1,341 @@
+---
+layout: post
+title: Storm 1.1.0 released
+author: P. Taylor Goetz
+---
+
+The Apache Storm community is pleased to announce that version 1.1.0 has been 
released and is available from [the downloads page](/downloads.html).
+
+This release represents a major milestone in the evolution of Apache Storm, 
and includes a large number of new features, usability and performance 
improvements, some of which are highlighted below.
+
+Streaming SQL
+-------------
+Storm 1.1.0 supports native Streaming SQL, powered by [Apache 
Calcite](http://calcite.apache.org), that allows users to run SQL queries over 
streaming data as well update external systems and data stores such as [Apache 
Hive](http://hive.apache.org). To deploy an SQL-based topology users define the 
SQL query in a text file and use the `storm sql` command to submit the 
resulting topology to a Storm cluster. Behind the scenes Storm will compile the 
SQL into a Trident topology and run it on the cluster.
+
+Storm's SQL support includes the following features:
+
+ * Streaming from/to external sources including Apache Kafka, HDFS, MongoDB, 
and Redis
+ * Tuple filtering
+ * Projections
+ * User-defined paralallism of generated components
+ * User Defined Functions (UDFs)
+ * CSV, TSV, and Avro input/output formats
+ * Extensibility to additional data sources via the `ISqlTridentDataSource` 
interface
+
+For more information about Storm's SQL support including examples, refer to 
the following resources:
+
+ * [Storm SQL Overview](/releases/1.1.0/storm-sql.html)
+ * [Storm SQL Examples](/releases/1.1.0/storm-sql-example.html)
+ * [Storm SQL Reference](/releases/1.1.0/storm-sql-reference.html)
+
+Apache Kafka Integration Improvements
+-------------------------------------
+In addition to the traditional support for Kafka version 0.8/0.9 based on the 
Kafka simple consumer, Storm includes support for Kafka 0.10 and later based on 
the new Kafka consumer API. Storm's integration with Kafka 0.10 and later 
version is highly flexible and extensible, some of the features include:
+
+ * Enhanced configuration API
+ * Fine-grained offset control (at start and after failure)
+ * Consumer group support
+ * Plugable record translators
+ * Wildcard topics
+ * Multiple stream support
+ * Manual partition control
+ * Kafka security support
+
+For more information on Storm's Kafka integration please refer to the 
following documentation:
+
+ * [Kafka Integration (0.10 and 
later)](/releases/1.1.0/storm-kafka-client.html)
+ * [Kafka Integration (0.8/0.9)](/releases/1.1.0/storm-kafka.html)
+ 
+
+PMML (Predictive Model Markup Language) Support
+------------
+In order to better support machine learning use cases, Storm now includes 
support for executing PMML models in topoliges via a generic PMML bolt. The 
`PMMLPredictorBolt` allows users to specify a model, the raw input, and the 
resulting streams and output fields. At runtime the bolt will process incoming 
raw data, execute the model with the given input, and output tuples with scores 
for predicted fields and output fields.
+
+More information on Storm's PMML support can be found 
[here](https://github.com/apache/storm/blob/v1.1.0/external/storm-pmml/README.md).
+
+
+Druid Integration
+-----------------
+[Druid](http://druid.io) is a scalable, high-performance, column oriented, 
distributed data store popular for real time analytics use cases. Storm 1.1.0 
introduces a Storm bolt and Trident state implementations for streaming data 
into a Druid data store.
+
+Documentation for Storm's Druid integration can be found 
[here](https://github.com/apache/storm/blob/v1.1.0/external/storm-druid/README.md).
+
+
+OpenTSDB Integration
+--------------------
+[OpenTSDB](http://opentsdb.net) is a highly scalable time series database 
based on Apache HBase. Storm 1.1.0 adds a Storm bolt and Trident state 
implementations for writing data to OpenTSDB. Storm's OpenTSDB integration 
gives users fine-grained control over how Storm tuples map to OpenTSDB data 
structure by providing a simple interface (`ITupleOpenTsdbDatapointMapper`) 
that performs the translation.
+
+Move information about Storm's OpenTSDB integration can be found 
[here](https://github.com/apache/storm/blob/v1.1.0/external/storm-opentsdb/README.md).
+
+AWS Kinesis Support
+-------------------
+For users looking to integrate with Amazon's Kinesis service, Storm 1.1.0 now 
includes a spout for consuming message streams from Kinesis. Like most of 
Storm's external system integration components, the Kinesis spout provides a 
simple interface (`RecordToTupleMapper`)for controlling how Kinesis messages 
are translated to Storm tuples. The Kinesis spout provides an additional 
interface (`FailedMessageRetryHandler`) that allows users to customize the 
Spout's failure handling logic.
+
+Documentation for the Kinesis spout can be found 
[here](https://github.com/apache/storm/blob/v1.1.0/external/storm-kinesis/README.md).
+
+
+HDFS Spout
+----------
+Storm's HDFS integration now includes a spout that continuously streams data 
from the HDFS filesystem. Storm's HDFS spout monitors a configurable directory 
for new files and feeds that data into a topology. When the spout has completed 
processing a file, it will be moved to the configured archive directory. In the 
event a file is corrupt or is otherwise not processable, the corresponding file 
will be moved to a specific directory. Parallelism of the spout is made 
possible through a locking mechanism that ensures each file is "owned" by a 
single spout instance. The HDFS spout supports connecting to HDFS instances 
that are secured with Kerberos authentication.
+
+More information on using the HDFS spout can be found in the [Storm HDFS 
Documentation](https://github.com/apache/storm/blob/v1.1.0/external/storm-hdfs/README.md)
+
+
+Flux Improvements
+-----------------
+Flux is a framework and set of utilities that allow users to declaratively 
define Storm topologies and avoid hard-coding configuration values in topology 
components. Storm 1.1.0 introduces the following enhancements to the Flux 
framework:
+
+ * Flux topology visualization in Storm UI
+ * Support for Stateful bolts and windowing
+ * Support for named streams
+ * Support for lists of references
+
+More information about Flux can be found in the [Flux 
documentation](/releases/1.1.0/flux.html).
+
+
+Topology Deployment Enhancements
+--------------------------------
+In previous versions of Storm it was typically necessary to include all 
topology dependences in a shaded "uber jar," or by making them available on 
Storm's classpath. In Storm 1.1.0 the `storm jar` command now includes options 
to upload additional dependency jars during topology submission. The `--jars` 
command line option allows users to specify local jar files to upload. 
Alternatively, the `storm jar` command offers the `--artifacts` option for 
specifying additional jar file dependencies by their Maven coordinates. 
Finally, for Maven artifacts outside the Maven Central, the 
`--artifactRepository` option allows users to specify additional repositories 
for dependency resolution.
+
+More informaton about available options of the `storm jar` command can be 
found by runnng the `storm help jar` command.
+
+
+Resource Aware Scheduler (RAS) Improvements
+-------------------------------------------
+The Resource Aware Scheduler introduced in Storm 1.0 added a scheduler 
implementation that takes into account both the memory (on-heap and off-heap) 
and CPU resources available in a cluster. In Storm 1.1.0 the RAS algorithm has 
been overhauled to dramatically improve cluster resource utilization and 
introduces rack awareness into the scheduling strategy.
+
+More information on the new RAS capabilities can be found in the [RAS 
documentation](/releases/1.1.0/Resource_Aware_Scheduler_overview.html) and the 
[JIRA ticket](https://issues.apache.org/jira/browse/STORM-1766) introducing the 
new rack awareness algorithm.
+
+
+Important Changes in the Binary Distribution
+---------------------------------------------
+In order to minimize the file size of the binary distribution, external 
component (i.e. "connector") binaries and compiled examples are no longer 
included. Examples are included in source form only, but can easily compiled 
with the Maven `mvn install` command.
+
+### External Components Moved to Maven Central
+Most external components are now hosted exclusively in Maven Central. External 
component directories will contain a README.md file, but no jar files. We 
encourage users to leverage a build system with Maven style dependency 
resolution (Maven, Gradle, etc.) to build topology jars and avoid building 
topology jars manually.
+
+Maven coordinates for these components can be determined as follows:
+
+Group ID: org.apache.storm
+Artifact ID: [component directory name] (e.g. "storm-kafka-client", 
"storm-hdfs")
+Version: 1.1.0
+
+For users who cannot use Maven for building, external component jar files can 
be downloaded from Maven Central with the following URL pattern:
+
+```
+http://repo1.maven.org/maven2/org/apache/storm/${artifactID}/${version}/${artifactId}-${version}.jar
+```
+
+For example, to download the storm-kafka-client jar file the URL would be:
+
+```
+http://repo1.maven.org/maven2/org/apache/storm/storm-kafka-client/1.1.0/storm-kafka-client-1.1.0.jar
+```
+
+
+Thanks
+------
+Special thanks are due to all those who have contributed to Apache Storm -- 
whether through direct code contributions, documentation, bug reports, or 
helping other users on the mailing lists. Your efforts are much appreciated.
+
+The full changelog for this release is listed below.
+
+Full Changelog
+--------------
+
+ * STORM-2425: Storm Hive Bolt not closing open transactions
+ * STORM-2409: Storm-Kafka-Client KafkaSpout Support for Failed and NullTuples
+ * STORM-2423: Join Bolt should use explicit instead of default window 
anchoring for emitted tuples
+ * STORM-2416: Improve Release Packaging to Reduce File Size
+ * STORM-2414: Skip checking meta's ACL when subject has write privileges for 
any blobs
+ * STORM-2038: Disable symlinks with a config option
+ * STORM-2240: STORM PMML Bolt - Add Support to Load Models from Blob Store
+ * STORM-2412: Nimbus isLeader check while waiting for max replication
+ * STORM-2408: build failed if storm.kafka.client.version = 0.10.2.0
+ * STORM-2403: Fix KafkaBolt test failure: tick tuple should not be acked
+ * STORM-2361: Kafka spout - after leader change, it stops committing offsets 
to ZK
+ * STORM-2353: Replace kafka-unit by kafka_2.11 and kafka-clients to test 
kafka-clients:0.10.1.1
+ * STORM-2387: Handle tick tuples properly for Bolts in external modules
+ * STORM-2345: Type mismatch in ReadClusterState's ProfileAction processing Map
+ * STORM-2400: Upgraded Curator to 2.12.0 and made respective API changes
+ * STORM-2396: setting interrupted status back before throwing a 
RuntimeException
+ * STORM-1772: Adding Perf module with topologies for measuring performance
+ * STORM-2395: storm.cmd supervisor calls the wrong class name
+ * STORM-2391: Move HdfsSpoutTopology from storm-starter to storm-hdfs-examples
+ * STORM-2389: Avoid instantiating Event Logger when 
topology.eventlogger.executors=0
+ * STORM-2386: Fail-back Blob deletion also fails in 
BlobSynchronizer.syncBlobs.
+ * STORM-2388: JoinBolt breaks compilation against JDK 7
+ * STORM-2374: Storm Kafka Client Test Topologies Must be Serializable
+ * STORM-2372: Pacemaker client doesn't clean up heartbeats properly
+ * STORM-2326: Upgrade log4j and slf4j
+ * STORM-2334: Join Bolt implementation
+ * STORM-1363: TridentKafkaState should handle null values from 
TridentTupleToKafkaMapper.getMessageFromTuple()
+ * STORM-2365: Support for specifying output stream in event hubs spout 
+ * STORM-2250: Kafka spout refactoring to increase modularity and testability
+ * STORM-2340: fix AutoCommitMode issue in KafkaSpout
+ * STORM-2344: Flux YAML File Viewer for Nimbus UI
+ * STORM-2350: Storm-HDFS's listFilesByModificationTime is broken
+ * STORM-2270 Kafka spout should consume from latest when ZK partition commit 
offset bigger than the latest offset
+ * STORM-1464: storm-hdfs support for multiple output files and partitioning
+ * STORM-2320: DRPC client printer class reusable for local and remote DRPC
+ * STORM-2281: Running Multiple Kafka Spouts (Trident) Throws Illegal State 
Exception
+ * STORM-2296: Kafka spout no dup on leader changes
+ * STORM-2244: Some shaded jars doesn't exclude dependency signature files
+ * STORM-2014: New Kafka spout duplicates checking if failed messages have 
reached max retries
+ * STORM-1443: [Storm SQL] Support customizing parallelism in StormSQL
+ * STORM-2148: [Storm SQL] Trident mode: back to code generate and compile 
Trident topology
+ * STORM-2331: Emitting from JavaScript should work when not anchoring.
+ * STORM-2225: change spout config to be simpler.
+ * STORM-2323: Precondition for Leader Nimbus should check all topology blobs 
and also corresponding dependencies
+ * STORM-2330: Fix storm sql code generation for UDAF with non standard sql 
types
+ * STORM-2298: Don't kill Nimbus when ClusterMetricsConsumer is failed to 
initialize
+ * STORM-2301: [storm-cassandra] upgrade cassandra driver to 3.1.2
+ * STORM-1446: Compile the Calcite logical plan to Storm Trident logical plan
+ * STORM-2303: [storm-opentsdb] Fix list invariant issue for JDK 7
+ * STORM-2236: storm kafka client should support manual partition management
+ * STORM-2295: KafkaSpoutStreamsNamedTopics should return output fields with 
predictable ordering
+ * STORM-2300: [Flux] support list of references
+ * STORM-2297: [storm-opentsdb] Support Flux for OpenTSDBBolt
+ * STORM-2294: Send activate and deactivate command to ShellSpout
+ * STORM-2280: Upgrade Calcite version to 1.11.0
+ * STORM-2278: Allow max number of disruptor queue flusher threads to be 
configurable
+ * STORM-2277: Add shaded jar for Druid connector
+ * STORM-2274: Support named output streams in Hdfs Spout
+ * STORM-2204: Adding caching capabilities in HBaseLookupBolt
+ * STORM-2267: Use user's local maven repo. directory to local repo.
+ * STORM-2254: Provide Socket time out for nimbus thrift client
+ * STORM-2200: [Storm SQL] Drop Aggregate & Join support on Trident mode
+ * STORM-2266: Close NimbusClient instances appropriately
+ * STORM-2203: Add a getAll method to KeyValueState interface
+ * STORM-1886: Extend KeyValueState iface with delete
+ * STORM-2022: update Fields test to match new behavior
+ * STORM-2020: Stop using sun internal classes
+ * STORM-1228: port fields_test to java
+ * STORM-2104: New Kafka spout crashes if partitions are reassigned while 
tuples are in-flight
+ * STORM-2257: Add built in support for sum function with different types.
+ * STORM-2082: add sql external module storm-sql-hdfs
+ * STORM-2256: storm-pmml breaks on java 1.7
+ * STORM-2223: PMML Bolt.
+ * STORM-2222: Repeated NPEs thrown in nimbus if rebalance fails
+ * STORM-2190: reduce contention between submission and scheduling
+ * STORM-2239: Handle InterruptException in new Kafka spout
+ * STORM-2087: Storm-kafka-client: Failed tuples are not always replayed
+ * STORM-2238: Add Timestamp extractor for windowed bolt
+ * STORM-2235: Introduce new option: 'add remote repositories' for dependency 
resolver
+ * STORM-2215: validate blobs are present before submitting
+ * STORM-2170: [Storm SQL] Add built-in socket datasource to runtime
+ * STORM-2226: Fix kafka spout offset lag ui for kerberized kafka
+ * STORM-2224: Exposed a method to override in computing the field from given 
tuple in FieldSelector
+ * STORM-2220: Added config support for each bolt in Cassandra bolts, fixed 
the bolts to be used also as sinks.
+ * STORM-2205: Racecondition in getting nimbus summaries while ZK 
connectionions are reconnected
+ * STORM-2182: Refactor Storm Kafka Examples Into Own Modules.
+ * STORM-1694: Kafka Spout Trident Implementation Using New Kafka Consumer API
+ * STORM-2173: [SQL] Support CSV as input / output format
+ * STORM-2177: [SQL] Support TSV as input / output format
+ * STORM-2172: [SQL] Support Avro as input / output format
+ * STORM-2185: Storm Supervisor doesn't delete directories properly sometimes
+ * STORM-2103: [SQL] Introduce new sql external module: storm-sql-mongodb
+ * STORM-2175: fix double close of workers
+ * STORM-2109: Under supervisor V2 SUPERVISOR_MEMORY_CAPACITY_MB and 
SUPERVISOR_CPU_CAPACITY must be Doubles
+ * STORM-2110: in supervisor v2 filter out empty command line args
+ * STORM-2117: Supervisor V2 with local mode extracts resources directory to 
topology root directory instead of temporary directory
+ * STORM-2131: Add blob command to worker-launcher, make stormdist directory 
not writeable by topo owner
+ * STORM-2018: Supervisor V2
+ * STORM-2139: Let ShellBolts and ShellSpouts run with scripts from blobs
+ * STORM-2072: Add map, flatMap with different outputs (T->V) in Trident
+ * STORM-2134: improving the current scheduling strategy for RAS
+ * STORM-2125: Use Calcite's implementation of Rex Compiler
+ * STORM-1546: Adding Read and Write Aggregations for Pacemaker to make it HA 
compatible
+ * STORM-1444: Support EXPLAIN statement in StormSQL
+ * STORM-2099: Introduce new sql external module: storm-sql-redis
+ * STORM-2097: Improve logging in trident core and examples
+ * STORM-2144: Fix Storm-sql group-by behavior in standalone mode
+ * STORM-2066: make error message in IsolatedPool.java more descriptive
+ * STORM-1870: Allow FluxShellBolt/Spout set custom "componentConfig" via yaml
+ * STORM-2126: fix NPE due to race condition in compute-new-sched-assign…
+ * STORM-2124: show requested cpu mem for each component
+ * STORM-2089: Replace Consumer of ISqlTridentDataSource with 
SqlTridentConsumer
+ * STORM-2118: A few fixes for storm-sql standalone mode
+ * STORM-2105: Cluster/Supervisor total and available resources displayed in 
the UI
+ * STORM-2078: enable paging in worker datatable
+ * STORM-1664: Allow Java users to start a local cluster with a Nimbus Thrift 
server.
+ * STORM-1872: Release Jedis connection when topology shutdown
+ * STORM-2100: Fix Trident SQL join tests to not rely on ordering
+ * STORM-1837: Fix complete-topology and prevent message loss
+ * STORM-2098: DruidBeamBolt: Pass DruidConfig.Builder as constructor argument
+ * STORM-2092: optimize TridentKafkaState batch sending
+ * STORM-1979: Storm Druid Connector implementation.
+ * STORM-2057: Support JOIN statement in Storm SQL
+ * STORM-1970: external project examples refator
+ * STORM-2074: fix storm-kafka-monitor NPE bug
+ * STORM-1459: Allow not specifying producer properties in read-only Kafka 
table in StormSQL
+ * STORM-2052: Kafka Spout New Client API - Log Improvements and Parameter 
Tuning for Better Performance.
+ * STORM-2050: [storm-sql] Support User Defined Aggregate Function for Trident 
mode
+ * STORM-1434: Support the GROUP BY clause in StormSQL
+ * STORM-2016: Topology submission improvement: support adding local jars and 
maven artifacts on submission
+ * STORM-1994: Add table with per-topology & worker resource usage and 
components in (new) supervisor and topology pages
+ * STORM-2042: Nimbus client connections not closed properly causing 
connection leaks
+ * STORM-1766: A better algorithm server rack selection for RAS
+ * STORM-1913: Additions and Improvements for Trident RAS API
+ * STORM-2037: debug operation should be whitelisted in SimpleAclAuthorizer.
+ * STORM-2023: Add calcite-core to dependency of storm-sql-runtime
+ * STORM-2036: Fix minor bug in RAS Tests
+ * STORM-1979: Storm Druid Connector implementation.
+ * STORM-1839: Storm spout implementation for Amazon Kinesis Streams.
+ * STORM-1876: Option to build storm-kafka and storm-kafka-client with 
different kafka client version
+ * STORM-2000: Package storm-opentsdb as part of external dir in installation
+ * STORM-1989: X-Frame-Options support for Storm UI
+ * STORM-1962: support python 3 and 2 in multilang
+ * STORM-1964: Unexpected behavior when using count window together with 
timestamp extraction
+ * STORM-1890: ensure we refetch static resources after package build
+ * STORM-1988: Kafka Offset not showing due to bad classpath.
+ * STORM-1966: Expand metric having Map type as value into multiple metrics 
based on entries
+ * STORM-1737: storm-kafka-client has compilation errors with Apache Kafka 0.10
+ * STORM-1968: Storm logviewer does not work for nimbus.log in secure cluster
+ * STORM-1910: One topology cannot use hdfs spout to read from two locations
+ * STORM-1960: Add CORS support to STORM UI Rest api
+ * STORM-1959: Add missing license header to KafkaPartitionOffsetLag
+ * STORM-1950: Change response json of "Topology Lag" REST API to keyed by 
spoutId, topic, partition.
+ * STORM-1833: Simple equi-join in storm-sql standalone mode
+ * STORM-1866: Update Resource Aware Scheduler Documentation
+ * STORM-1930: Kafka New Client API - Support for Topic Wildcards
+ * STORM-1924: Adding conf options for Persistent Word Count Topology
+ * STORM-1956: Disabling Backpressure by default
+ * STORM-1934: Fix race condition between sync-supervisor and sync-processes
+ * STORM-1919: Introduce FilterBolt on storm-redis
+ * STORM-1945: Fix NPE bugs on topology spout lag for storm-kafka-monitor
+ * STORM-1888: add description for shell command
+ * STORM-1902: add a simple & flexible FileNameFormat for storm-hdfs
+ * STORM-1914: Storm Kafka Field Topic Selector
+ * STORM-1907: PartitionedTridentSpoutExecutor has incompatible types that 
cause ClassCastException
+ * STORM-1925: Remove Nimbus thrift call from Nimbus itself
+ * STORM-1909: Update HDFS spout documentation
+ * STORM-1136: Command line module to return kafka spout offsets lag and 
display in storm ui
+ * STORM-1911: IClusterMetricsConsumer should use seconds to timestamp unit
+ * STORM-1893: Support OpenTSDB for storing timeseries data.
+ * STORM-1723: Introduce ClusterMetricsConsumer
+ * STORM-1700: Introduce 'whitelist' / 'blacklist' option to MetricsConsumer
+ * STORM-1698: Asynchronous MetricsConsumerBolt
+ * STORM-1705: Cap number of retries for a failed message
+ * STORM-1884: Prioritize pendingPrepare over pendingCommit
+ * STORM-1575: fix TwitterSampleSpout NPE on close
+ * STORM-1874: Update logger private permissions
+ * STORM-1865: update command line client document
+ * STORM-1771: HiveState should flushAndClose before closing old or idle Hive 
connections
+ * STORM-1882: Expose TextFileReader public
+ * STORM-1873: Implement alternative behaviour for late tuples
+ * STORM-1719: Introduce REST API: Topology metric stats for stream
+ * STORM-1887: Fixed help message for set_log_level command
+ * STORM-1878: Flux can now handle IStatefulBolts
+ * STORM-1864: StormSubmitter should throw respective exceptions and log 
respective errors forregistered submitter hook invocation
+ * STORM-1868: Modify TridentKafkaWordCount to run in distributed mode
+ * STORM-1859: Ack late tuples in windowed mode
+ * STORM-1851: Fix default nimbus impersonation authorizer config
+ * STORM-1848: Make KafkaMessageId and Partition serializable to support
+ * STORM-1862: Flux ShellSpout and ShellBolt can't emit to named streams
+ * Storm-1728: TransactionalTridentKafkaSpout error
+ * STORM-1850: State Checkpointing Documentation update
+ * STORM-1674: Idle KafkaSpout consumes more bandwidth than needed
+ * STORM-1842: Forward references in storm.thrift cause tooling issues
+ * STORM-1730: LocalCluster#shutdown() does not terminate all storm 
threads/thread pools.
+ * STORM-1709: Added group by support in storm sql standalone mode
+ * STORM-1720: Support GEO in storm-redis

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/_posts/2017-07-28-storm104-released.md
----------------------------------------------------------------------
diff --git a/_posts/2017-07-28-storm104-released.md 
b/_posts/2017-07-28-storm104-released.md
new file mode 100644
index 0000000..bdc0795
--- /dev/null
+++ b/_posts/2017-07-28-storm104-released.md
@@ -0,0 +1,48 @@
+---
+layout: post
+title: Storm 1.0.4 Released
+author: P. Taylor Goetz
+---
+
+The Apache Storm community is pleased to announce that version 1.0.4 has been 
released and is available from [the downloads page](/downloads.html).
+
+This is a maintenance release that includes a number of important bug fixes 
that improve Storm's performance, stability and fault tolerance. We encourage 
users of previous versions to upgrade to this latest release.
+
+
+Thanks
+------
+Special thanks are due to all those who have contributed to Apache Storm -- 
whether through direct code contributions, documentation, bug reports, or 
helping other users on the mailing lists. Your efforts are much appreciated.
+
+
+Full Changelog
+---------
+
+ * STORM-2627: Update docs for storm.zookeeper.topology.auth.scheme
+ * STORM-2597: Don't parse passed in class paths
+ * STORM-2524: Set Kafka client.id with storm-kafka
+ * STORM-2448: Add in Storm and JDK versions when submitting a topology
+ * STORM-2511: Submitting a topology with name containing unicode getting 
failed
+ * STORM-2498: Fix Download Full File link
+ * STORM-2486: Prevent cd from printing target directory to avoid breaking 
classpath
+ * STORM-1114: Race condition in trident zookeeper zk-node create/delete
+ * STORM-2429: Properly validate supervisor.scheduler.meta
+ * STORM-2194: Stop ignoring socket timeout error from executor
+ * STORM-2450: Write resources into correct local director
+ * STORM-2414: Skip checking meta's ACL when subject has write privileges for 
any blobs
+ * STORM-2038: Disable symlinks with a config option
+ * STORM-2038: No symlinks for local cluster 
+ * STORM-2403: Fix KafkaBolt test failure: tick tuple should not be acked
+ * STORM-2361: Kafka spout - after leader change, it stops committing offsets 
to ZK
+ * STORM-2296: Kafka spout - no duplicates on leader changes
+ * STORM-2387: Handle tick tuples properly for Bolts in external modules 
+ * STORM-2345: Type mismatch in ReadClusterState's ProfileAction processing Map
+ * STORM-2104: New Kafka spout crashes if partitions are reassigned while 
tuples are in-flight
+ * STORM-2396: setting interrupted status back before throwing a 
RuntimeException
+ * STORM-2395: storm.cmd supervisor calls the wrong class name
+ * STORM-2385: pacemaker_state_factory.clj does not compile on branch-1.0.x
+ * STORM-2389: Avoid instantiating Event Logger when 
topology.eventlogger.executors=0
+ * STORM-2386: Fail-back Blob deletion also fails in BlobSynchronizer.syncBlobs
+ * STORM-2360: Storm-Hive: Thrift version mismatch with storm-core
+ * STORM-2372: Pacemaker client doesn't clean up heartbeats properly
+ * STORM-2326: Upgrade log4j and slf4j
+ * STORM-2350: Storm-HDFS's listFilesByModificationTime is broken
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/_posts/2017-08-01-storm111-released.md
----------------------------------------------------------------------
diff --git a/_posts/2017-08-01-storm111-released.md 
b/_posts/2017-08-01-storm111-released.md
new file mode 100644
index 0000000..c31efdd
--- /dev/null
+++ b/_posts/2017-08-01-storm111-released.md
@@ -0,0 +1,64 @@
+---
+layout: post
+title: Storm 1.1.1 Released
+author: P. Taylor Goetz
+---
+
+The Apache Storm community is pleased to announce that version 1.1.1 has been 
released and is available from [the downloads page](/downloads.html).
+
+This is a maintenance release that includes a number of important bug fixes 
that improve Storm's performance, stability and fault tolerance. We encourage 
users of previous versions to upgrade to this latest release.
+
+
+Thanks
+------
+Special thanks are due to all those who have contributed to Apache Storm -- 
whether through direct code contributions, documentation, bug reports, or 
helping other users on the mailing lists. Your efforts are much appreciated.
+
+
+Full Changelog
+---------
+
+ * STORM-2659: Add daemon.name variable to storm.cmd to fix log4j logging
+ * STORM-2652: fix error in open method of JmsSpout
+ * STORM-2645: Update storm.py to be python3 compatible
+ * STORM-2621: add tuple_population metric
+ * STORM-2639: Kafka Spout incorrectly computes numCommittedOffsets due to 
voids in the topic (topic compaction)
+ * STORM-2544: Fixing issue in acking of tuples that hit retry limit under 
manual commit mode
+ * STORM-2618: Add TridentKafkaStateUpdater for storm-kafka-client
+ * STORM-2608: Remove any pending offsets that are no longer valid
+ * STORM-2503: Fix lgtm.com alerts on equality and comparison operations
+ * STORM-2478: Fix BlobStoreTest.testDeleteAfterFailedCreate on Windows
+ * STORM-2602: storm.zookeeper.topology.auth.payload doesn't work even you set 
it
+ * STORM-2597: Don't parse passed in class paths
+ * STORM-2564: We should provide a template for storm-cluster-auth.yaml
+ * STORM-2568: Fix getTopicsString
+ * STORM-2563: Remove the workaround to handle missing UGI.loginUserFromSubject
+ * STORM-2552: KafkaSpoutMessageId should be serializable
+ * STORM-2562: Use stronger key size than default for blow fish key generator 
and get rid of stack trace
+ * STORM-2557: A bug in DisruptorQueue causing severe underestimation of queue 
arrival rates
+ * STORM-2449: Ensure same key appears only once in State iterator
+ * STORM-2516: Fix timing issues with testPrepareLateTupleStreamWithoutBuilder
+ * STORM-2489: Overlap and data loss on WindowedBolt based on Duration
+ * STORM-2528: Bump log4j version to 2.8.2
+ * STORM-2527: Initialize java.sql.DriverManager earlier to avoid deadlock
+ * STORM-2413: Make new Kafka spout respect tuple retry limits
+ * STORM-2518: Handles empty name for "USER type" ACL when normalizing ACLs
+ * STORM-2511: Submitting a topology with name containing unicode getting 
failed
+ * STORM-2496: Dependency artifacts should be uploaded to blobstore with READ 
permission for all
+ * STORM-2505: Spout to support topic compaction
+ * STORM-2498: Fix Download Full File link
+ * STORM-2343: New Kafka spout can stop emitting tuples if more than 
maxUncommittedOffsets tuples fail at once.
+ * STORM-2486: Prevent cd from printing target directory to avoid breaking 
classpath
+ * STORM-2488: The UI user Must be HTTP.
+ * STORM-2481: Upgrade Aether version to resolve Aether bug BUG-451566
+ * STORM-2435: Logging in storm.js inconsistent to console.log and does not 
support log levels
+ * STORM-2315: New kafka spout can't commit offset when ack is disabled
+ * STORM-2467: Use explicit charset when decoding from array backed buffer
+ * STORM-1114: Race condition in trident zookeeper zk-node create/delete
+ * STORM-2448: Add in Storm and JDK versions when submitting a topology
+ * STORM-2343: Fix new Kafka spout stopping processing if more than 
maxUncommittedOffsets tuples fail at once
+ * STORM-2431: the default blobstore.dir is storm.local.dir/blobs which is 
different from distcache-blobstore.md
+ * STORM-2429: Properly validate supervisor.scheduler.meta
+ * STORM-2451: windows storm.cmd does not set log4j2 config file correctly by 
default
+ * STORM-2450: Write resources into correct local director
+ * STORM-2440: Kill process if executor catches 
`java.net.SocketTimeoutException`
+ * STORM-2432: Storm-Kafka-Client Trident Spout Seeks Incorrect Offset With 
UNCOMMITTED_LATEST Strategy
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/_sass/_syntax-highlighting.scss
----------------------------------------------------------------------
diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss
new file mode 100644
index 0000000..a0d2404
--- /dev/null
+++ b/_sass/_syntax-highlighting.scss
@@ -0,0 +1,70 @@
+%vertical-rhythm {
+    margin-bottom: $spacing-unit / 2;
+}
+/**
+ * Syntax highlighting styles
+ */
+.highlight {
+    background: #fff;
+    @extend %vertical-rhythm;
+
+    .c     { color: #998; font-style: italic } // Comment
+    .err   { color: #a61717; background-color: #e3d2d2 } // Error
+    .k     { font-weight: bold } // Keyword
+    .o     { font-weight: bold } // Operator
+    .cm    { color: #998; font-style: italic } // Comment.Multiline
+    .cp    { color: #999; font-weight: bold } // Comment.Preproc
+    .c1    { color: #998; font-style: italic } // Comment.Single
+    .cs    { color: #999; font-weight: bold; font-style: italic } // 
Comment.Special
+    .gd    { color: #000; background-color: #fdd } // Generic.Deleted
+    .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
+    .ge    { font-style: italic } // Generic.Emph
+    .gr    { color: #a00 } // Generic.Error
+    .gh    { color: #999 } // Generic.Heading
+    .gi    { color: #000; background-color: #dfd } // Generic.Inserted
+    .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
+    .go    { color: #888 } // Generic.Output
+    .gp    { color: #555 } // Generic.Prompt
+    .gs    { font-weight: bold } // Generic.Strong
+    .gu    { color: #aaa } // Generic.Subheading
+    .gt    { color: #a00 } // Generic.Traceback
+    .kc    { font-weight: bold } // Keyword.Constant
+    .kd    { font-weight: bold } // Keyword.Declaration
+    .kp    { font-weight: bold } // Keyword.Pseudo
+    .kr    { font-weight: bold } // Keyword.Reserved
+    .kt    { color: #458; font-weight: bold } // Keyword.Type
+    .m     { color: #099 } // Literal.Number
+    .s     { color: #d14 } // Literal.String
+    .na    { color: #008080 } // Name.Attribute
+    .nb    { color: #0086B3 } // Name.Builtin
+    .nc    { color: #458; font-weight: bold } // Name.Class
+    .no    { color: #008080 } // Name.Constant
+    .ni    { color: #800080 } // Name.Entity
+    .ne    { color: #900; font-weight: bold } // Name.Exception
+    .nf    { color: #900; font-weight: bold } // Name.Function
+    .nn    { color: #555 } // Name.Namespace
+    .nt    { color: #000080 } // Name.Tag
+    .nv    { color: #008080 } // Name.Variable
+    .ow    { font-weight: bold } // Operator.Word
+    .w     { color: #bbb } // Text.Whitespace
+    .mf    { color: #099 } // Literal.Number.Float
+    .mh    { color: #099 } // Literal.Number.Hex
+    .mi    { color: #099 } // Literal.Number.Integer
+    .mo    { color: #099 } // Literal.Number.Oct
+    .sb    { color: #d14 } // Literal.String.Backtick
+    .sc    { color: #d14 } // Literal.String.Char
+    .sd    { color: #d14 } // Literal.String.Doc
+    .s2    { color: #d14 } // Literal.String.Double
+    .se    { color: #d14 } // Literal.String.Escape
+    .sh    { color: #d14 } // Literal.String.Heredoc
+    .si    { color: #d14 } // Literal.String.Interpol
+    .sx    { color: #d14 } // Literal.String.Other
+    .sr    { color: #009926 } // Literal.String.Regex
+    .s1    { color: #d14 } // Literal.String.Single
+    .ss    { color: #990073 } // Literal.String.Symbol
+    .bp    { color: #999 } // Name.Builtin.Pseudo
+    .vc    { color: #008080 } // Name.Variable.Class
+    .vg    { color: #008080 } // Name.Variable.Global
+    .vi    { color: #008080 } // Name.Variable.Instance
+    .il    { color: #099 } // Literal.Number.Integer.Long
+}

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about.md
----------------------------------------------------------------------
diff --git a/about.md b/about.md
new file mode 100644
index 0000000..ee0e928
--- /dev/null
+++ b/about.md
@@ -0,0 +1,44 @@
+---
+layout: page
+title: Project Information
+items:
+    - 
+      - "/about/integrates.html"
+      - "Integrates"
+    - 
+      - "/about/simple-api.html"
+      - "Simple API"
+    - 
+      - "/about/scalable.html"
+      - "Scalable"
+    - 
+      - "/about/fault-tolerant.html"
+      - "Fault tolerant"
+    - 
+      - "/about/guarantees-data-processing.html"
+      - "Guarantees data processing"
+    - 
+      - "/about/multi-language.html"
+      - "Use with any language"
+    - 
+      - "/about/deployment.html"
+      - "Easy to deploy and operate"
+    - 
+      - "/about/free-and-open-source.html"
+      - "Free and open source"
+---
+{% for post in page.items %}
+<div class="download-block">
+    <div class="row">
+        <div class="col-md-3 remove-custom-padding">
+            <h4><a class="{% if page.url == post[0] then %}current{% else %}{% 
endif %}" href="{{ post[0] }}">{{ post[1] }}</a></h4>
+        </div>
+        <div class="col-md-9 remove-custom-padding">
+               <div class="download-info">
+            <h4>{{page.title}}</h4>
+                       {{ post[1].meta }}
+            </div>
+        </div>
+    </div>
+</div>
+{% endfor %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/deployment.md
----------------------------------------------------------------------
diff --git a/about/deployment.md b/about/deployment.md
new file mode 100644
index 0000000..ff33cc5
--- /dev/null
+++ b/about/deployment.md
@@ -0,0 +1,10 @@
+---
+layout: about
+title: Easy to deploy and operate
+---
+
+Storm clusters are easy to deploy, requiring a minimum of setup and 
configuration to get up and running. Storm's out of the box configurations are 
suitable for production. Read more about how to deploy a Storm cluster 
[here](/documentation/Setting-up-a-Storm-cluster.html).
+
+If you're on EC2, the 
[storm-deploy](https://github.com/nathanmarz/storm-deploy) project can 
provision, configure, and install a Storm cluster from scratch at just the 
click of a button.
+
+Additionally, Storm is easy to operate once deployed. Storm has been designed 
to be [extremely robust](/about/fault-tolerant.html) – the cluster will just 
keep on running, month after month.

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/drpc.md
----------------------------------------------------------------------
diff --git a/about/drpc.md b/about/drpc.md
new file mode 100644
index 0000000..762fb82
--- /dev/null
+++ b/about/drpc.md
@@ -0,0 +1,4 @@
+---
+---
+<meta http-equiv="refresh" content="0; url=http://storm.apache.org/index.html";>
+<link rel="canonical" href="http://storm.apache.org/index.html"; />

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/fault-tolerant.md
----------------------------------------------------------------------
diff --git a/about/fault-tolerant.md b/about/fault-tolerant.md
new file mode 100644
index 0000000..057b372
--- /dev/null
+++ b/about/fault-tolerant.md
@@ -0,0 +1,9 @@
+---
+layout: about
+---
+
+Storm is fault-tolerant: when workers die, Storm will automatically restart 
them. If a node dies, the worker will be restarted on another node.
+
+The Storm daemons, Nimbus and the Supervisors, are designed to be stateless 
and fail-fast. So if they die, they will restart like nothing happened. This 
means you can *kill -9* the Storm daemons without affecting the health of the 
cluster or your topologies.
+
+Read more about Storm's fault-tolerance [on the 
manual](/documentation/Fault-tolerance.html).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/free-and-open-source.md
----------------------------------------------------------------------
diff --git a/about/free-and-open-source.md b/about/free-and-open-source.md
new file mode 100644
index 0000000..ade6afa
--- /dev/null
+++ b/about/free-and-open-source.md
@@ -0,0 +1,15 @@
+---
+layout: about
+---
+
+Apache Storm is a free and open source project licensed under the [Apache 
License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
+
+
+Storm has a large and growing ecosystem of libraries and tools to use in 
conjunction with Storm including everything from:
+
+1. *Spouts*: These spouts integrate with queueing systems such as JMS, Kafka, 
Redis pub/sub, and more.
+2. *storm-state*: storm-state makes it easy to manage large amounts of 
in-memory state in your computations in a reliable by using a distributed 
filesystem for persistence
+3. *Database integrations*: There are helper bolts for integrating with 
various databases, such as MongoDB, RDBMS's, Cassandra, and more.
+4. Other miscellaneous utilities
+
+The [Storm documentation](/documentation.html) has links to notable 
Storm-related projects hosted outside of Apache.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/guarantees-data-processing.md
----------------------------------------------------------------------
diff --git a/about/guarantees-data-processing.md 
b/about/guarantees-data-processing.md
new file mode 100644
index 0000000..3d6a0f3
--- /dev/null
+++ b/about/guarantees-data-processing.md
@@ -0,0 +1,10 @@
+---
+layout: about
+---
+
+Storm guarantees every tuple will be fully processed. One of Storm's core 
mechanisms is the ability to track the lineage of a tuple as it makes its way 
through the topology in an extremely efficient way. Read more about how this 
works [here](/documentation/Guaranteeing-message-processing.html).
+
+Storm's basic abstractions provide an at-least-once processing guarantee, the 
same guarantee you get when using a queueing system. Messages are only replayed 
when there are failures.
+
+Using [Trident](/documentation/Trident-tutorial.html), a higher level 
abstraction over Storm's basic abstractions, you can achieve exactly-once 
processing semantics.
+

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/integrates.md
----------------------------------------------------------------------
diff --git a/about/integrates.md b/about/integrates.md
new file mode 100644
index 0000000..8071bdb
--- /dev/null
+++ b/about/integrates.md
@@ -0,0 +1,13 @@
+---
+layout: about
+---
+
+Storm integrates with any queueing system and any database system. Storm's 
[spout](/apidocs/backtype/storm/spout/ISpout.html) abstraction makes it easy to 
integrate a new queuing system. Example queue integrations include:
+
+1. [Kestrel](https://github.com/nathanmarz/storm-kestrel)
+2. [RabbitMQ / AMQP](https://github.com/Xorlev/storm-amqp-spout)
+3. [Kafka](https://github.com/apache/storm/tree/master/external/storm-kafka)
+4. [JMS](https://github.com/ptgoetz/storm-jms)
+5. [Amazon Kinesis](https://github.com/awslabs/kinesis-storm-spout)
+
+Likewise, integrating Storm with database systems is easy. Simply open a 
connection to your database and read/write like you normally would. Storm will 
handle the parallelization, partitioning, and retrying on failures when 
necessary.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/multi-language.md
----------------------------------------------------------------------
diff --git a/about/multi-language.md b/about/multi-language.md
new file mode 100644
index 0000000..836bf03
--- /dev/null
+++ b/about/multi-language.md
@@ -0,0 +1,9 @@
+---
+layout: about
+---
+
+Storm was designed from the ground up to be usable with any programming 
language. At the core of Storm is a [Thrift](http://thrift.apache.org/) 
[definition](https://github.com/apache/storm/blob/master/storm-core/src/storm.thrift)
 for defining and submitting topologies. Since Thrift can be used in any 
language, topologies can be defined and submitted from any language.
+
+Similarly, spouts and bolts can be defined in any language. Non-JVM spouts and 
bolts communicate to Storm over a [JSON-based 
protocol](/documentation/Multilang-protocol.html) over stdin/stdout. Adapters 
that implement this protocol exist for 
[Ruby](https://github.com/apache/storm/blob/master/storm-multilang/ruby/src/main/resources/resources/storm.rb),
 
[Python](https://github.com/apache/storm/blob/master/storm-multilang/python/src/main/resources/resources/storm.py),
 
[Javascript](https://github.com/apache/storm/blob/master/storm-multilang/javascript/src/main/resources/resources/storm.js),
 [Perl](https://github.com/dan-blanchard/io-storm).
+
+*storm-starter* has an [example 
topology](https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/storm/starter/WordCountTopology.java)
 that implements one of the bolts in Python.

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/scalable.md
----------------------------------------------------------------------
diff --git a/about/scalable.md b/about/scalable.md
new file mode 100644
index 0000000..b487e52
--- /dev/null
+++ b/about/scalable.md
@@ -0,0 +1,10 @@
+---
+layout: about
+---
+
+Storm topologies are inherently parallel and run across a cluster of machines. 
Different parts of the topology can be scaled individually by tweaking their 
parallelism. The "rebalance" command of the "storm" command line client can 
adjust the parallelism of running topologies on the fly. 
+
+Storm's inherent parallelism means it can process very high throughputs of 
messages with very low latency. Storm was benchmarked at processing **one 
million 100 byte messages per second per node** on hardware with the following 
specs:
+
+ * **Processor:** 2x Intel E5645@2.4Ghz 
+ * **Memory:** 24 GB

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/about/simple-api.md
----------------------------------------------------------------------
diff --git a/about/simple-api.md b/about/simple-api.md
new file mode 100644
index 0000000..906d145
--- /dev/null
+++ b/about/simple-api.md
@@ -0,0 +1,15 @@
+---
+layout: about
+---
+
+Storm has a simple and easy to use API. When programming on Storm, you 
manipulate and transform streams of tuples, and a tuple is a named list of 
values. Tuples can contain objects of any type; if you want to use a type Storm 
doesn't know about it's [very easy](/releases/current/Serialization.html) to 
register a serializer for that type.
+
+There are just three abstractions in Storm: spouts, bolts, and topologies. A 
**spout** is a source of streams in a computation. Typically a spout reads from 
a queueing broker such as Kestrel, RabbitMQ, or Kafka, but a spout can also 
generate its own stream or read from somewhere like the Twitter streaming API. 
Spout implementations already exist for most queueing systems.
+
+A **bolt** processes any number of input streams and produces any number of 
new output streams. Most of the logic of a computation goes into bolts, such as 
functions, filters, streaming joins, streaming aggregations, talking to 
databases, and so on.
+
+A **topology** is a network of spouts and bolts, with each edge in the network 
representing a bolt subscribing to the output stream of some other spout or 
bolt. A topology is an arbitrarily complex multi-stage stream computation. 
Topologies run indefinitely when deployed.
+
+Storm has a "local mode" where a Storm cluster is simulated in-process. This 
is useful for development and testing. The "storm" command line client is used 
when ready to submit a topology for execution on an actual cluster.
+
+The 
[storm-starter](https://github.com/apache/storm/tree/master/examples/storm-starter)
 project contains example topologies for learning the basics of Storm. Learn 
more about how to use Storm by reading the 
[tutorial](/releases/current/Tutorial.html) and the 
[documentation](/releases/current/index.html).

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/assets/css/bootstrap-theme.css
----------------------------------------------------------------------
diff --git a/assets/css/bootstrap-theme.css b/assets/css/bootstrap-theme.css
new file mode 100644
index 0000000..c4cadf1
--- /dev/null
+++ b/assets/css/bootstrap-theme.css
@@ -0,0 +1,470 @@
+/*!
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px 
rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px 
rgba(0, 0, 0, .075);
+}
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+}
+.btn-default .badge,
+.btn-primary .badge,
+.btn-success .badge,
+.btn-info .badge,
+.btn-warning .badge,
+.btn-danger .badge {
+  text-shadow: none;
+}
+.btn:active,
+.btn.active {
+  background-image: none;
+}
+.btn-default {
+  text-shadow: 0 1px 0 #fff;
+  background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+  background-image:      -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#fff), to(#e0e0e0));
+  background-image:         linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', 
endColorstr='#ffe0e0e0', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #dbdbdb;
+  border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus {
+  background-color: #e0e0e0;
+  background-position: 0 -15px;
+}
+.btn-default:active,
+.btn-default.active {
+  background-color: #e0e0e0;
+  border-color: #dbdbdb;
+}
+.btn-default:disabled,
+.btn-default[disabled] {
+  background-color: #e0e0e0;
+  background-image: none;
+}
+.btn-primary {
+  background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
+  background-image:      -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#265a88));
+  background-image:         linear-gradient(to bottom, #337ab7 0%, #265a88 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff265a88', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #245580;
+}
+.btn-primary:hover,
+.btn-primary:focus {
+  background-color: #265a88;
+  background-position: 0 -15px;
+}
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #265a88;
+  border-color: #245580;
+}
+.btn-primary:disabled,
+.btn-primary[disabled] {
+  background-color: #265a88;
+  background-image: none;
+}
+.btn-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+  background-image:      -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#5cb85c), to(#419641));
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #419641 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', 
endColorstr='#ff419641', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #3e8f3e;
+}
+.btn-success:hover,
+.btn-success:focus {
+  background-color: #419641;
+  background-position: 0 -15px;
+}
+.btn-success:active,
+.btn-success.active {
+  background-color: #419641;
+  border-color: #3e8f3e;
+}
+.btn-success:disabled,
+.btn-success[disabled] {
+  background-color: #419641;
+  background-image: none;
+}
+.btn-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+  background-image:      -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#5bc0de), to(#2aabd2));
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #2aabd2 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', 
endColorstr='#ff2aabd2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+  background-color: #2aabd2;
+  background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+  background-color: #2aabd2;
+  border-color: #28a4c9;
+}
+.btn-info:disabled,
+.btn-info[disabled] {
+  background-color: #2aabd2;
+  background-image: none;
+}
+.btn-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f0ad4e), to(#eb9316));
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #eb9316 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', 
endColorstr='#ffeb9316', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #e38d13;
+}
+.btn-warning:hover,
+.btn-warning:focus {
+  background-color: #eb9316;
+  background-position: 0 -15px;
+}
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #eb9316;
+  border-color: #e38d13;
+}
+.btn-warning:disabled,
+.btn-warning[disabled] {
+  background-color: #eb9316;
+  background-image: none;
+}
+.btn-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+  background-image:      -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#d9534f), to(#c12e2a));
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c12e2a 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', 
endColorstr='#ffc12e2a', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #b92c28;
+}
+.btn-danger:hover,
+.btn-danger:focus {
+  background-color: #c12e2a;
+  background-position: 0 -15px;
+}
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #c12e2a;
+  border-color: #b92c28;
+}
+.btn-danger:disabled,
+.btn-danger[disabled] {
+  background-color: #c12e2a;
+  background-image: none;
+}
+.thumbnail,
+.img-thumbnail {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  background-color: #e8e8e8;
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f5f5f5), to(#e8e8e8));
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', 
endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  background-color: #2e6da4;
+  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#2e6da4));
+  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff2e6da4', GradientType=0);
+  background-repeat: repeat-x;
+}
+.navbar-default {
+  background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+  background-image:      -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#fff), to(#f8f8f8));
+  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', 
endColorstr='#fff8f8f8', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px 
rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px 
rgba(0, 0, 0, .075);
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+  background-image:      -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#dbdbdb), to(#e2e2e2));
+  background-image:         linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', 
endColorstr='#ffe2e2e2', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+}
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
+}
+.navbar-inverse {
+  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+  background-image:      -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#3c3c3c), to(#222));
+  background-image:         linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', 
endColorstr='#ff222222', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+  background-image:      -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#080808), to(#0f0f0f));
+  background-image:         linear-gradient(to bottom, #080808 0%, #0f0f0f 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', 
endColorstr='#ff0f0f0f', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+}
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
+}
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+@media (max-width: 767px) {
+  .navbar .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #fff;
+    background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+    background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+    background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#2e6da4));
+    background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 
100%);
+    filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff2e6da4', GradientType=0);
+    background-repeat: repeat-x;
+  }
+}
+.alert {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px 
rgba(0, 0, 0, .05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px 
rgba(0, 0, 0, .05);
+}
+.alert-success {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image:      -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#dff0d8), to(#c8e5bc));
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', 
endColorstr='#ffc8e5bc', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #b2dba1;
+}
+.alert-info {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image:      -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#d9edf7), to(#b9def0));
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #b9def0 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', 
endColorstr='#ffb9def0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #9acfea;
+}
+.alert-warning {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#fcf8e3), to(#f8efc0));
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', 
endColorstr='#fff8efc0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #f5e79e;
+}
+.alert-danger {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image:      -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f2dede), to(#e7c3c3));
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #e7c3c3 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', 
endColorstr='#ffe7c3c3', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dca7a7;
+}
+.progress {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image:      -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#ebebeb), to(#f5f5f5));
+  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', 
endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar {
+  background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
+  background-image:      -o-linear-gradient(top, #337ab7 0%, #286090 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#286090));
+  background-image:         linear-gradient(to bottom, #337ab7 0%, #286090 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff286090', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image:      -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#5cb85c), to(#449d44));
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #449d44 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', 
endColorstr='#ff449d44', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image:      -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#5bc0de), to(#31b0d5));
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #31b0d5 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', 
endColorstr='#ff31b0d5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f0ad4e), to(#ec971f));
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #ec971f 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', 
endColorstr='#ffec971f', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image:      -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#d9534f), to(#c9302c));
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c9302c 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', 
endColorstr='#ffc9302c', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-striped {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 
25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 
255, 255, .15) 75%, transparent 75%, transparent);
+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 
25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 
255, 255, .15) 75%, transparent 75%, transparent);
+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 
25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 
255, 255, .15) 75%, transparent 75%, transparent);
+}
+.list-group {
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 #286090;
+  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+  background-image:      -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#2b669a));
+  background-image:         linear-gradient(to bottom, #337ab7 0%, #2b669a 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff2b669a', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #2b669a;
+}
+.list-group-item.active .badge,
+.list-group-item.active:hover .badge,
+.list-group-item.active:focus .badge {
+  text-shadow: none;
+}
+.panel {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+}
+.panel-default > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f5f5f5), to(#e8e8e8));
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', 
endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-primary > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#337ab7), to(#2e6da4));
+  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', 
endColorstr='#ff2e6da4', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-success > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image:      -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#dff0d8), to(#d0e9c6));
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', 
endColorstr='#ffd0e9c6', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-info > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image:      -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#d9edf7), to(#c4e3f3));
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', 
endColorstr='#ffc4e3f3', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-warning > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#fcf8e3), to(#faf2cc));
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', 
endColorstr='#fffaf2cc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-danger > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image:      -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#f2dede), to(#ebcccc));
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #ebcccc 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', 
endColorstr='#ffebcccc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.well {
+  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image:      -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, 
from(#e8e8e8), to(#f5f5f5));
+  background-image:         linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 
100%);
+  filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', 
endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dcdcdc;
+  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 
255, 255, .1);
+          box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 
255, 255, .1);
+}
+/*# sourceMappingURL=bootstrap-theme.css.map */

Reply via email to