passenger 5.2.3 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (241) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/CONTRIBUTORS +5 -1
  4. data/build/agent.rb +22 -2
  5. data/build/cxx_tests.rb +41 -5
  6. data/build/misc.rb +4 -1
  7. data/build/support/cxx_dependency_map.rb +1746 -908
  8. data/build/support/vendor/cxx_hinted_parser/CxxHintedParser.sublime-project +8 -0
  9. data/build/support/vendor/cxx_hinted_parser/Gemfile +5 -0
  10. data/build/support/vendor/cxx_hinted_parser/Gemfile.lock +30 -0
  11. data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core → build/support/vendor/cxx_hinted_parser}/LICENSE.md +1 -1
  12. data/build/support/vendor/cxx_hinted_parser/README.md +95 -0
  13. data/build/support/vendor/cxx_hinted_parser/Rakefile +4 -0
  14. data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/initialize.rb → build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb} +2 -9
  15. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +239 -0
  16. data/dev/ci/README.md +15 -2
  17. data/dev/ci/lib/set-container-envvars.sh +6 -0
  18. data/dev/ci/lib/setup-container.sh +4 -1
  19. data/dev/ci/scripts/debug-console-wrapper.sh +3 -1
  20. data/dev/ci/setup-host +5 -0
  21. data/dev/ci/tests/binaries/Jenkinsfile +105 -0
  22. data/dev/ci/tests/binaries/build-linux +38 -0
  23. data/dev/ci/tests/binaries/build-macos +40 -0
  24. data/dev/ci/tests/binaries/prepare-macos +38 -0
  25. data/dev/ci/tests/binaries/test-linux +45 -0
  26. data/dev/ci/tests/binaries/test-macos +38 -0
  27. data/dev/ci/tests/debian/Jenkinsfile +2 -2
  28. data/dev/ci/tests/rpm/Jenkinsfile +1 -1
  29. data/dev/configkit-schemas/index.json +3 -24
  30. data/dev/vagrant/nginx_rakefile +0 -1
  31. data/package.json +15 -5
  32. data/resources/templates/error_renderer/.editorconfig +19 -0
  33. data/resources/templates/error_renderer/with_details/README.md +9 -0
  34. data/resources/templates/error_renderer/with_details/dist/bundle.js +33 -0
  35. data/resources/templates/error_renderer/with_details/dist/styles.css +17 -0
  36. data/resources/templates/error_renderer/with_details/src/DetailsView.jsx +52 -0
  37. data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +61 -0
  38. data/resources/templates/error_renderer/with_details/src/JourneyView.css +50 -0
  39. data/resources/templates/error_renderer/with_details/src/JourneyView.jsx +621 -0
  40. data/resources/templates/error_renderer/with_details/src/PageMain.css +114 -0
  41. data/resources/templates/error_renderer/with_details/src/PageMain.jsx +136 -0
  42. data/resources/templates/error_renderer/with_details/src/ProblemDescriptionView.jsx +14 -0
  43. data/resources/templates/error_renderer/with_details/src/ProcessDetailsView.jsx +56 -0
  44. data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.css +5 -0
  45. data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.jsx +15 -0
  46. data/resources/templates/error_renderer/with_details/src/SummaryView.jsx +35 -0
  47. data/resources/templates/error_renderer/with_details/src/SystemComponentView.css +34 -0
  48. data/resources/templates/error_renderer/with_details/src/SystemComponentView.jsx +168 -0
  49. data/resources/templates/error_renderer/with_details/src/SystemComponentsView.css +13 -0
  50. data/resources/templates/error_renderer/with_details/src/SystemComponentsView.jsx +116 -0
  51. data/resources/templates/error_renderer/with_details/src/Tab.jsx +12 -0
  52. data/resources/templates/error_renderer/with_details/src/Tabs.jsx +104 -0
  53. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +3446 -0
  54. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +293 -0
  55. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +401 -0
  56. data/resources/templates/error_renderer/with_details/src/index.html.template +22 -0
  57. data/resources/templates/error_renderer/with_details/src/index.jsx +23 -0
  58. data/resources/templates/error_renderer/with_details/webpack.config.js +47 -0
  59. data/resources/templates/error_renderer/without_details/dist/bundle.js +1 -0
  60. data/resources/templates/error_renderer/without_details/dist/styles.css +1 -0
  61. data/resources/templates/{undisclosed_error.html.template → error_renderer/without_details/src/index.html.template} +7 -11
  62. data/resources/templates/error_renderer/without_details/src/index.js +1 -0
  63. data/resources/templates/{error_layout.css → error_renderer/without_details/src/main.css} +5 -2
  64. data/resources/templates/error_renderer/without_details/webpack.config.js +42 -0
  65. data/src/agent/AgentMain.cpp +3 -3
  66. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +13 -0
  67. data/src/agent/Core/ApplicationPool/Common.h +3 -4
  68. data/src/agent/Core/ApplicationPool/Context.h +27 -17
  69. data/src/agent/Core/ApplicationPool/Group.h +3 -1
  70. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +2 -12
  71. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +55 -10
  72. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
  73. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
  74. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +13 -6
  75. data/src/agent/Core/ApplicationPool/Implementation.cpp +16 -100
  76. data/src/agent/Core/ApplicationPool/Options.h +8 -65
  77. data/src/agent/Core/ApplicationPool/Pool.h +4 -21
  78. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -60
  79. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +10 -13
  80. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +3 -8
  81. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +2 -34
  82. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  83. data/src/agent/Core/ApplicationPool/Process.cpp +17 -12
  84. data/src/agent/Core/ApplicationPool/Process.h +146 -93
  85. data/src/agent/Core/ApplicationPool/Session.h +2 -2
  86. data/src/agent/Core/ApplicationPool/Socket.h +28 -27
  87. data/src/agent/Core/Config.h +1 -3
  88. data/src/agent/Core/ConfigChange.cpp +2 -4
  89. data/src/agent/Core/Controller.h +2 -8
  90. data/src/agent/Core/Controller/BufferBody.cpp +0 -2
  91. data/src/agent/Core/Controller/CheckoutSession.cpp +12 -24
  92. data/src/agent/Core/Controller/Config.h +1 -9
  93. data/src/agent/Core/Controller/ForwardResponse.cpp +0 -34
  94. data/src/agent/Core/Controller/Hooks.cpp +0 -7
  95. data/src/agent/Core/Controller/InitRequest.cpp +0 -43
  96. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +0 -4
  97. data/src/agent/Core/Controller/Request.h +1 -35
  98. data/src/agent/Core/Controller/SendRequest.cpp +0 -32
  99. data/src/agent/Core/CoreMain.cpp +19 -32
  100. data/src/agent/Core/SpawningKit/Config.h +329 -55
  101. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +369 -0
  102. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +307 -0
  103. data/src/agent/Core/SpawningKit/Context.h +211 -0
  104. data/src/agent/Core/SpawningKit/DirectSpawner.h +112 -122
  105. data/src/agent/Core/SpawningKit/DummySpawner.h +59 -20
  106. data/src/agent/Core/SpawningKit/ErrorRenderer.h +117 -0
  107. data/src/agent/Core/SpawningKit/Exceptions.h +1157 -0
  108. data/src/agent/Core/SpawningKit/Factory.h +24 -17
  109. data/src/agent/Core/SpawningKit/{BackgroundIOCapturer.h → Handshake/BackgroundIOCapturer.h} +48 -18
  110. data/src/agent/Core/SpawningKit/Handshake/Perform.h +1650 -0
  111. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +582 -0
  112. data/src/agent/Core/SpawningKit/Handshake/Session.h +91 -0
  113. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +100 -0
  114. data/src/agent/Core/SpawningKit/Journey.h +561 -0
  115. data/src/agent/Core/SpawningKit/PipeWatcher.h +41 -18
  116. data/src/agent/Core/SpawningKit/README.md +534 -0
  117. data/src/agent/Core/SpawningKit/Result.h +182 -7
  118. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +69 -0
  119. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +110 -0
  120. data/src/agent/Core/SpawningKit/SmartSpawner.h +1027 -562
  121. data/src/agent/Core/SpawningKit/Spawner.h +70 -1134
  122. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +3 -33
  123. data/src/agent/README.md +2 -3
  124. data/src/agent/Shared/ApiServerUtils.h +2 -3
  125. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +932 -0
  126. data/src/agent/Watchdog/Config.h +1 -3
  127. data/src/agent/Watchdog/WatchdogMain.cpp +2 -1
  128. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  129. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  130. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +22 -13
  131. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +5 -0
  132. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  133. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +13 -0
  134. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  135. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +13 -0
  136. data/src/cxx_supportlib/Constants.h +3 -1
  137. data/src/cxx_supportlib/Exceptions.h +0 -121
  138. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +7 -6
  139. data/src/cxx_supportlib/LoggingKit/Logging.h +3 -1
  140. data/src/cxx_supportlib/Utils.cpp +42 -0
  141. data/src/cxx_supportlib/Utils.h +7 -0
  142. data/src/cxx_supportlib/Utils/IOUtils.cpp +58 -0
  143. data/src/cxx_supportlib/Utils/IOUtils.h +13 -0
  144. data/src/cxx_supportlib/Utils/JsonUtils.h +130 -23
  145. data/src/cxx_supportlib/Utils/ScopeGuard.h +9 -4
  146. data/src/cxx_supportlib/Utils/StrIntUtils.cpp +7 -0
  147. data/src/cxx_supportlib/Utils/StrIntUtils.h +1 -0
  148. data/src/cxx_supportlib/Utils/SystemTime.h +1 -1
  149. data/src/cxx_supportlib/Utils/Timer.h +1 -1
  150. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +6 -4
  151. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -0
  152. data/src/helper-scripts/node-loader.js +54 -59
  153. data/src/helper-scripts/rack-loader.rb +63 -60
  154. data/src/helper-scripts/rack-preloader.rb +125 -72
  155. data/src/helper-scripts/wsgi-loader.py +100 -43
  156. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +120 -112
  157. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +15 -8
  158. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +142 -142
  159. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +26 -15
  160. data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +3 -0
  161. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +76 -70
  162. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +114 -99
  163. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +170 -156
  164. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +38 -35
  165. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +5 -1
  166. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  167. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +14 -1
  168. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +8 -0
  169. data/src/ruby_supportlib/phusion_passenger/common_library.rb +0 -3
  170. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +0 -1
  171. data/src/ruby_supportlib/phusion_passenger/constants.rb +2 -0
  172. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +646 -238
  173. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +117 -95
  174. data/src/ruby_supportlib/phusion_passenger/packaging.rb +0 -1
  175. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +5 -1
  176. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +92 -69
  177. data/src/ruby_supportlib/phusion_passenger/public_api.rb +0 -17
  178. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +0 -3
  179. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -5
  180. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +0 -22
  181. metadata +64 -67
  182. data/resources/templates/error_layout.html.template +0 -86
  183. data/resources/templates/general_error.html.template +0 -1
  184. data/resources/templates/general_error_with_html.html.template +0 -1
  185. data/src/agent/Core/ApplicationPool/ErrorRenderer.h +0 -131
  186. data/src/agent/Core/SpawningKit/Options.h +0 -41
  187. data/src/agent/Core/UnionStation/Connection.h +0 -173
  188. data/src/agent/Core/UnionStation/Context.h +0 -536
  189. data/src/agent/Core/UnionStation/StopwatchLog.h +0 -147
  190. data/src/agent/Core/UnionStation/Transaction.h +0 -249
  191. data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +0 -208
  192. data/src/cxx_supportlib/UnionStationFilterSupport.cpp +0 -67
  193. data/src/cxx_supportlib/UnionStationFilterSupport.h +0 -1622
  194. data/src/nodejs_supportlib/phusion_passenger/log_express.js +0 -106
  195. data/src/nodejs_supportlib/phusion_passenger/log_mongodb.js +0 -202
  196. data/src/nodejs_supportlib/phusion_passenger/ustreporter.js +0 -227
  197. data/src/nodejs_supportlib/phusion_passenger/ustrouter_connector.js +0 -448
  198. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/CONFIG.md +0 -37
  199. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile +0 -17
  200. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile.lock +0 -59
  201. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README-API.md +0 -5
  202. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README.md +0 -117
  203. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Rakefile +0 -115
  204. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +0 -423
  205. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/api.rb +0 -238
  206. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/connection.rb +0 -67
  207. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/context.rb +0 -281
  208. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/lock.rb +0 -62
  209. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/log.rb +0 -66
  210. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/message_channel.rb +0 -157
  211. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter.rb +0 -150
  212. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/basics.rb +0 -199
  213. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/controllers.rb +0 -187
  214. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/misc.rb +0 -303
  215. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/view_rendering.rb +0 -91
  216. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/simple_json.rb +0 -396
  217. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/spec_helper.rb +0 -279
  218. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/time_point.rb +0 -39
  219. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/transaction.rb +0 -173
  220. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/utils.rb +0 -177
  221. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version.rb +0 -32
  222. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +0 -44
  223. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.example +0 -16
  224. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis +0 -20
  225. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis-with-sudo +0 -18
  226. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/union_station_hooks_core.gemspec +0 -23
  227. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile +0 -14
  228. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile.lock +0 -45
  229. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/LICENSE.md +0 -19
  230. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/README.md +0 -104
  231. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Rakefile +0 -160
  232. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails.rb +0 -200
  233. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_controller_extension.rb +0 -45
  234. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_view_subscriber.rb +0 -55
  235. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_record_subscriber.rb +0 -41
  236. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_benchmarkable_extension.rb +0 -47
  237. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_cache_subscriber.rb +0 -79
  238. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/exception_logger.rb +0 -57
  239. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version.rb +0 -32
  240. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version_data.rb +0 -44
  241. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/union_station_hooks_rails.gemspec +0 -34
