knife-ec-backup 2.4.0 → 2.4.15

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +67 -42
  3. data/Rakefile +1 -1
  4. data/lib/chef/automate.rb +18 -0
  5. data/lib/chef/knife/ec_backup.rb +7 -6
  6. data/lib/chef/knife/ec_base.rb +29 -5
  7. data/lib/chef/knife/ec_key_base.rb +50 -15
  8. data/lib/chef/knife/ec_key_export.rb +1 -1
  9. data/lib/chef/knife/ec_key_import.rb +3 -3
  10. data/lib/chef/knife/ec_restore.rb +7 -6
  11. data/lib/chef/server.rb +3 -4
  12. data/lib/knife_ec_backup/version.rb +2 -1
  13. data/spec/chef/knife/ec_backup_spec.rb +2 -0
  14. data/spec/chef/knife/ec_base_spec.rb +1 -1
  15. data/spec/chef/knife/ec_key_base_spec.rb +5 -4
  16. data/spec/chef/knife/ec_key_export_spec.rb +2 -2
  17. data/spec/chef/knife/ec_restore_spec.rb +1 -1
  18. data/spec/chef/server_spec.rb +22 -17
  19. metadata +19 -31
  20. data/spec/chef/knife/coverage/assets/0.10.2/application.css +0 -799
  21. data/spec/chef/knife/coverage/assets/0.10.2/application.js +0 -1707
  22. data/spec/chef/knife/coverage/assets/0.10.2/colorbox/border.png +0 -0
  23. data/spec/chef/knife/coverage/assets/0.10.2/colorbox/controls.png +0 -0
  24. data/spec/chef/knife/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
  25. data/spec/chef/knife/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
  26. data/spec/chef/knife/coverage/assets/0.10.2/favicon_green.png +0 -0
  27. data/spec/chef/knife/coverage/assets/0.10.2/favicon_red.png +0 -0
  28. data/spec/chef/knife/coverage/assets/0.10.2/favicon_yellow.png +0 -0
  29. data/spec/chef/knife/coverage/assets/0.10.2/loading.gif +0 -0
  30. data/spec/chef/knife/coverage/assets/0.10.2/magnify.png +0 -0
  31. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
  40. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  41. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
  42. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
  43. data/spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  44. data/spec/chef/knife/coverage/index.html +0 -72
  45. data/spec/chef/knife/key_dump.json +0 -4
@@ -17,7 +17,7 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/knife/ec_key_base'
20
+ require_relative 'ec_key_base'
21
21
 
22
22
  class Chef
23
23
  class Knife
@@ -17,8 +17,8 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/knife/ec_key_base'
21
- require 'chef/org_id_cache'
20
+ require_relative 'ec_key_base'
21
+ require_relative '../org_id_cache'
22
22
 
23
23
  class Chef
24
24
  class Knife
@@ -184,7 +184,7 @@ class Chef
184
184
  d.delete('id') if config[:skip_ids]
185
185
  # If the hash_type in the export,
186
186
  # we are dealing with a record where the password is still in the
187
- # serialized_obejct. Explictly setting these to nil ensures that the
187
+ # serialized_object. Explicitly setting these to nil ensures that the
188
188
  # password set in the restore is wiped out.
189
189
  unless d.has_key?('hash_type')
190
190
  d['hash_type'] = nil
@@ -1,5 +1,5 @@
1
1
  require 'chef/knife'
2
- require 'chef/knife/ec_base'
2
+ require_relative 'ec_base'
3
3
 
4
4
  class Chef
5
5
  class Knife
@@ -33,10 +33,10 @@ class Chef
33
33
  # Work around bug in chef_fs
34
34
  require 'chef/chef_fs/command_line'
35
35
  require 'chef/chef_fs/data_handler/acl_data_handler'
36
- require 'securerandom'
36
+ require 'securerandom' unless defined?(SecureRandom)
37
37
  require 'chef/chef_fs/parallelizer'
38
- require 'chef/tsorter'
39
- require 'chef/server'
38
+ require_relative '../tsorter'
39
+ require_relative '../server'
40
40
  end
41
41
 
42
42
  def run
@@ -179,13 +179,14 @@ class Chef
179
179
 
180
180
  def ec_key_import
181
181
  @ec_key_import ||= begin
182
- require 'chef/knife/ec_key_import'
182
+ require_relative 'ec_key_import'
183
183
  k = Chef::Knife::EcKeyImport.new
184
184
  k.name_args = ["#{dest_dir}/key_dump.json", "#{dest_dir}/key_table_dump.json"]
185
185
  k.config[:skip_pivotal] = true
186
186
  k.config[:skip_ids] = config[:skip_ids]
