webdrivers 4.4.2 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/LICENSE.txt +0 -0
  4. data/README.md +10 -1
  5. data/lib/webdrivers.rb +0 -0
  6. data/lib/webdrivers/Rakefile +0 -0
  7. data/lib/webdrivers/chrome_finder.rb +2 -2
  8. data/lib/webdrivers/chromedriver.rb +31 -9
  9. data/lib/webdrivers/common.rb +0 -0
  10. data/lib/webdrivers/edge_finder.rb +11 -0
  11. data/lib/webdrivers/edgedriver.rb +35 -8
  12. data/lib/webdrivers/geckodriver.rb +0 -0
  13. data/lib/webdrivers/iedriver.rb +0 -0
  14. data/lib/webdrivers/logger.rb +0 -0
  15. data/lib/webdrivers/network.rb +0 -0
  16. data/lib/webdrivers/railtie.rb +0 -0
  17. data/lib/webdrivers/system.rb +12 -2
  18. data/lib/webdrivers/tasks/chromedriver.rake +0 -0
  19. data/lib/webdrivers/tasks/edgedriver.rake +0 -0
  20. data/lib/webdrivers/tasks/geckodriver.rake +0 -0
  21. data/lib/webdrivers/tasks/iedriver.rake +0 -0
  22. data/lib/webdrivers/version.rb +1 -1
  23. data/spec/spec_helper.rb +0 -0
  24. data/spec/webdrivers/chrome_finder_spec.rb +1 -1
  25. data/spec/webdrivers/chromedriver_spec.rb +0 -0
  26. data/spec/webdrivers/coverage/assets/0.10.2/application.css +799 -0
  27. data/spec/webdrivers/coverage/assets/0.10.2/application.js +1707 -0
  28. data/spec/webdrivers/coverage/assets/0.10.2/colorbox/border.png +0 -0
  29. data/spec/webdrivers/coverage/assets/0.10.2/colorbox/controls.png +0 -0
  30. data/spec/webdrivers/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
  31. data/spec/webdrivers/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
  32. data/spec/webdrivers/coverage/assets/0.10.2/favicon_green.png +0 -0
  33. data/spec/webdrivers/coverage/assets/0.10.2/favicon_red.png +0 -0
  34. data/spec/webdrivers/coverage/assets/0.10.2/favicon_yellow.png +0 -0
  35. data/spec/webdrivers/coverage/assets/0.10.2/loading.gif +0 -0
  36. data/spec/webdrivers/coverage/assets/0.10.2/magnify.png +0 -0
  37. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  38. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  39. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  40. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  41. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  42. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  43. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  44. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  45. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
  46. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  47. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
  48. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
  49. data/spec/webdrivers/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  50. data/spec/webdrivers/coverage/index.html +3512 -0
  51. data/spec/webdrivers/edge_finder_spec.rb +0 -0
  52. data/spec/webdrivers/edgedriver_spec.rb +0 -0
  53. data/spec/webdrivers/geckodriver_spec.rb +0 -0
  54. data/spec/webdrivers/i_edriver_spec.rb +0 -0
  55. data/spec/webdrivers/system_spec.rb +27 -21
  56. data/spec/webdrivers/webdrivers_spec.rb +0 -0
  57. data/spec/webdrivers_proxy_support_spec.rb +0 -0
  58. metadata +60 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a9aab40e8054bb95185ed1231b7f74757811afb4ad47553b7b78c2fc35ea936
4
- data.tar.gz: c77d486952c76061d5007030b8e02025a72870469043617ddb230c16b11d0f1f
3
+ metadata.gz: fb33edccefe82002bbea2a0ca410d050bbf12f3b8e3a7a7721147f75ffed9c97
4
+ data.tar.gz: 2a30c004082f6788096d0d18de559aeea99560a1a96a022b4e9b53c9e4232b12
5
5
  SHA512:
6
- metadata.gz: c9f29b0e62b33afe328f833ac8a8cb55e11e137938d22a7a66e9e72aa837ee58a9a00f94aa06977c78eac88bd3f446571753728536414b4a9b34a1ddfc0971bf
7
- data.tar.gz: 2b979a07116667932ee3e0ca71678f1eec119840b712a2d265a61b1c1585bc14134e1238829d336bedf8c1373bff08cd6f0a80c66bf8378d63123e53a3ab249b
6
+ metadata.gz: 78187b37c392f86a3ef9b788e39c00b81f48acca6de9f9c64a619c28c4f7b29d71a57f099478786ac903ac0ea199735832324fcde5c50f32635b78ce532cddf1
7
+ data.tar.gz: 3bd31fda8f71d31238d8b73b2468677d5eb23ffe956bb82a74e382ce99a750dce5127ea8328e868c9a795015517c27f8fb208eee4fcdf0b81fa572b5200c1158
@@ -1,3 +1,12 @@
1
+ # 4.5.0 (2021-01-19)
2
+ * Improve format of README usage section. Thanks, [okuramasafumi](https://github.com/okuramasafumi)!
3
+ * `chromedriver` - Add support for Apple M1 specific builds ([#193](https://github.com/titusfortner/webdrivers/pull/193)). Thanks, [MichaelHoste](https://github.com/MichaelHoste)!
4
+ * `msedgedriver` - Add support for Apple M1 specific builds.
5
+ * `msedgedriver` - Added automatic selection of 32-bit vs 64-bit builds on Windows and WSLv1.
6
+ * When using this gem in WSLv2, Chrome installed on the Linux filesystem will be automatically used ([#196](https://github.com/titusfortner/webdrivers/pull/196)).
7
+ WSLv1 continues to automatically use Chrome from the Windows filesystem though. Thanks, [fabioxgn](https://github.com/fabioxgn)!
8
+ * We'll aim to make the behavior consistent in a future release.
9
+
1
10
  ### 4.4.2 (2020-12-29)
2
11
  * Use new powershell if available to enhance WSL support ([#176](https://github.com/titusfortner/webdrivers/issues/176),
3
12
  [#186](https://github.com/titusfortner/webdrivers/pull/186)). Thanks, [G-Rath](https://github.com/G-Rath) and
File without changes
data/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/webdrivers.svg)](https://badge.fury.io/rb/webdrivers)
4
4
  [![Build status](https://travis-ci.org/titusfortner/webdrivers.svg?branch=master)](https://travis-ci.org/titusfortner/webdrivers)
5
5
  [![AppVeyor status](https://ci.appveyor.com/api/projects/status/ejh90xqbvkphq4cy/branch/master?svg=true)](https://ci.appveyor.com/project/titusfortner/webdrivers/branch/master)
6
+ ![Tests](https://github.com/titusfortner/webdrivers/workflows/Tests/badge.svg)
6
7
 
7
8
  Run Selenium tests more easily with automatic installation and updates for all supported webdrivers.
8
9
 
@@ -21,7 +22,9 @@ Works on macOS, Linux, Windows, and Windows Subsystem for Linux (WSL) v1.
21
22
 
22
23
  In your Gemfile:
23
24
 
24
- `gem 'webdrivers', '~> 4.0', require: false`
25
+ ```ruby
26
+ gem 'webdrivers', '~> 4.0', require: false
27
+ ```
25
28
 
26
29
  In your project:
27
30
 
@@ -202,6 +205,12 @@ in WSL, `webdrivers` will use the Windows `chromedriver.exe`.
202
205
  It's recommended that you install the new PowerShell (PS7) to avoid [a known issue](https://github.com/microsoft/terminal/issues/367)
203
206
  with the console font being changed when calling the old PowerShell (PS5).
204
207
 
208
+ ### WSLv2 support
209
+
210
+ Webdrivers will detect WSLv2 as running on Linux.
211
+
212
+ WSLv2 doesn't support connecting to host ports out of the box, so it isn't possible to connect to Chromedriver on Windows without extra configurations, see: https://github.com/microsoft/WSL/issues/4619. The simplest way to use Chromedriver with WSLv2 is to run Chrome headless on Linux.
213
+
205
214
  ### Browser Specific Notes
206
215
 
207
216
  #### Chrome/Chromium
File without changes
File without changes
@@ -88,7 +88,7 @@ module Webdrivers
88
88
  end
89
89
 
90
90
  def linux_location
91
- return wsl_location if System.wsl?
91
+ return wsl_location if System.wsl_v1?
92
92
 
93
93
  directories = %w[/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /snap/bin /opt/google/chrome]
94
94
  files = %w[google-chrome chrome chromium chromium-browser]
@@ -114,7 +114,7 @@ module Webdrivers
114
114
  end
115
115
 
116
116
  def linux_version(location)
117
- return wsl_version(location) if System.wsl?
117
+ return wsl_version(location) if System.wsl_v1?
118
118
 
119
119
  System.call(location, '--product-version')&.strip
120
120
  end
@@ -84,24 +84,46 @@ module Webdrivers
84
84
  end
85
85
 
86
86
  def file_name
87
- System.platform == 'win' || System.wsl? ? 'chromedriver.exe' : 'chromedriver'
87
+ System.platform == 'win' || System.wsl_v1? ? 'chromedriver.exe' : 'chromedriver'
88
+ end
89
+
90
+ def apple_m1_compatible?(driver_version)
91
+ if System.apple_m1_architecture? && driver_version >= normalize_version('87.0.4280.88')
92
+ Webdrivers.logger.debug 'chromedriver version is Apple M1 compatible.'
93
+ return true
94
+ end
95
+
96
+ Webdrivers.logger.debug 'chromedriver version is NOT Apple M1 compatible. Required >= 87.0.4280.88'
97
+ false
88
98
  end
89
99
 
90
100
  def download_url
91
101
  return @download_url if @download_url
92
102
 
93
- version = if required_version == EMPTY_VERSION
94
- latest_version
95
- else
96
- normalize_version(required_version)
97
- end
98
-
99
- file_name = System.platform == 'win' || System.wsl? ? 'win32' : "#{System.platform}64"
100
- url = "#{base_url}/#{version}/chromedriver_#{file_name}.zip"
103
+ driver_version = if required_version == EMPTY_VERSION
104
+ latest_version
105
+ else
106
+ normalize_version(required_version)
107
+ end
108
+ filename = driver_filename(driver_version)
109
+ url = "#{base_url}/#{driver_version}/chromedriver_#{filename}.zip"
101
110
  Webdrivers.logger.debug "chromedriver URL: #{url}"
102
111
  @download_url = url
103
112
  end
104
113
 
114
+ def driver_filename(driver_version)
115
+ if System.platform == 'win' || System.wsl_v1?
116
+ 'win32'
117
+ elsif System.platform == 'linux'
118
+ 'linux64'
119
+ elsif System.platform == 'mac'
120
+ apple_arch = apple_m1_compatible?(driver_version) ? '_m1' : ''
121
+ "mac64#{apple_arch}"
122
+ else
123
+ raise 'Failed to determine driver filename to download for your OS.'
124
+ end
125
+ end
126
+
105
127
  # Returns major.minor.build version from the currently installed chromedriver version
106
128
  #
107
129
  # @example
File without changes
@@ -69,6 +69,17 @@ module Webdrivers
69
69
  end
70
70
 
71
71
  def linux_location
72
+ # directories = %w[/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /snap/bin /opt/google/chrome]
73
+ # files = %w[microsoft-edge] # Based on Microsoft Edge 89.0.760.0 dev
74
+ #
75
+ # directories.each do |dir|
76
+ # files.each do |file|
77
+ # option = "#{dir}/#{file}"
78
+ # return option if File.exist?(option)
79
+ # end
80
+ # end
81
+ #
82
+ # nil
72
83
  raise 'Default location not yet known'
73
84
  end
74
85
 
@@ -66,17 +66,44 @@ module Webdrivers
66
66
  System.platform == 'win' ? 'msedgedriver.exe' : 'msedgedriver'
67
67
  end
68
68
 
69
+ def apple_m1_compatible?(driver_version)
70
+ if System.apple_m1_architecture? && driver_version >= normalize_version('87.0.669.0')
71
+ Webdrivers.logger.debug 'msedgedriver version is Apple M1 compatible.'
72
+ return true
73
+ end
74
+
75
+ Webdrivers.logger.debug 'msedgedriver version is NOT Apple M1 compatible. Required >= 87.0.669.0'
76
+ false
77
+ end
78
+
79
+ # def linux_compatible?(driver_version)
80
+ # System.platform == 'linux' && driver_version >= normalize_version('89.0.731.0')
81
+ # end
82
+
83
+ def driver_filename(driver_version)
84
+ if System.platform == 'win' || System.wsl_v1?
85
+ "win#{System.bitsize}" # 32 or 64-bit
86
+ # elsif linux_compatible?(driver_version)
87
+ # 'linux64'
88
+ elsif System.platform == 'mac'
89
+ # Determine M1 or Intel architecture
90
+ apple_arch = apple_m1_compatible?(driver_version) ? 'arm' : 'mac'
91
+ "#{apple_arch}64"
92
+ else
93
+ raise 'Failed to determine driver filename to download for your OS.'
94
+ end
95
+ end
96
+
69
97
  def download_url
70
98
  return @download_url if @download_url
71
99
 
72
- version = if required_version == EMPTY_VERSION
73
- latest_version
74
- else
75
- normalize_version(required_version)
76
- end
77
-
78
- file_name = System.platform == 'win' ? 'win32' : "#{System.platform}64"
79
- url = "#{base_url}/#{version}/edgedriver_#{file_name}.zip"
100
+ driver_version = if required_version == EMPTY_VERSION
101
+ latest_version
102
+ else
103
+ normalize_version(required_version)
104
+ end
105
+ filename = driver_filename(driver_version)
106
+ url = "#{base_url}/#{driver_version}/edgedriver_#{filename}.zip"
80
107
  Webdrivers.logger.debug "msedgedriver URL: #{url}"
81
108
  @download_url = url
82
109
  end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -148,9 +148,19 @@ module Webdrivers
148
148
  end
149
149
  end
150
150
 
151
+ def apple_m1_architecture?
152
+ if platform == 'mac' && RUBY_PLATFORM.include?('arm64-darwin')
153
+ Webdrivers.logger.debug 'Apple architecture: M1 (arm64-darwin)'
154
+ return true
155
+ end
156
+
157
+ Webdrivers.logger.debug 'Apple architecture: Intel (mac64)'
158
+ false
159
+ end
160
+
151
161
  # @return [TrueClass, FalseClass]
152
- def wsl?
153
- platform == 'linux' && File.open('/proc/version').read.downcase.include?('microsoft')
162
+ def wsl_v1?
163
+ platform == 'linux' && File.open('/proc/version').read.include?('Microsoft')
154
164
  end
155
165
 
156
166
  # @param [String] path
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Webdrivers
4
- VERSION = '4.4.2'
4
+ VERSION = '4.5.0'
5
5
  end
File without changes
@@ -52,7 +52,7 @@ describe Webdrivers::ChromeFinder do
52
52
  before do
53
53
  skip "The current platform cannot be WSL, as it's not Linux" unless Selenium::WebDriver::Platform.linux?
54
54
 
55
- allow(Webdrivers::System).to receive(:wsl?).and_return(true)
55
+ allow(Webdrivers::System).to receive(:wsl_v1?).and_return(true)
56
56
  allow(Webdrivers::System).to receive(:to_wsl_path).and_return('')
57
57
  allow(Webdrivers::System).to receive(:to_win32_path).and_return('')
58
58
  end
File without changes
@@ -0,0 +1,799 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.9
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* reset.css */
15
+
16
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
17
+ article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;}
18
+ body {line-height:1.5;}
19
+ table {border-collapse:separate;border-spacing:0;}
20
+ caption, th, td {text-align:left;font-weight:normal;}
21
+ table, td, th {vertical-align:middle;}
22
+ blockquote:before, blockquote:after, q:before, q:after {content:"";}
23
+ blockquote, q {quotes:"" "";}
24
+ a img {border:none;}
25
+
26
+ /* typography.css */
27
+ html {font-size:100.01%;}
28
+ body {font-size:82%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
29
+ h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
30
+ h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
31
+ h2 {font-size:2em;margin-bottom:0.75em;}
32
+ h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
33
+ h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
34
+ h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
35
+ h6 {font-size:1em;font-weight:bold;}
36
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
37
+ p {margin:0 0 1.5em;}
38
+ p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
39
+ p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
40
+ a:focus, a:hover {color:#000;}
41
+ a {color:#009;text-decoration:underline;}
42
+ blockquote {margin:1.5em;color:#666;font-style:italic;}
43
+ strong {font-weight:bold;}
44
+ em, dfn {font-style:italic;}
45
+ dfn {font-weight:bold;}
46
+ sup, sub {line-height:0;}
47
+ abbr, acronym {border-bottom:1px dotted #666;}
48
+ address {margin:0 0 1.5em;font-style:italic;}
49
+ del {color:#666;}
50
+ pre {margin:1.5em 0;white-space:pre;}
51
+ pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
52
+ li ul, li ol {margin:0;}
53
+ ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
54
+ ul {list-style-type:disc;}
55
+ ol {list-style-type:decimal;}
56
+ dl {margin:0 0 1.5em 0;}
57
+ dl dt {font-weight:bold;}
58
+ dd {margin-left:1.5em;}
59
+ table {margin-bottom:1.4em;width:100%;}
60
+ th {font-weight:bold;}
61
+ thead th {background:#c3d9ff;}
62
+ th, td, caption {padding:4px 10px 4px 5px;}
63
+ tr.even td {background:#efefef;}
64
+ tfoot {font-style:italic;}
65
+ caption {background:#eee;}
66
+ .small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
67
+ .large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
68
+ .hide {display:none;}
69
+ .quiet {color:#666;}
70
+ .loud {color:#000;}
71
+ .highlight {background:#ff0;}
72
+ .added {background:#060;color:#fff;}
73
+ .removed {background:#900;color:#fff;}
74
+ .first {margin-left:0;padding-left:0;}
75
+ .last {margin-right:0;padding-right:0;}
76
+ .top {margin-top:0;padding-top:0;}
77
+ .bottom {margin-bottom:0;padding-bottom:0;}
78
+
79
+ /* forms.css */
80
+ label {font-weight:bold;}
81
+ fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
82
+ legend {font-weight:bold;font-size:1.2em;}
83
+ input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
84
+ input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
85
+ input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
86
+ input.text, input.title {width:300px;padding:5px;}
87
+ input.title {font-size:1.5em;}
88
+ textarea {width:390px;height:250px;padding:5px;}
89
+ input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
90
+ form.inline {line-height:3;}
91
+ form.inline p {margin-bottom:0;}
92
+ .error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
93
+ .error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
94
+ .notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
95
+ .success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
96
+ .error a {color:#8a1f11;}
97
+ .notice a {color:#514721;}
98
+ .success a {color:#264409;}
99
+ .box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
100
+ hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
101
+ hr.space {background:#fff;color:#fff;visibility:hidden;}
102
+ .clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
103
+ .clearfix, .container {display:block;}
104
+ .clear {clear:both;}
105
+ /*
106
+ github.com style (c) Vasily Polovnyov <vast@whiteants.net>
107
+ */
108
+
109
+
110
+ pre code {
111
+ }
112
+
113
+ pre .comment,
114
+ pre .template_comment,
115
+ pre .diff .header,
116
+ pre .javadoc {
117
+ color: #998;
118
+ font-style: italic
119
+ }
120
+
121
+ pre .keyword,
122
+ pre .css .rule .keyword,
123
+ pre .winutils,
124
+ pre .javascript .title,
125
+ pre .lisp .title {
126
+ color: #000;
127
+ font-weight: bold
128
+ }
129
+
130
+ pre .number,
131
+ pre .hexcolor {
132
+ color: #458
133
+ }
134
+
135
+
136
+ pre .string,
137
+ pre .tag .value,
138
+ pre .phpdoc,
139
+ pre .tex .formula {
140
+ color: #d14
141
+ }
142
+
143
+ pre .subst {
144
+ color: #712;
145
+ }
146
+
147
+ pre .constant,
148
+ pre .title,
149
+ pre .id {
150
+ color: #900;
151
+ font-weight: bold
152
+ }
153
+
154
+ pre .javascript .title,
155
+ pre .lisp .title,
156
+ pre .subst {
157
+ font-weight: normal
158
+ }
159
+
160
+ pre .class .title,
161
+ pre .haskell .label,
162
+ pre .tex .command {
163
+ color: #458;
164
+ font-weight: bold
165
+ }
166
+
167
+ pre .tag,
168
+ pre .tag .title,
169
+ pre .rules .property,
170
+ pre .django .tag .keyword {
171
+ color: #000080;
172
+ font-weight: normal
173
+ }
174
+
175
+ pre .attribute,
176
+ pre .variable,
177
+ pre .instancevar,
178
+ pre .lisp .body {
179
+ color: #008080
180
+ }
181
+
182
+ pre .regexp {
183
+ color: #009926
184
+ }
185
+
186
+ pre .class {
187
+ color: #458;
188
+ font-weight: bold
189
+ }
190
+
191
+ pre .symbol,
192
+ pre .ruby .symbol .string,
193
+ pre .ruby .symbol .keyword,
194
+ pre .ruby .symbol .keymethods,
195
+ pre .lisp .keyword,
196
+ pre .tex .special,
197
+ pre .input_number {
198
+ color: #990073
199
+ }
200
+
201
+ pre .builtin,
202
+ pre .built_in,
203
+ pre .lisp .title {
204
+ color: #0086b3
205
+ }
206
+
207
+ pre .preprocessor,
208
+ pre .pi,
209
+ pre .doctype,
210
+ pre .shebang,
211
+ pre .cdata {
212
+ color: #999;
213
+ font-weight: bold
214
+ }
215
+
216
+ pre .deletion {
217
+ background: #fdd
218
+ }
219
+
220
+ pre .addition {
221
+ background: #dfd
222
+ }
223
+
224
+ pre .diff .change {
225
+ background: #0086b3
226
+ }
227
+
228
+ pre .chunk {
229
+ color: #aaa
230
+ }
231
+
232
+ pre .tex .formula {
233
+ opacity: 0.5;
234
+ }
235
+ /*
236
+ * jQuery UI CSS Framework @VERSION
237
+ *
238
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
239
+ * Dual licensed under the MIT or GPL Version 2 licenses.
240
+ * http://jquery.org/license
241
+ *
242
+ * http://docs.jquery.com/UI/Theming/API
243
+ */
244
+
245
+ /* Layout helpers
246
+ ----------------------------------*/
247
+
248
+ .ui-helper-hidden { display: none; }
249
+ .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
250
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
251
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
252
+ .ui-helper-clearfix { display: inline-block; }
253
+ /* required comment for clearfix to work in Opera \*/
254
+ * html .ui-helper-clearfix { height:1%; }
255
+ .ui-helper-clearfix { display:block; }
256
+ /* end clearfix */
257
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
258
+
259
+
260
+ /* Interaction Cues
261
+ ----------------------------------*/
262
+ .ui-state-disabled { cursor: default !important; }
263
+
264
+
265
+ /* Icons
266
+ ----------------------------------*/
267
+
268
+ /* states and images */
269
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
270
+
271
+
272
+ /* Misc visuals
273
+ ----------------------------------*/
274
+
275
+ /* Overlays */
276
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
277
+
278
+
279
+ /*
280
+ * jQuery UI CSS Framework @VERSION
281
+ *
282
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
283
+ * Dual licensed under the MIT or GPL Version 2 licenses.
284
+ * http://jquery.org/license
285
+ *
286
+ * http://docs.jquery.com/UI/Theming/API
287
+ *
288
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
289
+ */
290
+
291
+
292
+ /* Component containers
293
+ ----------------------------------*/
294
+ .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
295
+ .ui-widget .ui-widget { font-size: 1em; }
296
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
297
+ .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
298
+ .ui-widget-content a { color: #222222; }
299
+ .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
300
+ .ui-widget-header a { color: #222222; }
301
+
302
+ /* Interaction states
303
+ ----------------------------------*/
304
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
305
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
306
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
307
+ .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
308
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
309
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
310
+ .ui-widget :active { outline: none; }
311
+
312
+ /* Interaction Cues
313
+ ----------------------------------*/
314
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
315
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
316
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
317
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
318
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
319
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
320
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
321
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
322
+
323
+ /* Icons
324
+ ----------------------------------*/
325
+
326
+ /* states and images */
327
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
328
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
329
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
330
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
331
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
332
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
333
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
334
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
335
+
336
+ /* positioning */
337
+ .ui-icon-carat-1-n { background-position: 0 0; }
338
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
339
+ .ui-icon-carat-1-e { background-position: -32px 0; }
340
+ .ui-icon-carat-1-se { background-position: -48px 0; }
341
+ .ui-icon-carat-1-s { background-position: -64px 0; }
342
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
343
+ .ui-icon-carat-1-w { background-position: -96px 0; }
344
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
345
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
346
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
347
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
348
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
349
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
350
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
351
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
352
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
353
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
354
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
355
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
356
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
357
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
358
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
359
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
360
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
361
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
362
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
363
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
364
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
365
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
366
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
367
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
368
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
369
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
370
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
371
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
372
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
373
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
374
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
375
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
376
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
377
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
378
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
379
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
380
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
381
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
382
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
383
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
384
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
385
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
386
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
387
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
388
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
389
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
390
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
391
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
392
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
393
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
394
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
395
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
396
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
397
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
398
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
399
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
400
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
401
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
402
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
403
+ .ui-icon-extlink { background-position: -32px -80px; }
404
+ .ui-icon-newwin { background-position: -48px -80px; }
405
+ .ui-icon-refresh { background-position: -64px -80px; }
406
+ .ui-icon-shuffle { background-position: -80px -80px; }
407
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
408
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
409
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
410
+ .ui-icon-folder-open { background-position: -16px -96px; }
411
+ .ui-icon-document { background-position: -32px -96px; }
412
+ .ui-icon-document-b { background-position: -48px -96px; }
413
+ .ui-icon-note { background-position: -64px -96px; }
414
+ .ui-icon-mail-closed { background-position: -80px -96px; }
415
+ .ui-icon-mail-open { background-position: -96px -96px; }
416
+ .ui-icon-suitcase { background-position: -112px -96px; }
417
+ .ui-icon-comment { background-position: -128px -96px; }
418
+ .ui-icon-person { background-position: -144px -96px; }
419
+ .ui-icon-print { background-position: -160px -96px; }
420
+ .ui-icon-trash { background-position: -176px -96px; }
421
+ .ui-icon-locked { background-position: -192px -96px; }
422
+ .ui-icon-unlocked { background-position: -208px -96px; }
423
+ .ui-icon-bookmark { background-position: -224px -96px; }
424
+ .ui-icon-tag { background-position: -240px -96px; }
425
+ .ui-icon-home { background-position: 0 -112px; }
426
+ .ui-icon-flag { background-position: -16px -112px; }
427
+ .ui-icon-calendar { background-position: -32px -112px; }
428
+ .ui-icon-cart { background-position: -48px -112px; }
429
+ .ui-icon-pencil { background-position: -64px -112px; }
430
+ .ui-icon-clock { background-position: -80px -112px; }
431
+ .ui-icon-disk { background-position: -96px -112px; }
432
+ .ui-icon-calculator { background-position: -112px -112px; }
433
+ .ui-icon-zoomin { background-position: -128px -112px; }
434
+ .ui-icon-zoomout { background-position: -144px -112px; }
435
+ .ui-icon-search { background-position: -160px -112px; }
436
+ .ui-icon-wrench { background-position: -176px -112px; }
437
+ .ui-icon-gear { background-position: -192px -112px; }
438
+ .ui-icon-heart { background-position: -208px -112px; }
439
+ .ui-icon-star { background-position: -224px -112px; }
440
+ .ui-icon-link { background-position: -240px -112px; }
441
+ .ui-icon-cancel { background-position: 0 -128px; }
442
+ .ui-icon-plus { background-position: -16px -128px; }
443
+ .ui-icon-plusthick { background-position: -32px -128px; }
444
+ .ui-icon-minus { background-position: -48px -128px; }
445
+ .ui-icon-minusthick { background-position: -64px -128px; }
446
+ .ui-icon-close { background-position: -80px -128px; }
447
+ .ui-icon-closethick { background-position: -96px -128px; }
448
+ .ui-icon-key { background-position: -112px -128px; }
449
+ .ui-icon-lightbulb { background-position: -128px -128px; }
450
+ .ui-icon-scissors { background-position: -144px -128px; }
451
+ .ui-icon-clipboard { background-position: -160px -128px; }
452
+ .ui-icon-copy { background-position: -176px -128px; }
453
+ .ui-icon-contact { background-position: -192px -128px; }
454
+ .ui-icon-image { background-position: -208px -128px; }
455
+ .ui-icon-video { background-position: -224px -128px; }
456
+ .ui-icon-script { background-position: -240px -128px; }
457
+ .ui-icon-alert { background-position: 0 -144px; }
458
+ .ui-icon-info { background-position: -16px -144px; }
459
+ .ui-icon-notice { background-position: -32px -144px; }
460
+ .ui-icon-help { background-position: -48px -144px; }
461
+ .ui-icon-check { background-position: -64px -144px; }
462
+ .ui-icon-bullet { background-position: -80px -144px; }
463
+ .ui-icon-radio-off { background-position: -96px -144px; }
464
+ .ui-icon-radio-on { background-position: -112px -144px; }
465
+ .ui-icon-pin-w { background-position: -128px -144px; }
466
+ .ui-icon-pin-s { background-position: -144px -144px; }
467
+ .ui-icon-play { background-position: 0 -160px; }
468
+ .ui-icon-pause { background-position: -16px -160px; }
469
+ .ui-icon-seek-next { background-position: -32px -160px; }
470
+ .ui-icon-seek-prev { background-position: -48px -160px; }
471
+ .ui-icon-seek-end { background-position: -64px -160px; }
472
+ .ui-icon-seek-start { background-position: -80px -160px; }
473
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
474
+ .ui-icon-seek-first { background-position: -80px -160px; }
475
+ .ui-icon-stop { background-position: -96px -160px; }
476
+ .ui-icon-eject { background-position: -112px -160px; }
477
+ .ui-icon-volume-off { background-position: -128px -160px; }
478
+ .ui-icon-volume-on { background-position: -144px -160px; }
479
+ .ui-icon-power { background-position: 0 -176px; }
480
+ .ui-icon-signal-diag { background-position: -16px -176px; }
481
+ .ui-icon-signal { background-position: -32px -176px; }
482
+ .ui-icon-battery-0 { background-position: -48px -176px; }
483
+ .ui-icon-battery-1 { background-position: -64px -176px; }
484
+ .ui-icon-battery-2 { background-position: -80px -176px; }
485
+ .ui-icon-battery-3 { background-position: -96px -176px; }
486
+ .ui-icon-circle-plus { background-position: 0 -192px; }
487
+ .ui-icon-circle-minus { background-position: -16px -192px; }
488
+ .ui-icon-circle-close { background-position: -32px -192px; }
489
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
490
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
491
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
492
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
493
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
494
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
495
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
496
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
497
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
498
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
499
+ .ui-icon-circle-check { background-position: -208px -192px; }
500
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
501
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
502
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
503
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
504
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
505
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
506
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
507
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
508
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
509
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
510
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
511
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
512
+
513
+
514
+ /* Misc visuals
515
+ ----------------------------------*/
516
+
517
+ /* Corner radius */
518
+ .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
519
+ .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
520
+ .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
521
+ .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
522
+ .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
523
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
524
+ .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
525
+ .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
526
+ .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
527
+
528
+ /* Overlays */
529
+ .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
530
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
531
+ /*
532
+ ColorBox Core Style:
533
+ The following CSS is consistent between example themes and should not be altered.
534
+ */
535
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
536
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
537
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
538
+ #cboxContent{position:relative;}
539
+ #cboxLoadedContent{overflow:auto;}
540
+ #cboxTitle{margin:0;}
541
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
542
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
543
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
544
+ .cboxIframe{width:100%; height:100%; display:block; border:0;}
545
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box;}
546
+
547
+ /*
548
+ User Style:
549
+ Change the following styles to modify the appearance of ColorBox. They are
550
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
551
+ */
552
+ #cboxOverlay{background:#000;}
553
+ #colorbox{}
554
+ #cboxTopLeft{width:14px; height:14px; background:url(colorbox/controls.png) no-repeat 0 0;}
555
+ #cboxTopCenter{height:14px; background:url(colorbox/border.png) repeat-x top left;}
556
+ #cboxTopRight{width:14px; height:14px; background:url(colorbox/controls.png) no-repeat -36px 0;}
557
+ #cboxBottomLeft{width:14px; height:43px; background:url(colorbox/controls.png) no-repeat 0 -32px;}
558
+ #cboxBottomCenter{height:43px; background:url(colorbox/border.png) repeat-x bottom left;}
559
+ #cboxBottomRight{width:14px; height:43px; background:url(colorbox/controls.png) no-repeat -36px -32px;}
560
+ #cboxMiddleLeft{width:14px; background:url(colorbox/controls.png) repeat-y -175px 0;}
561
+ #cboxMiddleRight{width:14px; background:url(colorbox/controls.png) repeat-y -211px 0;}
562
+ #cboxContent{background:#fff; overflow:visible;}
563
+ .cboxIframe{background:#fff;}
564
+ #cboxError{padding:50px; border:1px solid #ccc;}
565
+ #cboxLoadedContent{margin-bottom:5px;}
566
+ #cboxLoadingOverlay{background:url(colorbox/loading_background.png) no-repeat center center;}
567
+ #cboxLoadingGraphic{background:url(colorbox/loading.gif) no-repeat center center;}
568
+ #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
569
+ #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
570
+
571
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(colorbox/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
572
+ #cboxPrevious{left:0px; background-position: -51px -25px;}
573
+ #cboxPrevious:hover{background-position:-51px 0px;}
574
+ #cboxNext{left:27px; background-position:-75px -25px;}
575
+ #cboxNext:hover{background-position:-75px 0px;}
576
+ #cboxClose{right:0; background-position:-100px -25px;}
577
+ #cboxClose:hover{background-position:-100px 0px;}
578
+
579
+ .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
580
+ .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
581
+ .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
582
+ .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;}
583
+ #loading {
584
+ position: fixed;
585
+ left: 40%;
586
+ top: 50%; }
587
+
588
+ a {
589
+ color: #333333;
590
+ text-decoration: none; }
591
+ a:hover {
592
+ color: black;
593
+ text-decoration: underline; }
594
+
595
+ body {
596
+ font-family: "Lucida Grande", Helvetica, "Helvetica Neue", Arial, sans-serif;
597
+ padding: 12px;
598
+ background-color: #333333; }
599
+
600
+ h1, h2, h3, h4 {
601
+ color: #1c2324;
602
+ margin: 0;
603
+ padding: 0;
604
+ margin-bottom: 12px; }
605
+
606
+ table {
607
+ width: 100%; }
608
+
609
+ #content {
610
+ clear: left;
611
+ background-color: white;
612
+ border: 2px solid #dddddd;
613
+ border-top: 8px solid #dddddd;
614
+ padding: 18px;
615
+ -webkit-border-bottom-left-radius: 5px;
616
+ -webkit-border-bottom-right-radius: 5px;
617
+ -webkit-border-top-right-radius: 5px;
618
+ -moz-border-radius-bottomleft: 5px;
619
+ -moz-border-radius-bottomright: 5px;
620
+ -moz-border-radius-topright: 5px;
621
+ border-bottom-left-radius: 5px;
622
+ border-bottom-right-radius: 5px;
623
+ border-top-right-radius: 5px; }
624
+
625
+ .dataTables_filter, .dataTables_info {
626
+ padding: 2px 6px; }
627
+
628
+ abbr.timeago {
629
+ text-decoration: none;
630
+ border: none;
631
+ font-weight: bold; }
632
+
633
+ .timestamp {
634
+ float: right;
635
+ color: #dddddd; }
636
+
637
+ .group_tabs {
638
+ list-style: none;
639
+ float: left;
640
+ margin: 0;
641
+ padding: 0; }
642
+ .group_tabs li {
643
+ display: inline;
644
+ float: left; }
645
+ .group_tabs li a {
646
+ font-family: Helvetica, Arial, sans-serif;
647
+ display: block;
648
+ float: left;
649
+ text-decoration: none;
650
+ padding: 4px 8px;
651
+ background-color: #aaaaaa;
652
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dddddd), to(#aaaaaa));
653
+ background: -moz-linear-gradient(#dddddd, #aaaaaa);
654
+ background: linear-gradient(#dddddd, #aaaaaa);
655
+ text-shadow: #e5e5e5 1px 1px 0px;
656
+ border-bottom: none;
657
+ color: #333333;
658
+ font-weight: bold;
659
+ margin-right: 8px;
660
+ border-top: 1px solid #efefef;
661
+ -webkit-border-top-left-radius: 2px;
662
+ -webkit-border-top-right-radius: 2px;
663
+ -moz-border-radius-topleft: 2px;
664
+ -moz-border-radius-topright: 2px;
665
+ border-top-left-radius: 2px;
666
+ border-top-right-radius: 2px; }
667
+ .group_tabs li a:hover {
668
+ background-color: #cccccc;
669
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#eeeeee), to(#aaaaaa));
670
+ background: -moz-linear-gradient(#eeeeee, #aaaaaa);
671
+ background: linear-gradient(#eeeeee, #aaaaaa); }
672
+ .group_tabs li a:active {
673
+ padding-top: 5px;
674
+ padding-bottom: 3px; }
675
+ .group_tabs li.active a {
676
+ color: black;
677
+ text-shadow: white 1px 1px 0px;
678
+ background-color: #dddddd;
679
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(white), to(#dddddd));
680
+ background: -moz-linear-gradient(white, #dddddd);
681
+ background: linear-gradient(white, #dddddd); }
682
+
683
+ .file_list {
684
+ margin-bottom: 18px; }
685
+
686
+ a.src_link {
687
+ background: url("./magnify.png") no-repeat left 50%;
688
+ padding-left: 18px; }
689
+
690
+ tr, td {
691
+ margin: 0;
692
+ padding: 0; }
693
+
694
+ th {
695
+ white-space: nowrap; }
696
+ th.ui-state-default {
697
+ cursor: pointer; }
698
+ th span.ui-icon {
699
+ float: left; }
700
+
701
+ td {
702
+ padding: 4px 8px; }
703
+ td.strong {
704
+ font-weight: bold; }
705
+
706
+ .source_table h3, .source_table h4 {
707
+ padding: 0;
708
+ margin: 0;
709
+ margin-bottom: 4px; }
710
+ .source_table .header {
711
+ padding: 10px; }
712
+ .source_table pre {
713
+ margin: 0;
714
+ padding: 0;
715
+ white-space: normal;
716
+ color: black;
717
+ font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
718
+ .source_table code {
719
+ color: black;
720
+ font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
721
+ .source_table pre {
722
+ background-color: #333333; }
723
+ .source_table pre ol {
724
+ margin: 0px;
725
+ padding: 0px;
726
+ margin-left: 45px;
727
+ font-size: 12px;
728
+ color: white; }
729
+ .source_table pre li {
730
+ margin: 0px;
731
+ padding: 2px 6px;
732
+ border-left: 5px solid white; }
733
+ .source_table pre li code {
734
+ white-space: pre;
735
+ white-space: pre-wrap; }
736
+ .source_table pre .hits {
737
+ float: right;
738
+ margin-left: 10px;
739
+ padding: 2px 4px;
740
+ background-color: #444444;
741
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#222222), to(#666666));
742
+ background: -moz-linear-gradient(#222222, #666666);
743
+ background: linear-gradient(#222222, #666666);
744
+ color: white;
745
+ font-family: Helvetica, "Helvetica Neue", Arial, sans-serif;
746
+ font-size: 10px;
747
+ font-weight: bold;
748
+ text-align: center;
749
+ border-radius: 6px; }
750
+
751
+ #footer {
752
+ color: #dddddd;
753
+ font-size: 12px;
754
+ font-weight: bold;
755
+ margin-top: 12px;
756
+ text-align: right; }
757
+ #footer a {
758
+ color: #eeeeee;
759
+ text-decoration: underline; }
760
+ #footer a:hover {
761
+ color: white;
762
+ text-decoration: none; }
763
+
764
+ .green {
765
+ color: #009900; }
766
+
767
+ .red {
768
+ color: #990000; }
769
+
770
+ .yellow {
771
+ color: #ddaa00; }
772
+
773
+ .source_table .covered {
774
+ border-color: #009900; }
775
+ .source_table .missed {
776
+ border-color: #990000; }
777
+ .source_table .never {
778
+ border-color: black; }
779
+ .source_table .skipped {
780
+ border-color: #ffcc00; }
781
+ .source_table .covered:nth-child(odd) {
782
+ background-color: #cdf2cd; }
783
+ .source_table .covered:nth-child(even) {
784
+ background-color: #dbf2db; }
785
+ .source_table .missed:nth-child(odd) {
786
+ background-color: #f7c0c0; }
787
+ .source_table .missed:nth-child(even) {
788
+ background-color: #f7cfcf; }
789
+ .source_table .never:nth-child(odd) {
790
+ background-color: #efefef; }
791
+ .source_table .never:nth-child(even) {
792
+ background-color: #f4f4f4; }
793
+ .source_table .skipped:nth-child(odd) {
794
+ background-color: #fbf0c0; }
795
+ .source_table .skipped:nth-child(even) {
796
+ background-color: #fbffcf; }
797
+
798
+
799
+