@@ -0,0 +1,293 @@
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2017 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ /*!
8
+ * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=e18bae9569f7969c3d0bbc56a809d696)
9
+ * Config saved to config.json and https://gist.github.com/e18bae9569f7969c3d0bbc56a809d696
10
+ */
11
+ if (typeof jQuery === 'undefined') {
12
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
13
+ }
14
+ +function ($) {
15
+ 'use strict';
16
+ var version = $.fn.jquery.split(' ')[0].split('.')
17
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
18
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
19
+ }
20
+ }(jQuery);
21
+
22
+ /* ========================================================================
23
+ * Bootstrap: collapse.js v3.3.7
24
+ * http://getbootstrap.com/javascript/#collapse
25
+ * ========================================================================
26
+ * Copyright 2011-2016 Twitter, Inc.
27
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
28
+ * ======================================================================== */
29
+
30
+ /* jshint latedef: false */
31
+
32
+ +function ($) {
33
+ 'use strict';
34
+
35
+ // COLLAPSE PUBLIC CLASS DEFINITION
36
+ // ================================
37
+
38
+ var Collapse = function (element, options) {
39
+ this.$element = $(element)
40
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
41
+ this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
42
+ '[data-toggle="collapse"][data-target="#' + element.id + '"]')
43
+ this.transitioning = null
44
+
45
+ if (this.options.parent) {
46
+ this.$parent = this.getParent()
47
+ } else {
48
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger)
49
+ }
50
+
51
+ if (this.options.toggle) this.toggle()
52
+ }
53
+
54
+ Collapse.VERSION = '3.3.7'
55
+
56
+ Collapse.TRANSITION_DURATION = 350
57
+
58
+ Collapse.DEFAULTS = {
59
+ toggle: true
60
+ }
61
+
62
+ Collapse.prototype.dimension = function () {
63
+ var hasWidth = this.$element.hasClass('width')
64
+ return hasWidth ? 'width' : 'height'
65
+ }
66
+
67
+ Collapse.prototype.show = function () {
68
+ if (this.transitioning || this.$element.hasClass('in')) return
69
+
70
+ var activesData
71
+ var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
72
+
73
+ if (actives && actives.length) {
74
+ activesData = actives.data('bs.collapse')
75
+ if (activesData && activesData.transitioning) return
76
+ }
77
+
78
+ var startEvent = $.Event('show.bs.collapse')
79
+ this.$element.trigger(startEvent)
80
+ if (startEvent.isDefaultPrevented()) return
81
+
82
+ if (actives && actives.length) {
83
+ Plugin.call(actives, 'hide')
84
+ activesData || actives.data('bs.collapse', null)
85
+ }
86
+
87
+ var dimension = this.dimension()
88
+
89
+ this.$element
90
+ .removeClass('collapse')
91
+ .addClass('collapsing')[dimension](0)
92
+ .attr('aria-expanded', true)
93
+
94
+ this.$trigger
95
+ .removeClass('collapsed')
96
+ .attr('aria-expanded', true)
97
+
98
+ this.transitioning = 1
99
+
100
+ var complete = function () {
101
+ this.$element
102
+ .removeClass('collapsing')
103
+ .addClass('collapse in')[dimension]('')
104
+ this.transitioning = 0
105
+ this.$element
106
+ .trigger('shown.bs.collapse')
107
+ }
108
+
109
+ if (!$.support.transition) return complete.call(this)
110
+
111
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
112
+
113
+ this.$element
114
+ .one('bsTransitionEnd', $.proxy(complete, this))
115
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
116
+ }
117
+
118
+ Collapse.prototype.hide = function () {
119
+ if (this.transitioning || !this.$element.hasClass('in')) return
120
+
121
+ var startEvent = $.Event('hide.bs.collapse')
122
+ this.$element.trigger(startEvent)
123
+ if (startEvent.isDefaultPrevented()) return
124
+
125
+ var dimension = this.dimension()
126
+
127
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
128
+
129
+ this.$element
130
+ .addClass('collapsing')
131
+ .removeClass('collapse in')
132
+ .attr('aria-expanded', false)
133
+
134
+ this.$trigger
135
+ .addClass('collapsed')
136
+ .attr('aria-expanded', false)
137
+
138
+ this.transitioning = 1
139
+
140
+ var complete = function () {
141
+ this.transitioning = 0
142
+ this.$element
143
+ .removeClass('collapsing')
144
+ .addClass('collapse')
145
+ .trigger('hidden.bs.collapse')
146
+ }
147
+
148
+ if (!$.support.transition) return complete.call(this)
149
+
150
+ this.$element
151
+ [dimension](0)
152
+ .one('bsTransitionEnd', $.proxy(complete, this))
153
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
154
+ }
155
+
156
+ Collapse.prototype.toggle = function () {
157
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
158
+ }
159
+
160
+ Collapse.prototype.getParent = function () {
161
+ return $(this.options.parent)
162
+ .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
163
+ .each($.proxy(function (i, element) {
164
+ var $element = $(element)
165
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
166
+ }, this))
167
+ .end()
168
+ }
169
+
170
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
171
+ var isOpen = $element.hasClass('in')
172
+
173
+ $element.attr('aria-expanded', isOpen)
174
+ $trigger
175
+ .toggleClass('collapsed', !isOpen)
176
+ .attr('aria-expanded', isOpen)
177
+ }
178
+
179
+ function getTargetFromTrigger($trigger) {
180
+ var href
181
+ var target = $trigger.attr('data-target')
182
+ || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
183
+
184
+ return $(target)
185
+ }
186
+
187
+
188
+ // COLLAPSE PLUGIN DEFINITION
189
+ // ==========================
190
+
191
+ function Plugin(option) {
192
+ return this.each(function () {
193
+ var $this = $(this)
194
+ var data = $this.data('bs.collapse')
195
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
196
+
197
+ if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
198
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
199
+ if (typeof option == 'string') data[option]()
200
+ })
201
+ }
202
+
203
+ var old = $.fn.collapse
204
+
205
+ $.fn.collapse = Plugin
206
+ $.fn.collapse.Constructor = Collapse
207
+
208
+
209
+ // COLLAPSE NO CONFLICT
210
+ // ====================
211
+
212
+ $.fn.collapse.noConflict = function () {
213
+ $.fn.collapse = old
214
+ return this
215
+ }
216
+
217
+
218
+ // COLLAPSE DATA-API
219
+ // =================
220
+
221
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
222
+ var $this = $(this)
223
+
224
+ if (!$this.attr('data-target')) e.preventDefault()
225
+
226
+ var $target = getTargetFromTrigger($this)
227
+ var data = $target.data('bs.collapse')
228
+ var option = data ? 'toggle' : $this.data()
229
+
230
+ Plugin.call($target, option)
231
+ })
232
+
233
+ }(jQuery);
234
+
235
+ /* ========================================================================
236
+ * Bootstrap: transition.js v3.3.7
237
+ * http://getbootstrap.com/javascript/#transitions
238
+ * ========================================================================
239
+ * Copyright 2011-2016 Twitter, Inc.
240
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
241
+ * ======================================================================== */
242
+
243
+
244
+ +function ($) {
245
+ 'use strict';
246
+
247
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
248
+ // ============================================================
249
+
250
+ function transitionEnd() {
251
+ var el = document.createElement('bootstrap')
252
+
253
+ var transEndEventNames = {
254
+ WebkitTransition : 'webkitTransitionEnd',
255
+ MozTransition : 'transitionend',
256
+ OTransition : 'oTransitionEnd otransitionend',
257
+ transition : 'transitionend'
258
+ }
259
+
260
+ for (var name in transEndEventNames) {
261
+ if (el.style[name] !== undefined) {
262
+ return { end: transEndEventNames[name] }
263
+ }
264
+ }
265
+
266
+ return false // explicit for ie8 ( ._.)
267
+ }
268
+
269
+ // http://blog.alexmaccaw.com/css-transitions
270
+ $.fn.emulateTransitionEnd = function (duration) {
271
+ var called = false
272
+ var $el = this
273
+ $(this).one('bsTransitionEnd', function () { called = true })
274
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
275
+ setTimeout(callback, duration)
276
+ return this
277
+ }
278
+
279
+ $(function () {
280
+ $.support.transition = transitionEnd()
281
+
282
+ if (!$.support.transition) return
283
+
284
+ $.event.special.bsTransitionEnd = {
285
+ bindType: $.support.transition.end,
286
+ delegateType: $.support.transition.end,
287
+ handle: function (e) {
288
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
289
+ }
290
+ }
291
+ })
292
+
293
+ }(jQuery);
@@ -0,0 +1,401 @@
1
+ {
2
+ "vars": {
3
+ "@gray-base": "#000",
4
+ "@gray-darker": "lighten(@gray-base, 13.5%)",
5
+ "@gray-dark": "lighten(@gray-base, 20%)",
6
+ "@gray": "lighten(@gray-base, 33.5%)",
7
+ "@gray-light": "lighten(@gray-base, 46.7%)",
8
+ "@gray-lighter": "lighten(@gray-base, 93.5%)",
9
+ "@brand-primary": "darken(#428bca, 6.5%)",
10
+ "@brand-success": "#5cb85c",
11
+ "@brand-info": "#5bc0de",
12
+ "@brand-warning": "#f0ad4e",
13
+ "@brand-danger": "#d9534f",
14
+ "@body-bg": "#fff",
15
+ "@text-color": "@gray-dark",
16
+ "@link-color": "@brand-primary",
17
+ "@link-hover-color": "darken(@link-color, 15%)",
18
+ "@link-hover-decoration": "underline",
19
+ "@font-family-sans-serif": "\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif",
20
+ "@font-family-serif": "Georgia, \"Times New Roman\", Times, serif",
21
+ "@font-family-monospace": "Menlo, Monaco, Consolas, \"Courier New\", monospace",
22
+ "@font-family-base": "@font-family-sans-serif",
23
+ "@font-size-base": "16px",
24
+ "@font-size-large": "ceil((@font-size-base * 1.25))",
25
+ "@font-size-small": "ceil((@font-size-base * 0.85))",
26
+ "@font-size-h1": "floor((@font-size-base * 2.6))",
27
+ "@font-size-h2": "floor((@font-size-base * 2.15))",
28
+ "@font-size-h3": "ceil((@font-size-base * 1.7))",
29
+ "@font-size-h4": "ceil((@font-size-base * 1.25))",
30
+ "@font-size-h5": "@font-size-base",
31
+ "@font-size-h6": "ceil((@font-size-base * 0.85))",
32
+ "@line-height-base": "1.5",
33
+ "@line-height-computed": "floor((@font-size-base * @line-height-base))",
34
+ "@headings-font-family": "inherit",
35
+ "@headings-font-weight": "500",
36
+ "@headings-line-height": "1.1",
37
+ "@headings-color": "inherit",
38
+ "@icon-font-path": "\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/\"",
39
+ "@icon-font-name": "\"glyphicons-halflings-regular\"",
40
+ "@icon-font-svg-id": "\"glyphicons_halflingsregular\"",
41
+ "@padding-base-vertical": "6px",
42
+ "@padding-base-horizontal": "12px",
43
+ "@padding-large-vertical": "10px",
44
+ "@padding-large-horizontal": "16px",
45
+ "@padding-small-vertical": "5px",
46
+ "@padding-small-horizontal": "10px",
47
+ "@padding-xs-vertical": "1px",
48
+ "@padding-xs-horizontal": "5px",
49
+ "@line-height-large": "1.3333333",
50
+ "@line-height-small": "1.5",
51
+ "@border-radius-base": "0px",
52
+ "@border-radius-large": "0px",
53
+ "@border-radius-small": "0px",
54
+ "@component-active-color": "#fff",
55
+ "@component-active-bg": "@brand-primary",
56
+ "@caret-width-base": "4px",
57
+ "@caret-width-large": "5px",
58
+ "@table-cell-padding": "8px",
59
+ "@table-condensed-cell-padding": "5px",
60
+ "@table-bg": "transparent",
61
+ "@table-bg-accent": "#f9f9f9",
62
+ "@table-bg-hover": "#f5f5f5",
63
+ "@table-bg-active": "@table-bg-hover",
64
+ "@table-border-color": "#ddd",
65
+ "@btn-font-weight": "normal",
66
+ "@btn-default-color": "#333",
67
+ "@btn-default-bg": "#fff",
68
+ "@btn-default-border": "#ccc",
69
+ "@btn-primary-color": "#fff",
70
+ "@btn-primary-bg": "@brand-primary",
71
+ "@btn-primary-border": "darken(@btn-primary-bg, 5%)",
72
+ "@btn-success-color": "#fff",
73
+ "@btn-success-bg": "@brand-success",
74
+ "@btn-success-border": "darken(@btn-success-bg, 5%)",
75
+ "@btn-info-color": "#fff",
76
+ "@btn-info-bg": "@brand-info",
77
+ "@btn-info-border": "darken(@btn-info-bg, 5%)",
78
+ "@btn-warning-color": "#fff",
79
+ "@btn-warning-bg": "@brand-warning",
80
+ "@btn-warning-border": "darken(@btn-warning-bg, 5%)",
81
+ "@btn-danger-color": "#fff",
82
+ "@btn-danger-bg": "@brand-danger",
83
+ "@btn-danger-border": "darken(@btn-danger-bg, 5%)",
84
+ "@btn-link-disabled-color": "@gray-light",
85
+ "@btn-border-radius-base": "@border-radius-base",
86
+ "@btn-border-radius-large": "@border-radius-large",
87
+ "@btn-border-radius-small": "@border-radius-small",
88
+ "@input-bg": "#fff",
89
+ "@input-bg-disabled": "@gray-lighter",
90
+ "@input-color": "@gray",
91
+ "@input-border": "#ccc",
92
+ "@input-border-radius": "@border-radius-base",
93
+ "@input-border-radius-large": "@border-radius-large",
94
+ "@input-border-radius-small": "@border-radius-small",
95
+ "@input-border-focus": "#66afe9",
96
+ "@input-color-placeholder": "#999",
97
+ "@input-height-base": "(@line-height-computed + (@padding-base-vertical * 2) + 2)",
98
+ "@input-height-large": "(ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2)",
99
+ "@input-height-small": "(floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2)",
100
+ "@form-group-margin-bottom": "15px",
101
+ "@legend-color": "@gray-dark",
102
+ "@legend-border-color": "#e5e5e5",
103
+ "@input-group-addon-bg": "@gray-lighter",
104
+ "@input-group-addon-border-color": "@input-border",
105
+ "@cursor-disabled": "not-allowed",
106
+ "@dropdown-bg": "#fff",
107
+ "@dropdown-border": "rgba(0,0,0,.15)",
108
+ "@dropdown-fallback-border": "#ccc",
109
+ "@dropdown-divider-bg": "#e5e5e5",
110
+ "@dropdown-link-color": "@gray-dark",
111
+ "@dropdown-link-hover-color": "darken(@gray-dark, 5%)",
112
+ "@dropdown-link-hover-bg": "#f5f5f5",
113
+ "@dropdown-link-active-color": "@component-active-color",
114
+ "@dropdown-link-active-bg": "@component-active-bg",
115
+ "@dropdown-link-disabled-color": "@gray-light",
116
+ "@dropdown-header-color": "@gray-light",
117
+ "@dropdown-caret-color": "#000",
118
+ "@screen-xs": "480px",
119
+ "@screen-xs-min": "@screen-xs",
120
+ "@screen-phone": "@screen-xs-min",
121
+ "@screen-sm": "768px",
122
+ "@screen-sm-min": "@screen-sm",
123
+ "@screen-tablet": "@screen-sm-min",
124
+ "@screen-md": "992px",
125
+ "@screen-md-min": "@screen-md",
126
+ "@screen-desktop": "@screen-md-min",
127
+ "@screen-lg": "1200px",
128
+ "@screen-lg-min": "@screen-lg",
129
+ "@screen-lg-desktop": "@screen-lg-min",
130
+ "@screen-xs-max": "(@screen-sm-min - 1)",
131
+ "@screen-sm-max": "(@screen-md-min - 1)",
132
+ "@screen-md-max": "(@screen-lg-min - 1)",
133
+ "@grid-columns": "12",
134
+ "@grid-gutter-width": "60px",
135
+ "@grid-float-breakpoint": "@screen-sm-min",
136
+ "@grid-float-breakpoint-max": "(@grid-float-breakpoint - 1)",
137
+ "@container-tablet": "(720px + @grid-gutter-width)",
138
+ "@container-sm": "@container-tablet",
139
+ "@container-desktop": "(940px + @grid-gutter-width)",
140
+ "@container-md": "@container-desktop",
141
+ "@container-large-desktop": "@container-desktop",
142
+ "@container-lg": "@container-desktop",
143
+ "@navbar-height": "50px",
144
+ "@navbar-margin-bottom": "@line-height-computed",
145
+ "@navbar-border-radius": "@border-radius-base",
146
+ "@navbar-padding-horizontal": "floor((@grid-gutter-width / 2))",
147
+ "@navbar-padding-vertical": "((@navbar-height - @line-height-computed) / 2)",
148
+ "@navbar-collapse-max-height": "340px",
149
+ "@navbar-default-color": "#777",
150
+ "@navbar-default-bg": "#f8f8f8",
151
+ "@navbar-default-border": "darken(@navbar-default-bg, 6.5%)",
152
+ "@navbar-default-link-color": "#777",
153
+ "@navbar-default-link-hover-color": "#333",
154
+ "@navbar-default-link-hover-bg": "transparent",
155
+ "@navbar-default-link-active-color": "#555",
156
+ "@navbar-default-link-active-bg": "darken(@navbar-default-bg, 6.5%)",
157
+ "@navbar-default-link-disabled-color": "#ccc",
158
+ "@navbar-default-link-disabled-bg": "transparent",
159
+ "@navbar-default-brand-color": "@navbar-default-link-color",
160
+ "@navbar-default-brand-hover-color": "darken(@navbar-default-brand-color, 10%)",
161
+ "@navbar-default-brand-hover-bg": "transparent",
162
+ "@navbar-default-toggle-hover-bg": "#ddd",
163
+ "@navbar-default-toggle-icon-bar-bg": "#888",
164
+ "@navbar-default-toggle-border-color": "#ddd",
165
+ "@navbar-inverse-color": "lighten(@gray-light, 15%)",
166
+ "@navbar-inverse-bg": "#222",
167
+ "@navbar-inverse-border": "darken(@navbar-inverse-bg, 10%)",
168
+ "@navbar-inverse-link-color": "lighten(@gray-light, 15%)",
169
+ "@navbar-inverse-link-hover-color": "#fff",
170
+ "@navbar-inverse-link-hover-bg": "transparent",
171
+ "@navbar-inverse-link-active-color": "@navbar-inverse-link-hover-color",
172
+ "@navbar-inverse-link-active-bg": "darken(@navbar-inverse-bg, 10%)",
173
+ "@navbar-inverse-link-disabled-color": "#444",
174
+ "@navbar-inverse-link-disabled-bg": "transparent",
175
+ "@navbar-inverse-brand-color": "@navbar-inverse-link-color",
176
+ "@navbar-inverse-brand-hover-color": "#fff",
177
+ "@navbar-inverse-brand-hover-bg": "transparent",
178
+ "@navbar-inverse-toggle-hover-bg": "#333",
179
+ "@navbar-inverse-toggle-icon-bar-bg": "#fff",
180
+ "@navbar-inverse-toggle-border-color": "#333",
181
+ "@nav-link-padding": "10px 15px",
182
+ "@nav-link-hover-bg": "@gray-lighter",
183
+ "@nav-disabled-link-color": "@gray-light",
184
+ "@nav-disabled-link-hover-color": "@gray-light",
185
+ "@nav-tabs-border-color": "#ddd",
186
+ "@nav-tabs-link-hover-border-color": "@gray-lighter",
187
+ "@nav-tabs-active-link-hover-bg": "@body-bg",
188
+ "@nav-tabs-active-link-hover-color": "@gray",
189
+ "@nav-tabs-active-link-hover-border-color": "#ddd",
190
+ "@nav-tabs-justified-link-border-color": "#ddd",
191
+ "@nav-tabs-justified-active-link-border-color": "@body-bg",
192
+ "@nav-pills-border-radius": "@border-radius-base",
193
+ "@nav-pills-active-link-hover-bg": "@component-active-bg",
194
+ "@nav-pills-active-link-hover-color": "@component-active-color",
195
+ "@pagination-color": "@link-color",
196
+ "@pagination-bg": "#fff",
197
+ "@pagination-border": "#ddd",
198
+ "@pagination-hover-color": "@link-hover-color",
199
+ "@pagination-hover-bg": "@gray-lighter",
200
+ "@pagination-hover-border": "#ddd",
201
+ "@pagination-active-color": "#fff",
202
+ "@pagination-active-bg": "@brand-primary",
203
+ "@pagination-active-border": "@brand-primary",
204
+ "@pagination-disabled-color": "@gray-light",
205
+ "@pagination-disabled-bg": "#fff",
206
+ "@pagination-disabled-border": "#ddd",
207
+ "@pager-bg": "@pagination-bg",
208
+ "@pager-border": "@pagination-border",
209
+ "@pager-border-radius": "15px",
210
+ "@pager-hover-bg": "@pagination-hover-bg",
211
+ "@pager-active-bg": "@pagination-active-bg",
212
+ "@pager-active-color": "@pagination-active-color",
213
+ "@pager-disabled-color": "@pagination-disabled-color",
214
+ "@jumbotron-padding": "30px",
215
+ "@jumbotron-color": "inherit",
216
+ "@jumbotron-bg": "@gray-lighter",
217
+ "@jumbotron-heading-color": "inherit",
218
+ "@jumbotron-font-size": "ceil((@font-size-base * 1.5))",
219
+ "@jumbotron-heading-font-size": "ceil((@font-size-base * 4.5))",
220
+ "@state-success-text": "#3c763d",
221
+ "@state-success-bg": "#dff0d8",
222
+ "@state-success-border": "darken(spin(@state-success-bg, -10), 5%)",
223
+ "@state-info-text": "#31708f",
224
+ "@state-info-bg": "#d9edf7",
225
+ "@state-info-border": "darken(spin(@state-info-bg, -10), 7%)",
226
+ "@state-warning-text": "#8a6d3b",
227
+ "@state-warning-bg": "#fcf8e3",
228
+ "@state-warning-border": "darken(spin(@state-warning-bg, -10), 5%)",
229
+ "@state-danger-text": "#a94442",
230
+ "@state-danger-bg": "#f2dede",
231
+ "@state-danger-border": "darken(spin(@state-danger-bg, -10), 5%)",
232
+ "@tooltip-max-width": "200px",
233
+ "@tooltip-color": "#fff",
234
+ "@tooltip-bg": "#000",
235
+ "@tooltip-opacity": ".9",
236
+ "@tooltip-arrow-width": "5px",
237
+ "@tooltip-arrow-color": "@tooltip-bg",
238
+ "@popover-bg": "#fff",
239
+ "@popover-max-width": "276px",
240
+ "@popover-border-color": "rgba(0,0,0,.2)",
241
+ "@popover-fallback-border-color": "#ccc",
242
+ "@popover-title-bg": "darken(@popover-bg, 3%)",
243
+ "@popover-arrow-width": "10px",
244
+ "@popover-arrow-color": "@popover-bg",
245
+ "@popover-arrow-outer-width": "(@popover-arrow-width + 1)",
246
+ "@popover-arrow-outer-color": "fadein(@popover-border-color, 5%)",
247
+ "@popover-arrow-outer-fallback-color": "darken(@popover-fallback-border-color, 20%)",
248
+ "@label-default-bg": "@gray-light",
249
+ "@label-primary-bg": "@brand-primary",
250
+ "@label-success-bg": "@brand-success",
251
+ "@label-info-bg": "@brand-info",
252
+ "@label-warning-bg": "@brand-warning",
253
+ "@label-danger-bg": "@brand-danger",
254
+ "@label-color": "#fff",
255
+ "@label-link-hover-color": "#fff",
256
+ "@modal-inner-padding": "15px",
257
+ "@modal-title-padding": "15px",
258
+ "@modal-title-line-height": "@line-height-base",
259
+ "@modal-content-bg": "#fff",
260
+ "@modal-content-border-color": "rgba(0,0,0,.2)",
261
+ "@modal-content-fallback-border-color": "#999",
262
+ "@modal-backdrop-bg": "#000",
263
+ "@modal-backdrop-opacity": ".5",
264
+ "@modal-header-border-color": "#e5e5e5",
265
+ "@modal-footer-border-color": "@modal-header-border-color",
266
+ "@modal-lg": "900px",
267
+ "@modal-md": "600px",
268
+ "@modal-sm": "300px",
269
+ "@alert-padding": "15px",
270
+ "@alert-border-radius": "@border-radius-base",
271
+ "@alert-link-font-weight": "bold",
272
+ "@alert-success-bg": "@state-success-bg",
273
+ "@alert-success-text": "@state-success-text",
274
+ "@alert-success-border": "@state-success-border",
275
+ "@alert-info-bg": "@state-info-bg",
276
+ "@alert-info-text": "@state-info-text",
277
+ "@alert-info-border": "@state-info-border",
278
+ "@alert-warning-bg": "@state-warning-bg",
279
+ "@alert-warning-text": "@state-warning-text",
280
+ "@alert-warning-border": "@state-warning-border",
281
+ "@alert-danger-bg": "@state-danger-bg",
282
+ "@alert-danger-text": "@state-danger-text",
283
+ "@alert-danger-border": "@state-danger-border",
284
+ "@progress-bg": "#f5f5f5",
285
+ "@progress-bar-color": "#fff",
286
+ "@progress-border-radius": "@border-radius-base",
287
+ "@progress-bar-bg": "@brand-primary",
288
+ "@progress-bar-success-bg": "@brand-success",
289
+ "@progress-bar-warning-bg": "@brand-warning",
290
+ "@progress-bar-danger-bg": "@brand-danger",
291
+ "@progress-bar-info-bg": "@brand-info",
292
+ "@list-group-bg": "#fff",
293
+ "@list-group-border": "#ddd",
294
+ "@list-group-border-radius": "@border-radius-base",
295
+ "@list-group-hover-bg": "#f5f5f5",
296
+ "@list-group-active-color": "@component-active-color",
297
+ "@list-group-active-bg": "@component-active-bg",
298
+ "@list-group-active-border": "@list-group-active-bg",
299
+ "@list-group-active-text-color": "lighten(@list-group-active-bg, 40%)",
300
+ "@list-group-disabled-color": "@gray-light",
301
+ "@list-group-disabled-bg": "@gray-lighter",
302
+ "@list-group-disabled-text-color": "@list-group-disabled-color",
303
+ "@list-group-link-color": "#555",
304
+ "@list-group-link-hover-color": "@list-group-link-color",
305
+ "@list-group-link-heading-color": "#333",
306
+ "@panel-bg": "#fff",
307
+ "@panel-body-padding": "15px",
308
+ "@panel-heading-padding": "10px 15px",
309
+ "@panel-footer-padding": "@panel-heading-padding",
310
+ "@panel-border-radius": "@border-radius-base",
311
+ "@panel-inner-border": "#ddd",
312
+ "@panel-footer-bg": "#f5f5f5",
313
+ "@panel-default-text": "@gray-dark",
314
+ "@panel-default-border": "#ddd",
315
+ "@panel-default-heading-bg": "#f5f5f5",
316
+ "@panel-primary-text": "#fff",
317
+ "@panel-primary-border": "@brand-primary",
318
+ "@panel-primary-heading-bg": "@brand-primary",
319
+ "@panel-success-text": "@state-success-text",
320
+ "@panel-success-border": "@state-success-border",
321
+ "@panel-success-heading-bg": "@state-success-bg",
322
+ "@panel-info-text": "@state-info-text",
323
+ "@panel-info-border": "@state-info-border",
324
+ "@panel-info-heading-bg": "@state-info-bg",
325
+ "@panel-warning-text": "@state-warning-text",
326
+ "@panel-warning-border": "@state-warning-border",
327
+ "@panel-warning-heading-bg": "@state-warning-bg",
328
+ "@panel-danger-text": "@state-danger-text",
329
+ "@panel-danger-border": "@state-danger-border",
330
+ "@panel-danger-heading-bg": "@state-danger-bg",
331
+ "@thumbnail-padding": "4px",
332
+ "@thumbnail-bg": "@body-bg",
333
+ "@thumbnail-border": "#ddd",
334
+ "@thumbnail-border-radius": "@border-radius-base",
335
+ "@thumbnail-caption-color": "@text-color",
336
+ "@thumbnail-caption-padding": "9px",
337
+ "@well-bg": "#f5f5f5",
338
+ "@well-border": "darken(@well-bg, 7%)",
339
+ "@badge-color": "#fff",
340
+ "@badge-link-hover-color": "#fff",
341
+ "@badge-bg": "@gray-light",
342
+ "@badge-active-color": "@link-color",
343
+ "@badge-active-bg": "#fff",
344
+ "@badge-font-weight": "bold",
345
+ "@badge-line-height": "1",
346
+ "@badge-border-radius": "10px",
347
+ "@breadcrumb-padding-vertical": "8px",
348
+ "@breadcrumb-padding-horizontal": "15px",
349
+ "@breadcrumb-bg": "#f5f5f5",
350
+ "@breadcrumb-color": "#ccc",
351
+ "@breadcrumb-active-color": "@gray-light",
352
+ "@breadcrumb-separator": "\"/\"",
353
+ "@carousel-text-shadow": "0 1px 2px rgba(0,0,0,.6)",
354
+ "@carousel-control-color": "#fff",
355
+ "@carousel-control-width": "15%",
356
+ "@carousel-control-opacity": ".5",
357
+ "@carousel-control-font-size": "20px",
358
+ "@carousel-indicator-active-bg": "#fff",
359
+ "@carousel-indicator-border-color": "#fff",
360
+ "@carousel-caption-color": "#fff",
361
+ "@close-font-weight": "bold",
362
+ "@close-color": "#000",
363
+ "@close-text-shadow": "0 1px 0 #fff",
364
+ "@code-color": "#c7254e",
365
+ "@code-bg": "#f9f2f4",
366
+ "@kbd-color": "#fff",
367
+ "@kbd-bg": "#333",
368
+ "@pre-bg": "#f5f5f5",
369
+ "@pre-color": "@gray-dark",
370
+ "@pre-border-color": "#ccc",
371
+ "@pre-scrollable-max-height": "340px",
372
+ "@component-offset-horizontal": "180px",
373
+ "@text-muted": "@gray-light",
374
+ "@abbr-border-color": "@gray-light",
375
+ "@headings-small-color": "@gray-light",
376
+ "@blockquote-small-color": "@gray-light",
377
+ "@blockquote-font-size": "(@font-size-base * 1.25)",
378
+ "@blockquote-border-color": "@gray-lighter",
379
+ "@page-header-border-color": "@gray-lighter",
380
+ "@dl-horizontal-offset": "@component-offset-horizontal",
381
+ "@dl-horizontal-breakpoint": "@grid-float-breakpoint",
382
+ "@hr-border": "@gray-lighter"
383
+ },
384
+ "css": [
385
+ "print.less",
386
+ "type.less",
387
+ "code.less",
388
+ "grid.less",
389
+ "tables.less",
390
+ "buttons.less",
391
+ "responsive-utilities.less",
392
+ "glyphicons.less",
393
+ "navs.less",
394
+ "component-animations.less"
395
+ ],
396
+ "js": [
397
+ "collapse.js",
398
+ "transition.js"
399
+ ],
400
+ "customizerUrl": "http://getbootstrap.com/customize/?id=e18bae9569f7969c3d0bbc56a809d696"
401
+ }