187
187
  k.config[:sql_host] = config[:sql_host]
188
188
  k.config[:sql_port] = config[:sql_port]
189
+ k.config[:sql_db] = config[:sql_db]
189
190
  k.config[:sql_user] = config[:sql_user]
190
191
  k.config[:sql_password] = config[:sql_password]
191
192
  k
@@ -228,7 +229,7 @@ class Chef
228
229
  ui.msg "Restoring org admin data"
229
230
  chef_fs_config = Chef::ChefFS::Config.new
230
231
 
231
- # Handle Admins, Billing Admins and Public Key Read Access seperately
232
+ # Handle Admins, Billing Admins and Public Key Read Access separately
232
233
  #
233
234
  # admins: We need to upload admins first so that we
234
235
  # can upload all of the other objects as a user in the org
data/lib/chef/server.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'uri'
2
- require 'openssl'
1
+ require 'uri' unless defined?(URI)
2
+ require 'openssl' unless defined?(OpenSSL)
3
3
  require 'chef/server_api'
4
4
 
5
5
  class Chef
@@ -23,8 +23,7 @@ class Chef
23
23
 
24
24
  def version
25
25
  @version ||= begin
26
- uri = URI.parse("#{root_url}/version")
27
- ver_line = open(uri, {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}).each_line.first
26
+ ver_line = Chef::ServerAPI.new(root_url).get('version').each_line.first
28
27
  parse_server_version(ver_line)
29
28
  end
30
29
  end
@@ -1,3 +1,4 @@
1
+ # when you change this to double quotes, also update .expeditor/update_version.sh
1
2
  module KnifeECBackup
2
- VERSION = '2.4.0'
3
+ VERSION = '2.4.15'
3
4
  end
@@ -38,6 +38,8 @@ describe Chef::Knife::EcBackup do
38
38
  allow(@knife).to receive(:rest).and_return(@rest)
39
39
  allow(@knife).to receive(:user_acl_rest).and_return(@rest)
40
40
  allow_any_instance_of(Chef::Knife::EcBase).to receive(:dest_dir).and_return(dest_dir)
41
+ allow(@knife.ui).to receive(:msg)
42
+ allow(@knife.ui).to receive(:error)
41
43
  end
42
44
 
43
45
  describe "#for_each_user" do
@@ -2,7 +2,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_hel
2
2
  require 'chef/knife/ec_base'
3
3
  require 'chef/knife'
4
4
  require 'chef/config'
5
- require 'stringio'
5
+ require 'stringio' unless defined?(StringIO)
6
6
 
7
7
  class Tester < Chef::Knife
8
8
  include Chef::Knife::EcBase
@@ -1,23 +1,25 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_helper"))
2
2
  require 'chef/knife/ec_key_base'
3
+ require 'chef/automate'
3
4
 
4
5
  class KeyBaseTester < Chef::Knife
5
6
  include Chef::Knife::EcKeyBase
6
7
  end
7
8
 
8
9
  describe Chef::Knife::EcKeyBase do
9
- let (:knife) { Chef::Knife::KeyBaseTester.new }
10
+ let (:knife) { KeyBaseTester.new }
10
11
 
11
12
  let(:running_server_postgresql_sql_config_json) {
12
- '{"private_chef": { "opscode-erchef":{}, "postgresql": { "sql_user": "jiminy", "sql_password": "secret"} }, "postgresql": { "sql_user": "jiminy", "sql_password": "secret"} }'
13
+ '{"private_chef": { "opscode-erchef":{}, "postgresql": { "sql_user": "jiminy", "sql_password": "secret"} } }'
13
14
  }
14
15
 
15
16
 
16
17
  let(:running_server_erchef_config_json) {
17
- '{"private_chef": { "opscode-erchef": { "sql_user": "cricket", "sql_password": "secrete"}}, "opscode_erchef": { "sql_user": "cricket", "sql_password": "secrete"}}'
18
+ '{"private_chef": { "opscode-erchef": { "sql_user": "cricket", "sql_password": "secrete"} } }'
18
19
  }
19
20
  describe "#load_config_from_file!" do
20
21
  before(:each) do
22
+ allow(Chef::Automate).to receive(:is_installed?).and_return(false)
21
23
  allow(File).to receive(:exists?).and_return(true)
22
24
  allow(File).to receive(:size).and_return(1)
23
25
  end
@@ -35,4 +37,3 @@ describe Chef::Knife::EcKeyBase do
35
37
  end
36
38
  end
37
39
  end
38
-
@@ -1,8 +1,8 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_helper"))
2
2
  require 'chef/knife/ec_key_export'
3
3
  require 'sequel'
4
- require 'json'
5
- require 'securerandom'
4
+ require 'json' unless defined?(JSON)
5
+ require 'securerandom' unless defined?(SecureRandom)
6
6
  require 'fakefs/spec_helpers'
7
7
 
8
8
  def user_record(name)
@@ -58,7 +58,7 @@ describe Chef::Knife::EcRestore do
58
58
  @knife.restore_open_invitations("foo")
59
59
  end
60
60
 
61
- it "does NOT fail if an inivitation already exists" do
61
+ it "does NOT fail if an invitation already exists" do
62
62
  make_org "foo"
63
63
  allow(@rest).to receive(:post).with("organizations/foo/association_requests", {"user" => "bob"}).and_return(net_exception(409))
64
64
  allow(@rest).to receive(:post).with("organizations/foo/association_requests", {"user" => "jane"}).and_return(net_exception(409))
@@ -1,65 +1,70 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper"))
2
2
  require 'chef/server'
3
3
  require 'chef/server_api'
4
- require 'stringio'
4
+ require 'stringio' unless defined?(StringIO)
5
5
 
6
6
  describe Chef::Server do
7
+ before(:each) do
8
+ @rest = double('rest')
9
+ allow(Chef::ServerAPI).to receive(:new).and_return(@rest)
10
+ end
7
11
 
8
12
  it "infers root url from a Chef Server url" do
9
13
  s = Chef::Server.from_chef_server_url("http://api.example.com/organizations/foobar")
10
14
  expect(s.root_url).to eq("http://api.example.com")
11
15
  end
12
16
 
13
- it "determines the running habitat service pkg version" do
17
+ it "determines the running habitat service dockerized pkg version" do
14
18
  s = Chef::Server.new('http://api.example.com')
15
- allow(s).to receive(:open).and_return(StringIO.new("Package: chef-server/chef-server-nginx/12.17.42/20180413212943\nother stuff\nother stuff"))
19
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Package: chef-server/chef-server-nginx/12.17.42/20180413212943\nother stuff\nother stuff"))
16
20
  expect(s.version.to_s).to eq('12.17.42')
17
21
  end
18
22
 
23
+ it "determines the running Automate CS API habitat service pkg version" do
24
+ s = Chef::Server.new('http://api.example.com')
25
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Package: chef/automate-cs-nginx/12.19.31/20190529200833\nHabitat: 0.69.0/20181127183841\nMember: f73decd1025f4a5aa728b4429c297ef1 / ip-10-1-1-200.us-west-1.compute.internal"))
26
+ expect(s.version.to_s).to eq('12.19.31')
27
+ end
28
+
19
29
  it "determines the running omnibus server version" do
20
30
  s = Chef::Server.new('http://api.example.com')
21
- allow(s).to receive(:open).and_return(StringIO.new("Chef Server 1.8.1\nother stuff\nother stuff"))
31
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 1.8.1\nother stuff\nother stuff"))
22
32
  expect(s.version.to_s).to eq('1.8.1')
23
33
  end
24
34
 
25
35
  it "ignores git tags when determining the version" do
26
36
  s = Chef::Server.new("http://api.example.com")
27
- allow(s).to receive(:open).and_return(StringIO.new("Chef Server 1.8.1+20141024080718.git.16.08098a5\nother stuff\nother stuff"))
37
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 1.8.1+20141024080718.git.16.08098a5\nother stuff\nother stuff"))
28
38
  expect(s.version.to_s).to eq("1.8.1")
29
39
  end
30
40
 
31
41
  it "knows whether the server supports user ACLs via nginx" do
32
42
  s1 = Chef::Server.new("http://api.example.com")
33
- s2 = Chef::Server.new("http://api.example.com")
34
- allow(s1).to receive(:open).and_return(StringIO.new("Chef Server 11.0.0\nother stuff\nother stuff"))
35
- allow(s2).to receive(:open).and_return(StringIO.new("Chef Server 11.0.2\nother stuff\nother stuff"))
36
-
43
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 11.0.0\nother stuff\nother stuff"))
37
44
  expect(s1.supports_user_acls?).to eq(false)
45
+ s2 = Chef::Server.new("http://api.example.com")
46
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 11.0.2\nother stuff\nother stuff"))
38
47
  expect(s2.supports_user_acls?).to eq(true)
39
48
  end
40
49
 
41
50
  it "knows when account is directly accessible" do
42
51
  s = Chef::Server.new("http://api.example.com")
43
- rest = double('rest')
44
- allow(Chef::ServerAPI).to receive(:new).and_return(rest)
45
- allow(rest).to receive(:get).and_return("")
52
+ allow(@rest).to receive(:get).and_return("")
46
53
  expect(s.direct_account_access?).to eq(true)
47
54
  end
48
55
 
49
56
  it "knows when account is not directly accessible" do
50
57
  s = Chef::Server.new("http://api.example.com")
51
- rest = double('rest')
52
- allow(Chef::ServerAPI).to receive(:new).and_return(rest)
53
- allow(rest).to receive(:get).and_raise(Errno::ECONNREFUSED)
58
+ allow(@rest).to receive(:get).and_raise(Errno::ECONNREFUSED)
54
59
  expect(s.direct_account_access?).to eq(false)
55
60
  end
56
61
 
57
62
  it "knows that public_key_read_access was implemented in 12.5.0" do
58
63
  before = Chef::Server.new("http://api.example.com")
59
- allow(before).to receive(:open).and_return(StringIO.new("Chef Server 12.4.1\nother stuff\nother stuff"))
64
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 12.4.1\nother stuff\nother stuff"))
60
65
  expect(before.supports_public_key_read_access?).to eq(false)
61
66
  after = Chef::Server.new("http://api.example.com")
62
- allow(after).to receive(:open).and_return(StringIO.new("Chef Server 12.6.0\nother stuff\nother stuff"))
67
+ allow(@rest).to receive(:get).with("version").and_return(StringIO.new("Chef Server 12.6.0\nother stuff\nother stuff"))
63
68
  expect(after.supports_public_key_read_access?).to eq(true)
64
69
  end
65
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-ec-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Keiser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-18 00:00:00.000000000 Z
11
+ date: 2021-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: knife-tidy
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Backup and Restore of Enterprise Chef
70
84
  email: jkeiser@chef.io
71
85
  executables: []
@@ -77,6 +91,7 @@ files:
77
91
  - LICENSE
78
92
  - README.md
79
93
  - Rakefile
94
+ - lib/chef/automate.rb
80
95
  - lib/chef/knife/ec_backup.rb
81
96
  - lib/chef/knife/ec_base.rb
82
97
  - lib/chef/knife/ec_error_handler.rb
@@ -88,31 +103,6 @@ files:
88
103
  - lib/chef/server.rb
89
104
  - lib/chef/tsorter.rb
90
105
  - lib/knife_ec_backup/version.rb
91
- - spec/chef/knife/coverage/assets/0.10.2/application.css
92
- - spec/chef/knife/coverage/assets/0.10.2/application.js
93
- - spec/chef/knife/coverage/assets/0.10.2/colorbox/border.png
94
- - spec/chef/knife/coverage/assets/0.10.2/colorbox/controls.png
95
- - spec/chef/knife/coverage/assets/0.10.2/colorbox/loading.gif
96
- - spec/chef/knife/coverage/assets/0.10.2/colorbox/loading_background.png
97
- - spec/chef/knife/coverage/assets/0.10.2/favicon_green.png
98
- - spec/chef/knife/coverage/assets/0.10.2/favicon_red.png
99
- - spec/chef/knife/coverage/assets/0.10.2/favicon_yellow.png
100
- - spec/chef/knife/coverage/assets/0.10.2/loading.gif
101
- - spec/chef/knife/coverage/assets/0.10.2/magnify.png
102
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
103
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
104
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
105
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
106
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png
107
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
108
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
109
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
110
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png
111
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png
112
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png
113
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png
114
- - spec/chef/knife/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png
115
- - spec/chef/knife/coverage/index.html
116
106
  - spec/chef/knife/ec_backup_spec.rb
117
107
  - spec/chef/knife/ec_base_spec.rb
118
108
  - spec/chef/knife/ec_error_handler_spec.rb
@@ -120,13 +110,12 @@ files:
120
110
  - spec/chef/knife/ec_key_export_spec.rb
121
111
  - spec/chef/knife/ec_key_import_spec.rb
122
112
  - spec/chef/knife/ec_restore_spec.rb
123
- - spec/chef/knife/key_dump.json
124
113
  - spec/chef/server_spec.rb
125
114
  - spec/chef/tsorter_spec.rb
126
115
  - spec/spec_helper.rb
127
116
  homepage: https://www.chef.io
128
117
  licenses:
129
- - Apache 2.0
118
+ - Apache-2.0
130
119
  metadata: {}
131
120
  post_install_message:
132
121
  rdoc_options: []
@@ -143,8 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
132
  - !ruby/object:Gem::Version
144
133
  version: '0'
145
134
  requirements: []
146
- rubyforge_project:
147
- rubygems_version: 2.7.6
135
+ rubygems_version: 3.1.4
148
136
  signing_key:
149
137
  specification_version: 4
150
138
  summary: Backup and Restore of Enterprise Chef
@@ -1,799 +0,0 @@
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
-