├── .gitignore ├── Capfile ├── Gemfile ├── Gemfile.lock ├── Guardfile ├── README.md ├── Rakefile ├── app ├── assets │ ├── images │ │ ├── .keep │ │ ├── empty.png │ │ └── silk.png │ ├── javascripts │ │ ├── application.js.coffee │ │ ├── documents.js.coffee │ │ ├── pages.js.coffee │ │ └── site.js.coffee.erb │ └── stylesheets │ │ ├── application.css.scss │ │ ├── documents.css.scss │ │ ├── pages.css.scss │ │ ├── silk-icons-sprite.css.scss.erb │ │ └── site.css.scss ├── controllers │ ├── application_controller.rb │ ├── concerns │ │ └── .keep │ ├── documents_controller.rb │ ├── pages_controller.rb │ └── site_controller.rb ├── helpers │ ├── application_helper.rb │ ├── documents_helper.rb │ ├── pages_helper.rb │ └── site_helper.rb ├── lib │ └── db.rb ├── mailers │ └── .keep ├── models │ ├── .keep │ ├── concerns │ │ └── .keep │ └── document.rb └── views │ ├── documents │ ├── index.erb │ └── show.html.erb │ ├── layouts │ ├── _navbar.html.erb │ └── application.html.erb │ └── pages │ └── index.html.erb ├── bin ├── bundle ├── indexer.rb ├── rails └── rake ├── config.ru ├── config ├── application.rb ├── boot.rb ├── database.yml ├── deploy.rb ├── deploy │ ├── production.rb │ └── staging.rb ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── backtrace_silencers.rb │ ├── filter_parameter_logging.rb │ ├── inflections.rb │ ├── mime_types.rb │ ├── natural_sort.rb │ ├── secret_token.rb │ ├── session_store.rb │ ├── sprockets_helpers.rb │ └── wrap_parameters.rb ├── locales │ └── en.yml └── routes.rb ├── db ├── migrate │ └── 20140513215559_create_documents.rb ├── schema.rb └── seeds.rb ├── lib ├── assets │ └── .keep ├── capistrano │ └── tasks │ │ ├── assets_precompile.rake │ │ ├── fixperms.rake │ │ └── restart.rake └── tasks │ └── .keep ├── log └── .keep ├── public ├── 404.html ├── 422.html ├── 500.html ├── favicon.ico └── robots.txt ├── test ├── controllers │ └── .keep ├── fixtures │ ├── .keep │ └── documents.yml ├── helpers │ └── .keep ├── integration │ └── .keep ├── mailers │ └── .keep ├── models │ ├── .keep │ └── document_test.rb └── test_helper.rb └── vendor └── assets ├── javascripts ├── .keep └── bootstrap-lightbox.js └── stylesheets ├── .keep └── bootstrap-lightbox.css.less /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle 2 | /db/*.sqlite3 3 | /db/*.sqlite3-journal 4 | /log/*.log 5 | /public/assets 6 | /tmp 7 | *.iml 8 | .generators 9 | .rakeTasks 10 | -------------------------------------------------------------------------------- /Capfile: -------------------------------------------------------------------------------- 1 | require 'capistrano/setup' 2 | require 'capistrano/deploy' 3 | 4 | require 'capistrano/rsync' 5 | require 'capistrano/git' 6 | 7 | require 'capistrano/rbenv' 8 | require 'capistrano/bundler' 9 | 10 | # require 'capistrano/rails/migrations' 11 | 12 | Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } 13 | 14 | namespace :deploy do 15 | after :finishing, 'deploy:cleanup' 16 | end 17 | 18 | invoke :staging 19 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'rails', '4.0.2' 4 | 5 | gem 'sass-rails', '~> 4.0.0' 6 | gem 'coffee-rails', '~> 4.0.0' 7 | gem 'less-rails' 8 | gem 'jquery-rails' 9 | gem 'jquery-ui-rails' 10 | gem 'font-awesome-sass' 11 | gem 'bootstrap-sass' 12 | 13 | gem 'naturalsort' 14 | 15 | gem 'stretcher' 16 | gem 'faraday', '~> 0.8.9' 17 | 18 | gem 'therubyracer', platforms: :ruby 19 | gem 'sqlite3' 20 | 21 | group :development do 22 | gem 'uglifier' 23 | 24 | gem 'debase' 25 | gem 'ruby-debug-ide' 26 | 27 | gem 'thin' 28 | gem 'better_errors' 29 | gem 'binding_of_caller' 30 | gem 'quiet_assets' 31 | 32 | gem 'guard-livereload', require: false 33 | gem 'rack-livereload' 34 | 35 | gem 'capistrano-rbenv', require: false 36 | gem 'capistrano-bundler', require: false 37 | gem 'capistrano-rails', require: false 38 | gem 'capistrano-rsync', require: false 39 | end 40 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | actionmailer (4.0.2) 5 | actionpack (= 4.0.2) 6 | mail (~> 2.5.4) 7 | actionpack (4.0.2) 8 | activesupport (= 4.0.2) 9 | builder (~> 3.1.0) 10 | erubis (~> 2.7.0) 11 | rack (~> 1.5.2) 12 | rack-test (~> 0.6.2) 13 | activemodel (4.0.2) 14 | activesupport (= 4.0.2) 15 | builder (~> 3.1.0) 16 | activerecord (4.0.2) 17 | activemodel (= 4.0.2) 18 | activerecord-deprecated_finders (~> 1.0.2) 19 | activesupport (= 4.0.2) 20 | arel (~> 4.0.0) 21 | activerecord-deprecated_finders (1.0.3) 22 | activesupport (4.0.2) 23 | i18n (~> 0.6, >= 0.6.4) 24 | minitest (~> 4.2) 25 | multi_json (~> 1.3) 26 | thread_safe (~> 0.1) 27 | tzinfo (~> 0.3.37) 28 | arel (4.0.2) 29 | better_errors (1.1.0) 30 | coderay (>= 1.0.0) 31 | erubis (>= 2.6.6) 32 | binding_of_caller (0.7.2) 33 | debug_inspector (>= 0.0.1) 34 | bootstrap-sass (3.1.1.1) 35 | sass (~> 3.2) 36 | builder (3.1.4) 37 | capistrano (3.2.1) 38 | i18n 39 | rake (>= 10.0.0) 40 | sshkit (~> 1.3) 41 | capistrano-bundler (1.1.2) 42 | capistrano (~> 3.0) 43 | sshkit (~> 1.2) 44 | capistrano-rails (1.1.1) 45 | capistrano (~> 3.1) 46 | capistrano-bundler (~> 1.1) 47 | capistrano-rbenv (2.0.2) 48 | capistrano (~> 3.1) 49 | sshkit (~> 1.3) 50 | capistrano-rsync (1.0.2) 51 | capistrano (>= 3.0.0.pre14, < 4) 52 | celluloid (0.15.2) 53 | timers (~> 1.1.0) 54 | celluloid-io (0.15.0) 55 | celluloid (>= 0.15.0) 56 | nio4r (>= 0.5.0) 57 | coderay (1.1.0) 58 | coffee-rails (4.0.1) 59 | coffee-script (>= 2.2.0) 60 | railties (>= 4.0.0, < 5.0) 61 | coffee-script (2.2.0) 62 | coffee-script-source 63 | execjs 64 | coffee-script-source (1.7.0) 65 | commonjs (0.2.7) 66 | daemons (1.1.9) 67 | debase (0.0.9) 68 | debugger-ruby_core_source 69 | debug_inspector (0.0.2) 70 | debugger-ruby_core_source (1.3.2) 71 | em-websocket (0.5.1) 72 | eventmachine (>= 0.12.9) 73 | http_parser.rb (~> 0.6.0) 74 | erubis (2.7.0) 75 | eventmachine (1.0.3) 76 | excon (0.33.0) 77 | execjs (2.0.2) 78 | faraday (0.8.9) 79 | multipart-post (~> 1.2.0) 80 | faraday_middleware (0.9.1) 81 | faraday (>= 0.7.4, < 0.10) 82 | faraday_middleware-multi_json (0.0.5) 83 | faraday_middleware 84 | multi_json 85 | ffi (1.9.3) 86 | font-awesome-sass (4.0.3.1) 87 | sass (~> 3.2) 88 | formatador (0.2.4) 89 | guard (2.6.0) 90 | formatador (>= 0.2.4) 91 | listen (~> 2.7) 92 | lumberjack (~> 1.0) 93 | pry (>= 0.9.12) 94 | thor (>= 0.18.1) 95 | guard-livereload (2.1.2) 96 | em-websocket (~> 0.5) 97 | guard (~> 2.0) 98 | multi_json (~> 1.8) 99 | hashie (2.1.1) 100 | hike (1.2.3) 101 | http_parser.rb (0.6.0) 102 | i18n (0.6.9) 103 | jquery-rails (3.1.0) 104 | railties (>= 3.0, < 5.0) 105 | thor (>= 0.14, < 2.0) 106 | jquery-ui-rails (4.2.1) 107 | railties (>= 3.2.16) 108 | json (1.8.1) 109 | less (2.4.0) 110 | commonjs (~> 0.2.7) 111 | less-rails (2.4.2) 112 | actionpack (>= 3.1) 113 | less (~> 2.4.0) 114 | libv8 (3.16.14.3) 115 | listen (2.7.3) 116 | celluloid (>= 0.15.2) 117 | celluloid-io (>= 0.15.0) 118 | rb-fsevent (>= 0.9.3) 119 | rb-inotify (>= 0.9) 120 | lumberjack (1.0.5) 121 | mail (2.5.4) 122 | mime-types (~> 1.16) 123 | treetop (~> 1.4.8) 124 | method_source (0.8.2) 125 | mime-types (1.25.1) 126 | minitest (4.7.5) 127 | multi_json (1.9.3) 128 | multipart-post (1.2.0) 129 | naturalsort (1.1.1) 130 | net-scp (1.2.1) 131 | net-ssh (>= 2.6.5) 132 | net-ssh (2.9.0) 133 | nio4r (1.0.0) 134 | polyglot (0.3.4) 135 | pry (0.9.12.6) 136 | coderay (~> 1.0) 137 | method_source (~> 0.8) 138 | slop (~> 3.4) 139 | quiet_assets (1.0.2) 140 | railties (>= 3.1, < 5.0) 141 | rack (1.5.2) 142 | rack-livereload (0.3.15) 143 | rack 144 | rack-test (0.6.2) 145 | rack (>= 1.0) 146 | rails (4.0.2) 147 | actionmailer (= 4.0.2) 148 | actionpack (= 4.0.2) 149 | activerecord (= 4.0.2) 150 | activesupport (= 4.0.2) 151 | bundler (>= 1.3.0, < 2.0) 152 | railties (= 4.0.2) 153 | sprockets-rails (~> 2.0.0) 154 | railties (4.0.2) 155 | actionpack (= 4.0.2) 156 | activesupport (= 4.0.2) 157 | rake (>= 0.8.7) 158 | thor (>= 0.18.1, < 2.0) 159 | rake (10.3.1) 160 | rb-fsevent (0.9.4) 161 | rb-inotify (0.9.4) 162 | ffi (>= 0.5.0) 163 | ref (1.0.5) 164 | ruby-debug-ide (0.4.22) 165 | rake (>= 0.8.1) 166 | sass (3.2.19) 167 | sass-rails (4.0.3) 168 | railties (>= 4.0.0, < 5.0) 169 | sass (~> 3.2.0) 170 | sprockets (~> 2.8, <= 2.11.0) 171 | sprockets-rails (~> 2.0) 172 | slop (3.5.0) 173 | sprockets (2.11.0) 174 | hike (~> 1.2) 175 | multi_json (~> 1.0) 176 | rack (~> 1.0) 177 | tilt (~> 1.1, != 1.3.0) 178 | sprockets-rails (2.0.1) 179 | actionpack (>= 3.0) 180 | activesupport (>= 3.0) 181 | sprockets (~> 2.8) 182 | sqlite3 (1.3.9) 183 | sshkit (1.4.0) 184 | net-scp (>= 1.1.2) 185 | net-ssh (>= 2.8.0) 186 | term-ansicolor 187 | stretcher (1.21.1) 188 | excon (>= 0.16) 189 | faraday (~> 0.8) 190 | faraday_middleware (~> 0.9.0) 191 | faraday_middleware-multi_json (~> 0.0.5) 192 | hashie (>= 1.2.0) 193 | multi_json (>= 1.0) 194 | term-ansicolor (1.3.0) 195 | tins (~> 1.0) 196 | therubyracer (0.12.1) 197 | libv8 (~> 3.16.14.0) 198 | ref 199 | thin (1.6.2) 200 | daemons (>= 1.0.9) 201 | eventmachine (>= 1.0.0) 202 | rack (>= 1.0.0) 203 | thor (0.19.1) 204 | thread_safe (0.3.3) 205 | tilt (1.4.1) 206 | timers (1.1.0) 207 | tins (1.1.0) 208 | treetop (1.4.15) 209 | polyglot 210 | polyglot (>= 0.3.1) 211 | tzinfo (0.3.39) 212 | uglifier (2.5.0) 213 | execjs (>= 0.3.0) 214 | json (>= 1.8.0) 215 | 216 | PLATFORMS 217 | ruby 218 | 219 | DEPENDENCIES 220 | better_errors 221 | binding_of_caller 222 | bootstrap-sass 223 | capistrano-bundler 224 | capistrano-rails 225 | capistrano-rbenv 226 | capistrano-rsync 227 | coffee-rails (~> 4.0.0) 228 | debase 229 | faraday (~> 0.8.9) 230 | font-awesome-sass 231 | guard-livereload 232 | jquery-rails 233 | jquery-ui-rails 234 | less-rails 235 | naturalsort 236 | quiet_assets 237 | rack-livereload 238 | rails (= 4.0.2) 239 | ruby-debug-ide 240 | sass-rails (~> 4.0.0) 241 | sqlite3 242 | stretcher 243 | therubyracer 244 | thin 245 | uglifier 246 | -------------------------------------------------------------------------------- /Guardfile: -------------------------------------------------------------------------------- 1 | # A sample Guardfile 2 | # More info at https://github.com/guard/guard#readme 3 | 4 | guard 'livereload' do 5 | watch(%r{app/views/.+\.(erb|haml|slim)$}) 6 | watch(%r{app/helpers/.+\.rb}) 7 | watch(%r{public/.+\.(css|js|html)}) 8 | watch(%r{config/locales/.+\.yml}) 9 | # Rails Assets Pipeline 10 | watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" } 11 | end 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nsa-doc-search 2 | ============== 3 | 4 | Search inside Snowden/NSA/GCHQ/whatever documents with a ruby RAILS tools 5 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require File.expand_path('../config/application', __FILE__) 5 | 6 | DocSearch::Application.load_tasks 7 | -------------------------------------------------------------------------------- /app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/assets/images/.keep -------------------------------------------------------------------------------- /app/assets/images/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/assets/images/empty.png -------------------------------------------------------------------------------- /app/assets/images/silk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/assets/images/silk.png -------------------------------------------------------------------------------- /app/assets/javascripts/application.js.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | //= require jquery 3 | //= require jquery_ujs 4 | //= require bootstrap 5 | //= require bootstrap-lightbox 6 | ### 7 | 8 | $ -> 9 | $.ajaxSetup { 10 | beforeSend: (xhr) -> 11 | xhr.setRequestHeader 'X-CSRF-Token', $('meta[name="csrf-token"]').attr('content') 12 | } 13 | -------------------------------------------------------------------------------- /app/assets/javascripts/documents.js.coffee: -------------------------------------------------------------------------------- 1 | # Place all the behaviors and hooks related to the matching controller here. 2 | # All this logic will automatically be available in application.js. 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/pages.js.coffee: -------------------------------------------------------------------------------- 1 | # Place all the behaviors and hooks related to the matching controller here. 2 | # All this logic will automatically be available in application.js. 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/site.js.coffee.erb: -------------------------------------------------------------------------------- 1 | $ -> 2 | do_filter = () -> 3 | filter = $("#filter").val() 4 | $.get "<%= path :pages, format: :json %>", filter: filter, (json) -> 5 | tbody = $("#documents > tbody") 6 | tbody.empty() 7 | 8 | 9 | for page in json.pages 10 | [doc, n] = [page.doc, page.page] 11 | 12 | tr = $("") 13 | tr.append "\">#{doc}" 14 | tr.append "#{page.page}" 15 | tr.append "\" />" 16 | tr.append "#{page.content}" 17 | 18 | tbody.append tr 19 | 20 | $("#filter").on "keyup", (event) -> 21 | return unless event.which == 13 22 | do_filter() 23 | 24 | $("#search").click () -> do_filter() 25 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css.scss: -------------------------------------------------------------------------------- 1 | //= require 'bootstrap' 2 | //= require 'font-awesome' 3 | //= require 'silk-icons-sprite' 4 | //= require 'bootstrap-lightbox' 5 | //= require_self 6 | 7 | body { 8 | padding-top: 70px; 9 | } 10 | 11 | span.highlight { 12 | background-color: #f00; 13 | } 14 | 15 | th, td { 16 | &.centered { 17 | text-align: center; 18 | } 19 | } 20 | 21 | .row.spacer { 22 | margin-top: 40px; 23 | } 24 | -------------------------------------------------------------------------------- /app/assets/stylesheets/documents.css.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the Documents controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/pages.css.scss: -------------------------------------------------------------------------------- 1 | table#documents { 2 | thead { 3 | .pagination { 4 | margin: auto; 5 | } 6 | } 7 | 8 | tbody { 9 | th.page { 10 | text-align: center; 11 | } 12 | 13 | td.text { 14 | font-family: monospace; 15 | font-size: 8px; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/assets/stylesheets/silk-icons-sprite.css.scss.erb: -------------------------------------------------------------------------------- 1 | @mixin sprite-silk { 2 | background: url(<%= asset_path 'silk.png' %>) no-repeat top left; 3 | width: 16px; 4 | height: 16px; 5 | } 6 | 7 | .sprite-silk-empty { 8 | width: 16px; 9 | height: 16px; 10 | } 11 | 12 | .sprite-silk-zoom_out { 13 | @include sprite-silk; 14 | background-position: 0px 0px; 15 | } 16 | 17 | .sprite-silk-zoom_in { 18 | @include sprite-silk; 19 | background-position: -16px 0px; 20 | } 21 | 22 | .sprite-silk-zoom { 23 | @include sprite-silk; 24 | background-position: 0px -16px; 25 | } 26 | 27 | .sprite-silk-xhtml_valid { 28 | @include sprite-silk; 29 | background-position: -16px -16px; 30 | } 31 | 32 | .sprite-silk-xhtml_go { 33 | @include sprite-silk; 34 | background-position: -32px 0px; 35 | } 36 | 37 | .sprite-silk-xhtml_delete { 38 | @include sprite-silk; 39 | background-position: -32px -16px; 40 | } 41 | 42 | .sprite-silk-xhtml_add { 43 | @include sprite-silk; 44 | background-position: 0px -32px; 45 | } 46 | 47 | .sprite-silk-xhtml { 48 | @include sprite-silk; 49 | background-position: -16px -32px; 50 | } 51 | 52 | .sprite-silk-wrench_orange { 53 | @include sprite-silk; 54 | background-position: -32px -32px; 55 | } 56 | 57 | .sprite-silk-wrench { 58 | @include sprite-silk; 59 | background-position: -48px 0px; 60 | } 61 | 62 | .sprite-silk-world:link { 63 | @include sprite-silk; 64 | background-position: -48px -16px; 65 | } 66 | 67 | .sprite-silk-world_go { 68 | @include sprite-silk; 69 | background-position: -48px -32px; 70 | } 71 | 72 | .sprite-silk-world_edit { 73 | @include sprite-silk; 74 | background-position: 0px -48px; 75 | } 76 | 77 | .sprite-silk-world_delete { 78 | @include sprite-silk; 79 | background-position: -16px -48px; 80 | } 81 | 82 | .sprite-silk-world_add { 83 | @include sprite-silk; 84 | background-position: -32px -48px; 85 | } 86 | 87 | .sprite-silk-world { 88 | @include sprite-silk; 89 | background-position: -48px -48px; 90 | } 91 | 92 | .sprite-silk-webcam_error { 93 | @include sprite-silk; 94 | background-position: -64px 0px; 95 | } 96 | 97 | .sprite-silk-webcam_delete { 98 | @include sprite-silk; 99 | background-position: -64px -16px; 100 | } 101 | 102 | .sprite-silk-webcam_add { 103 | @include sprite-silk; 104 | background-position: -64px -32px; 105 | } 106 | 107 | .sprite-silk-webcam { 108 | @include sprite-silk; 109 | background-position: -64px -48px; 110 | } 111 | 112 | .sprite-silk-weather_sun { 113 | @include sprite-silk; 114 | background-position: 0px -64px; 115 | } 116 | 117 | .sprite-silk-weather_snow { 118 | @include sprite-silk; 119 | background-position: -16px -64px; 120 | } 121 | 122 | .sprite-silk-weather_rain { 123 | @include sprite-silk; 124 | background-position: -32px -64px; 125 | } 126 | 127 | .sprite-silk-weather_lightning { 128 | @include sprite-silk; 129 | background-position: -48px -64px; 130 | } 131 | 132 | .sprite-silk-weather_cloudy { 133 | @include sprite-silk; 134 | background-position: -64px -64px; 135 | } 136 | 137 | .sprite-silk-weather_clouds { 138 | @include sprite-silk; 139 | background-position: -80px 0px; 140 | } 141 | 142 | .sprite-silk-wand { 143 | @include sprite-silk; 144 | background-position: -80px -16px; 145 | } 146 | 147 | .sprite-silk-vector_delete { 148 | @include sprite-silk; 149 | background-position: -80px -32px; 150 | } 151 | 152 | .sprite-silk-vector_add { 153 | @include sprite-silk; 154 | background-position: -80px -48px; 155 | } 156 | 157 | .sprite-silk-vector { 158 | @include sprite-silk; 159 | background-position: -80px -64px; 160 | } 161 | 162 | .sprite-silk-vcard_edit { 163 | @include sprite-silk; 164 | background-position: 0px -80px; 165 | } 166 | 167 | .sprite-silk-vcard_delete { 168 | @include sprite-silk; 169 | background-position: -16px -80px; 170 | } 171 | 172 | .sprite-silk-vcard_add { 173 | @include sprite-silk; 174 | background-position: -32px -80px; 175 | } 176 | 177 | .sprite-silk-vcard { 178 | @include sprite-silk; 179 | background-position: -48px -80px; 180 | } 181 | 182 | .sprite-silk-user_suit { 183 | @include sprite-silk; 184 | background-position: -64px -80px; 185 | } 186 | 187 | .sprite-silk-user_red { 188 | @include sprite-silk; 189 | background-position: -80px -80px; 190 | } 191 | 192 | .sprite-silk-user_orange { 193 | @include sprite-silk; 194 | background-position: -96px 0px; 195 | } 196 | 197 | .sprite-silk-user_green { 198 | @include sprite-silk; 199 | background-position: -96px -16px; 200 | } 201 | 202 | .sprite-silk-user_gray { 203 | @include sprite-silk; 204 | background-position: -96px -32px; 205 | } 206 | 207 | .sprite-silk-user_go { 208 | @include sprite-silk; 209 | background-position: -96px -48px; 210 | } 211 | 212 | .sprite-silk-user_female { 213 | @include sprite-silk; 214 | background-position: -96px -64px; 215 | } 216 | 217 | .sprite-silk-user_edit { 218 | @include sprite-silk; 219 | background-position: -96px -80px; 220 | } 221 | 222 | .sprite-silk-user_delete { 223 | @include sprite-silk; 224 | background-position: 0px -96px; 225 | } 226 | 227 | .sprite-silk-user_comment { 228 | @include sprite-silk; 229 | background-position: -16px -96px; 230 | } 231 | 232 | .sprite-silk-user_add { 233 | @include sprite-silk; 234 | background-position: -32px -96px; 235 | } 236 | 237 | .sprite-silk-user { 238 | @include sprite-silk; 239 | background-position: -48px -96px; 240 | } 241 | 242 | .sprite-silk-tux { 243 | @include sprite-silk; 244 | background-position: -64px -96px; 245 | } 246 | 247 | .sprite-silk-transmit_go { 248 | @include sprite-silk; 249 | background-position: -80px -96px; 250 | } 251 | 252 | .sprite-silk-transmit_error { 253 | @include sprite-silk; 254 | background-position: -96px -96px; 255 | } 256 | 257 | .sprite-silk-transmit_edit { 258 | @include sprite-silk; 259 | background-position: -112px 0px; 260 | } 261 | 262 | .sprite-silk-transmit_delete { 263 | @include sprite-silk; 264 | background-position: -112px -16px; 265 | } 266 | 267 | .sprite-silk-transmit_blue { 268 | @include sprite-silk; 269 | background-position: -112px -32px; 270 | } 271 | 272 | .sprite-silk-transmit_add { 273 | @include sprite-silk; 274 | background-position: -112px -48px; 275 | } 276 | 277 | .sprite-silk-transmit { 278 | @include sprite-silk; 279 | background-position: -112px -64px; 280 | } 281 | 282 | .sprite-silk-timeline_marker { 283 | @include sprite-silk; 284 | background-position: -112px -80px; 285 | } 286 | 287 | .sprite-silk-time_go { 288 | @include sprite-silk; 289 | background-position: -112px -96px; 290 | } 291 | 292 | .sprite-silk-time_delete { 293 | @include sprite-silk; 294 | background-position: 0px -112px; 295 | } 296 | 297 | .sprite-silk-time_add { 298 | @include sprite-silk; 299 | background-position: -16px -112px; 300 | } 301 | 302 | .sprite-silk-time { 303 | @include sprite-silk; 304 | background-position: -32px -112px; 305 | } 306 | 307 | .sprite-silk-tick { 308 | @include sprite-silk; 309 | background-position: -48px -112px; 310 | } 311 | 312 | .sprite-silk-thumb_up { 313 | @include sprite-silk; 314 | background-position: -64px -112px; 315 | } 316 | 317 | .sprite-silk-thumb_down { 318 | @include sprite-silk; 319 | background-position: -80px -112px; 320 | } 321 | 322 | .sprite-silk-textfield_rename { 323 | @include sprite-silk; 324 | background-position: -96px -112px; 325 | } 326 | 327 | .sprite-silk-textfield_key { 328 | @include sprite-silk; 329 | background-position: -112px -112px; 330 | } 331 | 332 | .sprite-silk-textfield_delete { 333 | @include sprite-silk; 334 | background-position: -128px 0px; 335 | } 336 | 337 | .sprite-silk-textfield_add { 338 | @include sprite-silk; 339 | background-position: -128px -16px; 340 | } 341 | 342 | .sprite-silk-textfield { 343 | @include sprite-silk; 344 | background-position: -128px -32px; 345 | } 346 | 347 | .sprite-silk-text_uppercase { 348 | @include sprite-silk; 349 | background-position: -128px -48px; 350 | } 351 | 352 | .sprite-silk-text_underline { 353 | @include sprite-silk; 354 | background-position: -128px -64px; 355 | } 356 | 357 | .sprite-silk-text_superscript { 358 | @include sprite-silk; 359 | background-position: -128px -80px; 360 | } 361 | 362 | .sprite-silk-text_subscript { 363 | @include sprite-silk; 364 | background-position: -128px -96px; 365 | } 366 | 367 | .sprite-silk-text_strikethrough { 368 | @include sprite-silk; 369 | background-position: -128px -112px; 370 | } 371 | 372 | .sprite-silk-text_smallcaps { 373 | @include sprite-silk; 374 | background-position: 0px -128px; 375 | } 376 | 377 | .sprite-silk-text_signature { 378 | @include sprite-silk; 379 | background-position: -16px -128px; 380 | } 381 | 382 | .sprite-silk-text_replace { 383 | @include sprite-silk; 384 | background-position: -32px -128px; 385 | } 386 | 387 | .sprite-silk-text_padding_top { 388 | @include sprite-silk; 389 | background-position: -48px -128px; 390 | } 391 | 392 | .sprite-silk-text_padding_right { 393 | @include sprite-silk; 394 | background-position: -64px -128px; 395 | } 396 | 397 | .sprite-silk-text_padding_left { 398 | @include sprite-silk; 399 | background-position: -80px -128px; 400 | } 401 | 402 | .sprite-silk-text_padding_bottom { 403 | @include sprite-silk; 404 | background-position: -96px -128px; 405 | } 406 | 407 | .sprite-silk-text_lowercase { 408 | @include sprite-silk; 409 | background-position: -112px -128px; 410 | } 411 | 412 | .sprite-silk-text_list_numbers { 413 | @include sprite-silk; 414 | background-position: -128px -128px; 415 | } 416 | 417 | .sprite-silk-text_list_bullets { 418 | @include sprite-silk; 419 | background-position: -144px 0px; 420 | } 421 | 422 | .sprite-silk-text_linespacing { 423 | @include sprite-silk; 424 | background-position: -144px -16px; 425 | } 426 | 427 | .sprite-silk-text_letterspacing { 428 | @include sprite-silk; 429 | background-position: -144px -32px; 430 | } 431 | 432 | .sprite-silk-text_letter_omega { 433 | @include sprite-silk; 434 | background-position: -144px -48px; 435 | } 436 | 437 | .sprite-silk-text_kerning { 438 | @include sprite-silk; 439 | background-position: -144px -64px; 440 | } 441 | 442 | .sprite-silk-text_italic { 443 | @include sprite-silk; 444 | background-position: -144px -80px; 445 | } 446 | 447 | .sprite-silk-text_indent_remove { 448 | @include sprite-silk; 449 | background-position: -144px -96px; 450 | } 451 | 452 | .sprite-silk-text_indent { 453 | @include sprite-silk; 454 | background-position: -144px -112px; 455 | } 456 | 457 | .sprite-silk-text_horizontalrule { 458 | @include sprite-silk; 459 | background-position: -144px -128px; 460 | } 461 | 462 | .sprite-silk-text_heading_6 { 463 | @include sprite-silk; 464 | background-position: 0px -144px; 465 | } 466 | 467 | .sprite-silk-text_heading_5 { 468 | @include sprite-silk; 469 | background-position: -16px -144px; 470 | } 471 | 472 | .sprite-silk-text_heading_4 { 473 | @include sprite-silk; 474 | background-position: -32px -144px; 475 | } 476 | 477 | .sprite-silk-text_heading_3 { 478 | @include sprite-silk; 479 | background-position: -48px -144px; 480 | } 481 | 482 | .sprite-silk-text_heading_2 { 483 | @include sprite-silk; 484 | background-position: -64px -144px; 485 | } 486 | 487 | .sprite-silk-text_heading_1 { 488 | @include sprite-silk; 489 | background-position: -80px -144px; 490 | } 491 | 492 | .sprite-silk-text_dropcaps { 493 | @include sprite-silk; 494 | background-position: -96px -144px; 495 | } 496 | 497 | .sprite-silk-text_columns { 498 | @include sprite-silk; 499 | background-position: -112px -144px; 500 | } 501 | 502 | .sprite-silk-text_bold { 503 | @include sprite-silk; 504 | background-position: -128px -144px; 505 | } 506 | 507 | .sprite-silk-text_allcaps { 508 | @include sprite-silk; 509 | background-position: -144px -144px; 510 | } 511 | 512 | .sprite-silk-text_align_right { 513 | @include sprite-silk; 514 | background-position: -160px 0px; 515 | } 516 | 517 | .sprite-silk-text_align_left { 518 | @include sprite-silk; 519 | background-position: -160px -16px; 520 | } 521 | 522 | .sprite-silk-text_align_justify { 523 | @include sprite-silk; 524 | background-position: -160px -32px; 525 | } 526 | 527 | .sprite-silk-text_align_center { 528 | @include sprite-silk; 529 | background-position: -160px -48px; 530 | } 531 | 532 | .sprite-silk-television_delete { 533 | @include sprite-silk; 534 | background-position: -160px -64px; 535 | } 536 | 537 | .sprite-silk-television_add { 538 | @include sprite-silk; 539 | background-position: -160px -80px; 540 | } 541 | 542 | .sprite-silk-television { 543 | @include sprite-silk; 544 | background-position: -160px -96px; 545 | } 546 | 547 | .sprite-silk-telephone:link { 548 | @include sprite-silk; 549 | background-position: -160px -112px; 550 | } 551 | 552 | .sprite-silk-telephone_key { 553 | @include sprite-silk; 554 | background-position: -160px -128px; 555 | } 556 | 557 | .sprite-silk-telephone_go { 558 | @include sprite-silk; 559 | background-position: -160px -144px; 560 | } 561 | 562 | .sprite-silk-telephone_error { 563 | @include sprite-silk; 564 | background-position: 0px -160px; 565 | } 566 | 567 | .sprite-silk-telephone_edit { 568 | @include sprite-silk; 569 | background-position: -16px -160px; 570 | } 571 | 572 | .sprite-silk-telephone_delete { 573 | @include sprite-silk; 574 | background-position: -32px -160px; 575 | } 576 | 577 | .sprite-silk-telephone_add { 578 | @include sprite-silk; 579 | background-position: -48px -160px; 580 | } 581 | 582 | .sprite-silk-telephone { 583 | @include sprite-silk; 584 | background-position: -64px -160px; 585 | } 586 | 587 | .sprite-silk-tag_yellow { 588 | @include sprite-silk; 589 | background-position: -80px -160px; 590 | } 591 | 592 | .sprite-silk-tag_red { 593 | @include sprite-silk; 594 | background-position: -96px -160px; 595 | } 596 | 597 | .sprite-silk-tag_purple { 598 | @include sprite-silk; 599 | background-position: -112px -160px; 600 | } 601 | 602 | .sprite-silk-tag_pink { 603 | @include sprite-silk; 604 | background-position: -128px -160px; 605 | } 606 | 607 | .sprite-silk-tag_orange { 608 | @include sprite-silk; 609 | background-position: -144px -160px; 610 | } 611 | 612 | .sprite-silk-tag_green { 613 | @include sprite-silk; 614 | background-position: -160px -160px; 615 | } 616 | 617 | .sprite-silk-tag_blue_edit { 618 | @include sprite-silk; 619 | background-position: -176px 0px; 620 | } 621 | 622 | .sprite-silk-tag_blue_delete { 623 | @include sprite-silk; 624 | background-position: -176px -16px; 625 | } 626 | 627 | .sprite-silk-tag_blue_add { 628 | @include sprite-silk; 629 | background-position: -176px -32px; 630 | } 631 | 632 | .sprite-silk-tag_blue { 633 | @include sprite-silk; 634 | background-position: -176px -48px; 635 | } 636 | 637 | .sprite-silk-tag { 638 | @include sprite-silk; 639 | background-position: -176px -64px; 640 | } 641 | 642 | .sprite-silk-table_sort { 643 | @include sprite-silk; 644 | background-position: -176px -80px; 645 | } 646 | 647 | .sprite-silk-table_save { 648 | @include sprite-silk; 649 | background-position: -176px -96px; 650 | } 651 | 652 | .sprite-silk-table_row_insert { 653 | @include sprite-silk; 654 | background-position: -176px -112px; 655 | } 656 | 657 | .sprite-silk-table_row_delete { 658 | @include sprite-silk; 659 | background-position: -176px -128px; 660 | } 661 | 662 | .sprite-silk-table_relationship { 663 | @include sprite-silk; 664 | background-position: -176px -144px; 665 | } 666 | 667 | .sprite-silk-table_refresh { 668 | @include sprite-silk; 669 | background-position: -176px -160px; 670 | } 671 | 672 | .sprite-silk-table_multiple { 673 | @include sprite-silk; 674 | background-position: 0px -176px; 675 | } 676 | 677 | .sprite-silk-table:link { 678 | @include sprite-silk; 679 | background-position: -16px -176px; 680 | } 681 | 682 | .sprite-silk-table_lightning { 683 | @include sprite-silk; 684 | background-position: -32px -176px; 685 | } 686 | 687 | .sprite-silk-table_key { 688 | @include sprite-silk; 689 | background-position: -48px -176px; 690 | } 691 | 692 | .sprite-silk-table_go { 693 | @include sprite-silk; 694 | background-position: -64px -176px; 695 | } 696 | 697 | .sprite-silk-table_gear { 698 | @include sprite-silk; 699 | background-position: -80px -176px; 700 | } 701 | 702 | .sprite-silk-table_error { 703 | @include sprite-silk; 704 | background-position: -96px -176px; 705 | } 706 | 707 | .sprite-silk-table_edit { 708 | @include sprite-silk; 709 | background-position: -112px -176px; 710 | } 711 | 712 | .sprite-silk-table_delete { 713 | @include sprite-silk; 714 | background-position: -128px -176px; 715 | } 716 | 717 | .sprite-silk-table_add { 718 | @include sprite-silk; 719 | background-position: -144px -176px; 720 | } 721 | 722 | .sprite-silk-table { 723 | @include sprite-silk; 724 | background-position: -160px -176px; 725 | } 726 | 727 | .sprite-silk-tab_go { 728 | @include sprite-silk; 729 | background-position: -176px -176px; 730 | } 731 | 732 | .sprite-silk-tab_edit { 733 | @include sprite-silk; 734 | background-position: -192px 0px; 735 | } 736 | 737 | .sprite-silk-tab_delete { 738 | @include sprite-silk; 739 | background-position: -192px -16px; 740 | } 741 | 742 | .sprite-silk-tab_add { 743 | @include sprite-silk; 744 | background-position: -192px -32px; 745 | } 746 | 747 | .sprite-silk-tab { 748 | @include sprite-silk; 749 | background-position: -192px -48px; 750 | } 751 | 752 | .sprite-silk-sum { 753 | @include sprite-silk; 754 | background-position: -192px -64px; 755 | } 756 | 757 | .sprite-silk-style_go { 758 | @include sprite-silk; 759 | background-position: -192px -80px; 760 | } 761 | 762 | .sprite-silk-style_edit { 763 | @include sprite-silk; 764 | background-position: -192px -96px; 765 | } 766 | 767 | .sprite-silk-style_delete { 768 | @include sprite-silk; 769 | background-position: -192px -112px; 770 | } 771 | 772 | .sprite-silk-style_add { 773 | @include sprite-silk; 774 | background-position: -192px -128px; 775 | } 776 | 777 | .sprite-silk-style { 778 | @include sprite-silk; 779 | background-position: -192px -144px; 780 | } 781 | 782 | .sprite-silk-stop { 783 | @include sprite-silk; 784 | background-position: -192px -160px; 785 | } 786 | 787 | .sprite-silk-status_online { 788 | @include sprite-silk; 789 | background-position: -192px -176px; 790 | } 791 | 792 | .sprite-silk-status_offline { 793 | @include sprite-silk; 794 | background-position: 0px -192px; 795 | } 796 | 797 | .sprite-silk-status_busy { 798 | @include sprite-silk; 799 | background-position: -16px -192px; 800 | } 801 | 802 | .sprite-silk-status_away { 803 | @include sprite-silk; 804 | background-position: -32px -192px; 805 | } 806 | 807 | .sprite-silk-star { 808 | @include sprite-silk; 809 | background-position: -48px -192px; 810 | } 811 | 812 | .sprite-silk-sport_tennis { 813 | @include sprite-silk; 814 | background-position: -64px -192px; 815 | } 816 | 817 | .sprite-silk-sport_soccer { 818 | @include sprite-silk; 819 | background-position: -80px -192px; 820 | } 821 | 822 | .sprite-silk-sport_shuttlecock { 823 | @include sprite-silk; 824 | background-position: -96px -192px; 825 | } 826 | 827 | .sprite-silk-sport_raquet { 828 | @include sprite-silk; 829 | background-position: -112px -192px; 830 | } 831 | 832 | .sprite-silk-sport_golf { 833 | @include sprite-silk; 834 | background-position: -128px -192px; 835 | } 836 | 837 | .sprite-silk-sport_football { 838 | @include sprite-silk; 839 | background-position: -144px -192px; 840 | } 841 | 842 | .sprite-silk-sport_basketball { 843 | @include sprite-silk; 844 | background-position: -160px -192px; 845 | } 846 | 847 | .sprite-silk-sport_8ball { 848 | @include sprite-silk; 849 | background-position: -176px -192px; 850 | } 851 | 852 | .sprite-silk-spellcheck { 853 | @include sprite-silk; 854 | background-position: -192px -192px; 855 | } 856 | 857 | .sprite-silk-sound_none { 858 | @include sprite-silk; 859 | background-position: -208px 0px; 860 | } 861 | 862 | .sprite-silk-sound_mute { 863 | @include sprite-silk; 864 | background-position: -208px -16px; 865 | } 866 | 867 | .sprite-silk-sound_low { 868 | @include sprite-silk; 869 | background-position: -208px -32px; 870 | } 871 | 872 | .sprite-silk-sound_delete { 873 | @include sprite-silk; 874 | background-position: -208px -48px; 875 | } 876 | 877 | .sprite-silk-sound_add { 878 | @include sprite-silk; 879 | background-position: -208px -64px; 880 | } 881 | 882 | .sprite-silk-sound { 883 | @include sprite-silk; 884 | background-position: -208px -80px; 885 | } 886 | 887 | .sprite-silk-sitemap_color { 888 | @include sprite-silk; 889 | background-position: -208px -96px; 890 | } 891 | 892 | .sprite-silk-sitemap { 893 | @include sprite-silk; 894 | background-position: -208px -112px; 895 | } 896 | 897 | .sprite-silk-shield_go { 898 | @include sprite-silk; 899 | background-position: -208px -128px; 900 | } 901 | 902 | .sprite-silk-shield_delete { 903 | @include sprite-silk; 904 | background-position: -208px -144px; 905 | } 906 | 907 | .sprite-silk-shield_add { 908 | @include sprite-silk; 909 | background-position: -208px -160px; 910 | } 911 | 912 | .sprite-silk-shield { 913 | @include sprite-silk; 914 | background-position: -208px -176px; 915 | } 916 | 917 | .sprite-silk-shape_ungroup { 918 | @include sprite-silk; 919 | background-position: -208px -192px; 920 | } 921 | 922 | .sprite-silk-shape_square:link { 923 | @include sprite-silk; 924 | background-position: 0px -208px; 925 | } 926 | 927 | .sprite-silk-shape_square_key { 928 | @include sprite-silk; 929 | background-position: -16px -208px; 930 | } 931 | 932 | .sprite-silk-shape_square_go { 933 | @include sprite-silk; 934 | background-position: -32px -208px; 935 | } 936 | 937 | .sprite-silk-shape_square_error { 938 | @include sprite-silk; 939 | background-position: -48px -208px; 940 | } 941 | 942 | .sprite-silk-shape_square_edit { 943 | @include sprite-silk; 944 | background-position: -64px -208px; 945 | } 946 | 947 | .sprite-silk-shape_square_delete { 948 | @include sprite-silk; 949 | background-position: -80px -208px; 950 | } 951 | 952 | .sprite-silk-shape_square_add { 953 | @include sprite-silk; 954 | background-position: -96px -208px; 955 | } 956 | 957 | .sprite-silk-shape_square { 958 | @include sprite-silk; 959 | background-position: -112px -208px; 960 | } 961 | 962 | .sprite-silk-shape_rotate_clockwise { 963 | @include sprite-silk; 964 | background-position: -128px -208px; 965 | } 966 | 967 | .sprite-silk-shape_rotate_anticlockwise { 968 | @include sprite-silk; 969 | background-position: -144px -208px; 970 | } 971 | 972 | .sprite-silk-shape_move_front { 973 | @include sprite-silk; 974 | background-position: -160px -208px; 975 | } 976 | 977 | .sprite-silk-shape_move_forwards { 978 | @include sprite-silk; 979 | background-position: -176px -208px; 980 | } 981 | 982 | .sprite-silk-shape_move_backwards { 983 | @include sprite-silk; 984 | background-position: -192px -208px; 985 | } 986 | 987 | .sprite-silk-shape_move_back { 988 | @include sprite-silk; 989 | background-position: -208px -208px; 990 | } 991 | 992 | .sprite-silk-shape_handles { 993 | @include sprite-silk; 994 | background-position: -224px 0px; 995 | } 996 | 997 | .sprite-silk-shape_group { 998 | @include sprite-silk; 999 | background-position: -224px -16px; 1000 | } 1001 | 1002 | .sprite-silk-shape_flip_vertical { 1003 | @include sprite-silk; 1004 | background-position: -224px -32px; 1005 | } 1006 | 1007 | .sprite-silk-shape_flip_horizontal { 1008 | @include sprite-silk; 1009 | background-position: -224px -48px; 1010 | } 1011 | 1012 | .sprite-silk-shape_align_top { 1013 | @include sprite-silk; 1014 | background-position: -224px -64px; 1015 | } 1016 | 1017 | .sprite-silk-shape_align_right { 1018 | @include sprite-silk; 1019 | background-position: -224px -80px; 1020 | } 1021 | 1022 | .sprite-silk-shape_align_middle { 1023 | @include sprite-silk; 1024 | background-position: -224px -96px; 1025 | } 1026 | 1027 | .sprite-silk-shape_align_left { 1028 | @include sprite-silk; 1029 | background-position: -224px -112px; 1030 | } 1031 | 1032 | .sprite-silk-shape_align_center { 1033 | @include sprite-silk; 1034 | background-position: -224px -128px; 1035 | } 1036 | 1037 | .sprite-silk-shape_align_bottom { 1038 | @include sprite-silk; 1039 | background-position: -224px -144px; 1040 | } 1041 | 1042 | .sprite-silk-shading { 1043 | @include sprite-silk; 1044 | background-position: -224px -160px; 1045 | } 1046 | 1047 | .sprite-silk-server_uncompressed { 1048 | @include sprite-silk; 1049 | background-position: -224px -176px; 1050 | } 1051 | 1052 | .sprite-silk-server:link { 1053 | @include sprite-silk; 1054 | background-position: -224px -192px; 1055 | } 1056 | 1057 | .sprite-silk-server_lightning { 1058 | @include sprite-silk; 1059 | background-position: -224px -208px; 1060 | } 1061 | 1062 | .sprite-silk-server_key { 1063 | @include sprite-silk; 1064 | background-position: 0px -224px; 1065 | } 1066 | 1067 | .sprite-silk-server_go { 1068 | @include sprite-silk; 1069 | background-position: -16px -224px; 1070 | } 1071 | 1072 | .sprite-silk-server_error { 1073 | @include sprite-silk; 1074 | background-position: -32px -224px; 1075 | } 1076 | 1077 | .sprite-silk-server_edit { 1078 | @include sprite-silk; 1079 | background-position: -48px -224px; 1080 | } 1081 | 1082 | .sprite-silk-server_delete { 1083 | @include sprite-silk; 1084 | background-position: -64px -224px; 1085 | } 1086 | 1087 | .sprite-silk-server_database { 1088 | @include sprite-silk; 1089 | background-position: -80px -224px; 1090 | } 1091 | 1092 | .sprite-silk-server_connect { 1093 | @include sprite-silk; 1094 | background-position: -96px -224px; 1095 | } 1096 | 1097 | .sprite-silk-server_compressed { 1098 | @include sprite-silk; 1099 | background-position: -112px -224px; 1100 | } 1101 | 1102 | .sprite-silk-server_chart { 1103 | @include sprite-silk; 1104 | background-position: -128px -224px; 1105 | } 1106 | 1107 | .sprite-silk-server_add { 1108 | @include sprite-silk; 1109 | background-position: -144px -224px; 1110 | } 1111 | 1112 | .sprite-silk-server { 1113 | @include sprite-silk; 1114 | background-position: -160px -224px; 1115 | } 1116 | 1117 | .sprite-silk-script_save { 1118 | @include sprite-silk; 1119 | background-position: -176px -224px; 1120 | } 1121 | 1122 | .sprite-silk-script_palette { 1123 | @include sprite-silk; 1124 | background-position: -192px -224px; 1125 | } 1126 | 1127 | .sprite-silk-script:link { 1128 | @include sprite-silk; 1129 | background-position: -208px -224px; 1130 | } 1131 | 1132 | .sprite-silk-script_lightning { 1133 | @include sprite-silk; 1134 | background-position: -224px -224px; 1135 | } 1136 | 1137 | .sprite-silk-script_key { 1138 | @include sprite-silk; 1139 | background-position: -240px 0px; 1140 | } 1141 | 1142 | .sprite-silk-script_go { 1143 | @include sprite-silk; 1144 | background-position: -240px -16px; 1145 | } 1146 | 1147 | .sprite-silk-script_gear { 1148 | @include sprite-silk; 1149 | background-position: -240px -32px; 1150 | } 1151 | 1152 | .sprite-silk-script_error { 1153 | @include sprite-silk; 1154 | background-position: -240px -48px; 1155 | } 1156 | 1157 | .sprite-silk-script_edit { 1158 | @include sprite-silk; 1159 | background-position: -240px -64px; 1160 | } 1161 | 1162 | .sprite-silk-script_delete { 1163 | @include sprite-silk; 1164 | background-position: -240px -80px; 1165 | } 1166 | 1167 | .sprite-silk-script_code_red { 1168 | @include sprite-silk; 1169 | background-position: -240px -96px; 1170 | } 1171 | 1172 | .sprite-silk-script_code { 1173 | @include sprite-silk; 1174 | background-position: -240px -112px; 1175 | } 1176 | 1177 | .sprite-silk-script_add { 1178 | @include sprite-silk; 1179 | background-position: -240px -128px; 1180 | } 1181 | 1182 | .sprite-silk-script { 1183 | @include sprite-silk; 1184 | background-position: -240px -144px; 1185 | } 1186 | 1187 | .sprite-silk-ruby_put { 1188 | @include sprite-silk; 1189 | background-position: -240px -160px; 1190 | } 1191 | 1192 | .sprite-silk-ruby:link { 1193 | @include sprite-silk; 1194 | background-position: -240px -176px; 1195 | } 1196 | 1197 | .sprite-silk-ruby_key { 1198 | @include sprite-silk; 1199 | background-position: -240px -192px; 1200 | } 1201 | 1202 | .sprite-silk-ruby_go { 1203 | @include sprite-silk; 1204 | background-position: -240px -208px; 1205 | } 1206 | 1207 | .sprite-silk-ruby_get { 1208 | @include sprite-silk; 1209 | background-position: -240px -224px; 1210 | } 1211 | 1212 | .sprite-silk-ruby_gear { 1213 | @include sprite-silk; 1214 | background-position: 0px -240px; 1215 | } 1216 | 1217 | .sprite-silk-ruby_delete { 1218 | @include sprite-silk; 1219 | background-position: -16px -240px; 1220 | } 1221 | 1222 | .sprite-silk-ruby_add { 1223 | @include sprite-silk; 1224 | background-position: -32px -240px; 1225 | } 1226 | 1227 | .sprite-silk-ruby { 1228 | @include sprite-silk; 1229 | background-position: -48px -240px; 1230 | } 1231 | 1232 | .sprite-silk-rss_valid { 1233 | @include sprite-silk; 1234 | background-position: -64px -240px; 1235 | } 1236 | 1237 | .sprite-silk-rss_go { 1238 | @include sprite-silk; 1239 | background-position: -80px -240px; 1240 | } 1241 | 1242 | .sprite-silk-rss_delete { 1243 | @include sprite-silk; 1244 | background-position: -96px -240px; 1245 | } 1246 | 1247 | .sprite-silk-rss_add { 1248 | @include sprite-silk; 1249 | background-position: -112px -240px; 1250 | } 1251 | 1252 | .sprite-silk-rss { 1253 | @include sprite-silk; 1254 | background-position: -128px -240px; 1255 | } 1256 | 1257 | .sprite-silk-rosette { 1258 | @include sprite-silk; 1259 | background-position: -144px -240px; 1260 | } 1261 | 1262 | .sprite-silk-resultset_previous { 1263 | @include sprite-silk; 1264 | background-position: -160px -240px; 1265 | } 1266 | 1267 | .sprite-silk-resultset_next { 1268 | @include sprite-silk; 1269 | background-position: -176px -240px; 1270 | } 1271 | 1272 | .sprite-silk-resultset_last { 1273 | @include sprite-silk; 1274 | background-position: -192px -240px; 1275 | } 1276 | 1277 | .sprite-silk-resultset_first { 1278 | @include sprite-silk; 1279 | background-position: -208px -240px; 1280 | } 1281 | 1282 | .sprite-silk-report_word { 1283 | @include sprite-silk; 1284 | background-position: -224px -240px; 1285 | } 1286 | 1287 | .sprite-silk-report_user { 1288 | @include sprite-silk; 1289 | background-position: -240px -240px; 1290 | } 1291 | 1292 | .sprite-silk-report_picture { 1293 | @include sprite-silk; 1294 | background-position: -256px 0px; 1295 | } 1296 | 1297 | .sprite-silk-report_magnify { 1298 | @include sprite-silk; 1299 | background-position: -256px -16px; 1300 | } 1301 | 1302 | .sprite-silk-report:link { 1303 | @include sprite-silk; 1304 | background-position: -256px -32px; 1305 | } 1306 | 1307 | .sprite-silk-report_key { 1308 | @include sprite-silk; 1309 | background-position: -256px -48px; 1310 | } 1311 | 1312 | .sprite-silk-report_go { 1313 | @include sprite-silk; 1314 | background-position: -256px -64px; 1315 | } 1316 | 1317 | .sprite-silk-report_edit { 1318 | @include sprite-silk; 1319 | background-position: -256px -80px; 1320 | } 1321 | 1322 | .sprite-silk-report_disk { 1323 | @include sprite-silk; 1324 | background-position: -256px -96px; 1325 | } 1326 | 1327 | .sprite-silk-report_delete { 1328 | @include sprite-silk; 1329 | background-position: -256px -112px; 1330 | } 1331 | 1332 | .sprite-silk-report_add { 1333 | @include sprite-silk; 1334 | background-position: -256px -128px; 1335 | } 1336 | 1337 | .sprite-silk-report { 1338 | @include sprite-silk; 1339 | background-position: -256px -144px; 1340 | } 1341 | 1342 | .sprite-silk-rainbow { 1343 | @include sprite-silk; 1344 | background-position: -256px -160px; 1345 | } 1346 | 1347 | .sprite-silk-printer_error { 1348 | @include sprite-silk; 1349 | background-position: -256px -176px; 1350 | } 1351 | 1352 | .sprite-silk-printer_empty { 1353 | @include sprite-silk; 1354 | background-position: -256px -192px; 1355 | } 1356 | 1357 | .sprite-silk-printer_delete { 1358 | @include sprite-silk; 1359 | background-position: -256px -208px; 1360 | } 1361 | 1362 | .sprite-silk-printer_add { 1363 | @include sprite-silk; 1364 | background-position: -256px -224px; 1365 | } 1366 | 1367 | .sprite-silk-printer { 1368 | @include sprite-silk; 1369 | background-position: -256px -240px; 1370 | } 1371 | 1372 | .sprite-silk-plugin:link { 1373 | @include sprite-silk; 1374 | background-position: 0px -256px; 1375 | } 1376 | 1377 | .sprite-silk-plugin_go { 1378 | @include sprite-silk; 1379 | background-position: -16px -256px; 1380 | } 1381 | 1382 | .sprite-silk-plugin_error { 1383 | @include sprite-silk; 1384 | background-position: -32px -256px; 1385 | } 1386 | 1387 | .sprite-silk-plugin_edit { 1388 | @include sprite-silk; 1389 | background-position: -48px -256px; 1390 | } 1391 | 1392 | .sprite-silk-plugin_disabled { 1393 | @include sprite-silk; 1394 | background-position: -64px -256px; 1395 | } 1396 | 1397 | .sprite-silk-plugin_delete { 1398 | @include sprite-silk; 1399 | background-position: -80px -256px; 1400 | } 1401 | 1402 | .sprite-silk-plugin_add { 1403 | @include sprite-silk; 1404 | background-position: -96px -256px; 1405 | } 1406 | 1407 | .sprite-silk-plugin { 1408 | @include sprite-silk; 1409 | background-position: -112px -256px; 1410 | } 1411 | 1412 | .sprite-silk-pill_go { 1413 | @include sprite-silk; 1414 | background-position: -128px -256px; 1415 | } 1416 | 1417 | .sprite-silk-pill_delete { 1418 | @include sprite-silk; 1419 | background-position: -144px -256px; 1420 | } 1421 | 1422 | .sprite-silk-pill_add { 1423 | @include sprite-silk; 1424 | background-position: -160px -256px; 1425 | } 1426 | 1427 | .sprite-silk-pill { 1428 | @include sprite-silk; 1429 | background-position: -176px -256px; 1430 | } 1431 | 1432 | .sprite-silk-pilcrow { 1433 | @include sprite-silk; 1434 | background-position: -192px -256px; 1435 | } 1436 | 1437 | .sprite-silk-pictures { 1438 | @include sprite-silk; 1439 | background-position: -208px -256px; 1440 | } 1441 | 1442 | .sprite-silk-picture_save { 1443 | @include sprite-silk; 1444 | background-position: -224px -256px; 1445 | } 1446 | 1447 | .sprite-silk-picture:link { 1448 | @include sprite-silk; 1449 | background-position: -240px -256px; 1450 | } 1451 | 1452 | .sprite-silk-picture_key { 1453 | @include sprite-silk; 1454 | background-position: -256px -256px; 1455 | } 1456 | 1457 | .sprite-silk-picture_go { 1458 | @include sprite-silk; 1459 | background-position: -272px 0px; 1460 | } 1461 | 1462 | .sprite-silk-picture_error { 1463 | @include sprite-silk; 1464 | background-position: -272px -16px; 1465 | } 1466 | 1467 | .sprite-silk-picture_empty { 1468 | @include sprite-silk; 1469 | background-position: -272px -32px; 1470 | } 1471 | 1472 | .sprite-silk-picture_edit { 1473 | @include sprite-silk; 1474 | background-position: -272px -48px; 1475 | } 1476 | 1477 | .sprite-silk-picture_delete { 1478 | @include sprite-silk; 1479 | background-position: -272px -64px; 1480 | } 1481 | 1482 | .sprite-silk-picture_add { 1483 | @include sprite-silk; 1484 | background-position: -272px -80px; 1485 | } 1486 | 1487 | .sprite-silk-picture { 1488 | @include sprite-silk; 1489 | background-position: -272px -96px; 1490 | } 1491 | 1492 | .sprite-silk-photos { 1493 | @include sprite-silk; 1494 | background-position: -272px -112px; 1495 | } 1496 | 1497 | .sprite-silk-photo:link { 1498 | @include sprite-silk; 1499 | background-position: -272px -128px; 1500 | } 1501 | 1502 | .sprite-silk-photo_delete { 1503 | @include sprite-silk; 1504 | background-position: -272px -144px; 1505 | } 1506 | 1507 | .sprite-silk-photo_add { 1508 | @include sprite-silk; 1509 | background-position: -272px -160px; 1510 | } 1511 | 1512 | .sprite-silk-photo { 1513 | @include sprite-silk; 1514 | background-position: -272px -176px; 1515 | } 1516 | 1517 | .sprite-silk-phone_sound { 1518 | @include sprite-silk; 1519 | background-position: -272px -192px; 1520 | } 1521 | 1522 | .sprite-silk-phone_delete { 1523 | @include sprite-silk; 1524 | background-position: -272px -208px; 1525 | } 1526 | 1527 | .sprite-silk-phone_add { 1528 | @include sprite-silk; 1529 | background-position: -272px -224px; 1530 | } 1531 | 1532 | .sprite-silk-phone { 1533 | @include sprite-silk; 1534 | background-position: -272px -240px; 1535 | } 1536 | 1537 | .sprite-silk-pencil_go { 1538 | @include sprite-silk; 1539 | background-position: -272px -256px; 1540 | } 1541 | 1542 | .sprite-silk-pencil_delete { 1543 | @include sprite-silk; 1544 | background-position: 0px -272px; 1545 | } 1546 | 1547 | .sprite-silk-pencil_add { 1548 | @include sprite-silk; 1549 | background-position: -16px -272px; 1550 | } 1551 | 1552 | .sprite-silk-pencil { 1553 | @include sprite-silk; 1554 | background-position: -32px -272px; 1555 | } 1556 | 1557 | .sprite-silk-paste_word { 1558 | @include sprite-silk; 1559 | background-position: -48px -272px; 1560 | } 1561 | 1562 | .sprite-silk-paste_plain { 1563 | @include sprite-silk; 1564 | background-position: -64px -272px; 1565 | } 1566 | 1567 | .sprite-silk-palette { 1568 | @include sprite-silk; 1569 | background-position: -80px -272px; 1570 | } 1571 | 1572 | .sprite-silk-paintcan { 1573 | @include sprite-silk; 1574 | background-position: -96px -272px; 1575 | } 1576 | 1577 | .sprite-silk-paintbrush { 1578 | @include sprite-silk; 1579 | background-position: -112px -272px; 1580 | } 1581 | 1582 | .sprite-silk-page_world { 1583 | @include sprite-silk; 1584 | background-position: -128px -272px; 1585 | } 1586 | 1587 | .sprite-silk-page_word { 1588 | @include sprite-silk; 1589 | background-position: -144px -272px; 1590 | } 1591 | 1592 | .sprite-silk-page_white_zip { 1593 | @include sprite-silk; 1594 | background-position: -160px -272px; 1595 | } 1596 | 1597 | .sprite-silk-page_white_wrench { 1598 | @include sprite-silk; 1599 | background-position: -176px -272px; 1600 | } 1601 | 1602 | .sprite-silk-page_white_world { 1603 | @include sprite-silk; 1604 | background-position: -192px -272px; 1605 | } 1606 | 1607 | .sprite-silk-page_white_word { 1608 | @include sprite-silk; 1609 | background-position: -208px -272px; 1610 | } 1611 | 1612 | .sprite-silk-page_white_width { 1613 | @include sprite-silk; 1614 | background-position: -224px -272px; 1615 | } 1616 | 1617 | .sprite-silk-page_white_visualstudio { 1618 | @include sprite-silk; 1619 | background-position: -240px -272px; 1620 | } 1621 | 1622 | .sprite-silk-page_white_vector { 1623 | @include sprite-silk; 1624 | background-position: -256px -272px; 1625 | } 1626 | 1627 | .sprite-silk-page_white_tux { 1628 | @include sprite-silk; 1629 | background-position: -272px -272px; 1630 | } 1631 | 1632 | .sprite-silk-page_white_text_width { 1633 | @include sprite-silk; 1634 | background-position: -288px 0px; 1635 | } 1636 | 1637 | .sprite-silk-page_white_text { 1638 | @include sprite-silk; 1639 | background-position: -288px -16px; 1640 | } 1641 | 1642 | .sprite-silk-page_white_swoosh { 1643 | @include sprite-silk; 1644 | background-position: -288px -32px; 1645 | } 1646 | 1647 | .sprite-silk-page_white_star { 1648 | @include sprite-silk; 1649 | background-position: -288px -48px; 1650 | } 1651 | 1652 | .sprite-silk-page_white_stack { 1653 | @include sprite-silk; 1654 | background-position: -288px -64px; 1655 | } 1656 | 1657 | .sprite-silk-page_white_ruby { 1658 | @include sprite-silk; 1659 | background-position: -288px -80px; 1660 | } 1661 | 1662 | .sprite-silk-page_white_put { 1663 | @include sprite-silk; 1664 | background-position: -288px -96px; 1665 | } 1666 | 1667 | .sprite-silk-page_white_powerpoint { 1668 | @include sprite-silk; 1669 | background-position: -288px -112px; 1670 | } 1671 | 1672 | .sprite-silk-page_white_picture { 1673 | @include sprite-silk; 1674 | background-position: -288px -128px; 1675 | } 1676 | 1677 | .sprite-silk-page_white_php { 1678 | @include sprite-silk; 1679 | background-position: -288px -144px; 1680 | } 1681 | 1682 | .sprite-silk-page_white_paste { 1683 | @include sprite-silk; 1684 | background-position: -288px -160px; 1685 | } 1686 | 1687 | .sprite-silk-page_white_paintbrush { 1688 | @include sprite-silk; 1689 | background-position: -288px -176px; 1690 | } 1691 | 1692 | .sprite-silk-page_white_paint { 1693 | @include sprite-silk; 1694 | background-position: -288px -192px; 1695 | } 1696 | 1697 | .sprite-silk-page_white_office { 1698 | @include sprite-silk; 1699 | background-position: -288px -208px; 1700 | } 1701 | 1702 | .sprite-silk-page_white_medal { 1703 | @include sprite-silk; 1704 | background-position: -288px -224px; 1705 | } 1706 | 1707 | .sprite-silk-page_white_magnify { 1708 | @include sprite-silk; 1709 | background-position: -288px -240px; 1710 | } 1711 | 1712 | .sprite-silk-page_white:link { 1713 | @include sprite-silk; 1714 | background-position: -288px -256px; 1715 | } 1716 | 1717 | .sprite-silk-page_white_lightning { 1718 | @include sprite-silk; 1719 | background-position: -288px -272px; 1720 | } 1721 | 1722 | .sprite-silk-page_white_key { 1723 | @include sprite-silk; 1724 | background-position: 0px -288px; 1725 | } 1726 | 1727 | .sprite-silk-page_white_horizontal { 1728 | @include sprite-silk; 1729 | background-position: -16px -288px; 1730 | } 1731 | 1732 | .sprite-silk-page_white_h { 1733 | @include sprite-silk; 1734 | background-position: -32px -288px; 1735 | } 1736 | 1737 | .sprite-silk-page_white_go { 1738 | @include sprite-silk; 1739 | background-position: -48px -288px; 1740 | } 1741 | 1742 | .sprite-silk-page_white_get { 1743 | @include sprite-silk; 1744 | background-position: -64px -288px; 1745 | } 1746 | 1747 | .sprite-silk-page_white_gear { 1748 | @include sprite-silk; 1749 | background-position: -80px -288px; 1750 | } 1751 | 1752 | .sprite-silk-page_white_freehand { 1753 | @include sprite-silk; 1754 | background-position: -96px -288px; 1755 | } 1756 | 1757 | .sprite-silk-page_white_flash { 1758 | @include sprite-silk; 1759 | background-position: -112px -288px; 1760 | } 1761 | 1762 | .sprite-silk-page_white_find { 1763 | @include sprite-silk; 1764 | background-position: -128px -288px; 1765 | } 1766 | 1767 | .sprite-silk-page_white_excel { 1768 | @include sprite-silk; 1769 | background-position: -144px -288px; 1770 | } 1771 | 1772 | .sprite-silk-page_white_error { 1773 | @include sprite-silk; 1774 | background-position: -160px -288px; 1775 | } 1776 | 1777 | .sprite-silk-page_white_edit { 1778 | @include sprite-silk; 1779 | background-position: -176px -288px; 1780 | } 1781 | 1782 | .sprite-silk-page_white_dvd { 1783 | @include sprite-silk; 1784 | background-position: -192px -288px; 1785 | } 1786 | 1787 | .sprite-silk-page_white_delete { 1788 | @include sprite-silk; 1789 | background-position: -208px -288px; 1790 | } 1791 | 1792 | .sprite-silk-page_white_database { 1793 | @include sprite-silk; 1794 | background-position: -224px -288px; 1795 | } 1796 | 1797 | .sprite-silk-page_white_cup { 1798 | @include sprite-silk; 1799 | background-position: -240px -288px; 1800 | } 1801 | 1802 | .sprite-silk-page_white_csharp { 1803 | @include sprite-silk; 1804 | background-position: -256px -288px; 1805 | } 1806 | 1807 | .sprite-silk-page_white_cplusplus { 1808 | @include sprite-silk; 1809 | background-position: -272px -288px; 1810 | } 1811 | 1812 | .sprite-silk-page_white_copy { 1813 | @include sprite-silk; 1814 | background-position: -288px -288px; 1815 | } 1816 | 1817 | .sprite-silk-page_white_compressed { 1818 | @include sprite-silk; 1819 | background-position: -304px 0px; 1820 | } 1821 | 1822 | .sprite-silk-page_white_coldfusion { 1823 | @include sprite-silk; 1824 | background-position: -304px -16px; 1825 | } 1826 | 1827 | .sprite-silk-page_white_code_red { 1828 | @include sprite-silk; 1829 | background-position: -304px -32px; 1830 | } 1831 | 1832 | .sprite-silk-page_white_code { 1833 | @include sprite-silk; 1834 | background-position: -304px -48px; 1835 | } 1836 | 1837 | .sprite-silk-page_white_cd { 1838 | @include sprite-silk; 1839 | background-position: -304px -64px; 1840 | } 1841 | 1842 | .sprite-silk-page_white_camera { 1843 | @include sprite-silk; 1844 | background-position: -304px -80px; 1845 | } 1846 | 1847 | .sprite-silk-page_white_c { 1848 | @include sprite-silk; 1849 | background-position: -304px -96px; 1850 | } 1851 | 1852 | .sprite-silk-page_white_add { 1853 | @include sprite-silk; 1854 | background-position: -304px -112px; 1855 | } 1856 | 1857 | .sprite-silk-page_white_actionscript { 1858 | @include sprite-silk; 1859 | background-position: -304px -128px; 1860 | } 1861 | 1862 | .sprite-silk-page_white_acrobat { 1863 | @include sprite-silk; 1864 | background-position: -304px -144px; 1865 | } 1866 | 1867 | .sprite-silk-page_white { 1868 | @include sprite-silk; 1869 | background-position: -304px -160px; 1870 | } 1871 | 1872 | .sprite-silk-page_save { 1873 | @include sprite-silk; 1874 | background-position: -304px -176px; 1875 | } 1876 | 1877 | .sprite-silk-page_refresh { 1878 | @include sprite-silk; 1879 | background-position: -304px -192px; 1880 | } 1881 | 1882 | .sprite-silk-page_red { 1883 | @include sprite-silk; 1884 | background-position: -304px -208px; 1885 | } 1886 | 1887 | .sprite-silk-page_paste { 1888 | @include sprite-silk; 1889 | background-position: -304px -224px; 1890 | } 1891 | 1892 | .sprite-silk-page_paintbrush { 1893 | @include sprite-silk; 1894 | background-position: -304px -240px; 1895 | } 1896 | 1897 | .sprite-silk-page:link { 1898 | @include sprite-silk; 1899 | background-position: -304px -256px; 1900 | } 1901 | 1902 | .sprite-silk-page_lightning { 1903 | @include sprite-silk; 1904 | background-position: -304px -272px; 1905 | } 1906 | 1907 | .sprite-silk-page_key { 1908 | @include sprite-silk; 1909 | background-position: -304px -288px; 1910 | } 1911 | 1912 | .sprite-silk-page_green { 1913 | @include sprite-silk; 1914 | background-position: 0px -304px; 1915 | } 1916 | 1917 | .sprite-silk-page_go { 1918 | @include sprite-silk; 1919 | background-position: -16px -304px; 1920 | } 1921 | 1922 | .sprite-silk-page_gear { 1923 | @include sprite-silk; 1924 | background-position: -32px -304px; 1925 | } 1926 | 1927 | .sprite-silk-page_find { 1928 | @include sprite-silk; 1929 | background-position: -48px -304px; 1930 | } 1931 | 1932 | .sprite-silk-page_excel { 1933 | @include sprite-silk; 1934 | background-position: -64px -304px; 1935 | } 1936 | 1937 | .sprite-silk-page_error { 1938 | @include sprite-silk; 1939 | background-position: -80px -304px; 1940 | } 1941 | 1942 | .sprite-silk-page_edit { 1943 | @include sprite-silk; 1944 | background-position: -96px -304px; 1945 | } 1946 | 1947 | .sprite-silk-page_delete { 1948 | @include sprite-silk; 1949 | background-position: -112px -304px; 1950 | } 1951 | 1952 | .sprite-silk-page_copy { 1953 | @include sprite-silk; 1954 | background-position: -128px -304px; 1955 | } 1956 | 1957 | .sprite-silk-page_code { 1958 | @include sprite-silk; 1959 | background-position: -144px -304px; 1960 | } 1961 | 1962 | .sprite-silk-page_attach { 1963 | @include sprite-silk; 1964 | background-position: -160px -304px; 1965 | } 1966 | 1967 | .sprite-silk-page_add { 1968 | @include sprite-silk; 1969 | background-position: -176px -304px; 1970 | } 1971 | 1972 | .sprite-silk-page { 1973 | @include sprite-silk; 1974 | background-position: -192px -304px; 1975 | } 1976 | 1977 | .sprite-silk-package:link { 1978 | @include sprite-silk; 1979 | background-position: -208px -304px; 1980 | } 1981 | 1982 | .sprite-silk-package_green { 1983 | @include sprite-silk; 1984 | background-position: -224px -304px; 1985 | } 1986 | 1987 | .sprite-silk-package_go { 1988 | @include sprite-silk; 1989 | background-position: -240px -304px; 1990 | } 1991 | 1992 | .sprite-silk-package_delete { 1993 | @include sprite-silk; 1994 | background-position: -256px -304px; 1995 | } 1996 | 1997 | .sprite-silk-package_add { 1998 | @include sprite-silk; 1999 | background-position: -272px -304px; 2000 | } 2001 | 2002 | .sprite-silk-package { 2003 | @include sprite-silk; 2004 | background-position: -288px -304px; 2005 | } 2006 | 2007 | .sprite-silk-overlays { 2008 | @include sprite-silk; 2009 | background-position: -304px -304px; 2010 | } 2011 | 2012 | .sprite-silk-note_go { 2013 | @include sprite-silk; 2014 | background-position: -320px 0px; 2015 | } 2016 | 2017 | .sprite-silk-note_error { 2018 | @include sprite-silk; 2019 | background-position: -320px -16px; 2020 | } 2021 | 2022 | .sprite-silk-note_edit { 2023 | @include sprite-silk; 2024 | background-position: -320px -32px; 2025 | } 2026 | 2027 | .sprite-silk-note_delete { 2028 | @include sprite-silk; 2029 | background-position: -320px -48px; 2030 | } 2031 | 2032 | .sprite-silk-note_add { 2033 | @include sprite-silk; 2034 | background-position: -320px -64px; 2035 | } 2036 | 2037 | .sprite-silk-note { 2038 | @include sprite-silk; 2039 | background-position: -320px -80px; 2040 | } 2041 | 2042 | .sprite-silk-newspaper:link { 2043 | @include sprite-silk; 2044 | background-position: -320px -96px; 2045 | } 2046 | 2047 | .sprite-silk-newspaper_go { 2048 | @include sprite-silk; 2049 | background-position: -320px -112px; 2050 | } 2051 | 2052 | .sprite-silk-newspaper_delete { 2053 | @include sprite-silk; 2054 | background-position: -320px -128px; 2055 | } 2056 | 2057 | .sprite-silk-newspaper_add { 2058 | @include sprite-silk; 2059 | background-position: -320px -144px; 2060 | } 2061 | 2062 | .sprite-silk-newspaper { 2063 | @include sprite-silk; 2064 | background-position: -320px -160px; 2065 | } 2066 | 2067 | .sprite-silk-new { 2068 | @include sprite-silk; 2069 | background-position: -320px -176px; 2070 | } 2071 | 2072 | .sprite-silk-music { 2073 | @include sprite-silk; 2074 | background-position: -320px -192px; 2075 | } 2076 | 2077 | .sprite-silk-mouse_error { 2078 | @include sprite-silk; 2079 | background-position: -320px -208px; 2080 | } 2081 | 2082 | .sprite-silk-mouse_delete { 2083 | @include sprite-silk; 2084 | background-position: -320px -224px; 2085 | } 2086 | 2087 | .sprite-silk-mouse_add { 2088 | @include sprite-silk; 2089 | background-position: -320px -240px; 2090 | } 2091 | 2092 | .sprite-silk-mouse { 2093 | @include sprite-silk; 2094 | background-position: -320px -256px; 2095 | } 2096 | 2097 | .sprite-silk-monitor:link { 2098 | @include sprite-silk; 2099 | background-position: -320px -272px; 2100 | } 2101 | 2102 | .sprite-silk-monitor_lightning { 2103 | @include sprite-silk; 2104 | background-position: -320px -288px; 2105 | } 2106 | 2107 | .sprite-silk-monitor_go { 2108 | @include sprite-silk; 2109 | background-position: -320px -304px; 2110 | } 2111 | 2112 | .sprite-silk-monitor_error { 2113 | @include sprite-silk; 2114 | background-position: 0px -320px; 2115 | } 2116 | 2117 | .sprite-silk-monitor_edit { 2118 | @include sprite-silk; 2119 | background-position: -16px -320px; 2120 | } 2121 | 2122 | .sprite-silk-monitor_delete { 2123 | @include sprite-silk; 2124 | background-position: -32px -320px; 2125 | } 2126 | 2127 | .sprite-silk-monitor_add { 2128 | @include sprite-silk; 2129 | background-position: -48px -320px; 2130 | } 2131 | 2132 | .sprite-silk-monitor { 2133 | @include sprite-silk; 2134 | background-position: -64px -320px; 2135 | } 2136 | 2137 | .sprite-silk-money_yen { 2138 | @include sprite-silk; 2139 | background-position: -80px -320px; 2140 | } 2141 | 2142 | .sprite-silk-money_pound { 2143 | @include sprite-silk; 2144 | background-position: -96px -320px; 2145 | } 2146 | 2147 | .sprite-silk-money_euro { 2148 | @include sprite-silk; 2149 | background-position: -112px -320px; 2150 | } 2151 | 2152 | .sprite-silk-money_dollar { 2153 | @include sprite-silk; 2154 | background-position: -128px -320px; 2155 | } 2156 | 2157 | .sprite-silk-money_delete { 2158 | @include sprite-silk; 2159 | background-position: -144px -320px; 2160 | } 2161 | 2162 | .sprite-silk-money_add { 2163 | @include sprite-silk; 2164 | background-position: -160px -320px; 2165 | } 2166 | 2167 | .sprite-silk-money { 2168 | @include sprite-silk; 2169 | background-position: -176px -320px; 2170 | } 2171 | 2172 | .sprite-silk-medal_silver_delete { 2173 | @include sprite-silk; 2174 | background-position: -192px -320px; 2175 | } 2176 | 2177 | .sprite-silk-medal_silver_add { 2178 | @include sprite-silk; 2179 | background-position: -208px -320px; 2180 | } 2181 | 2182 | .sprite-silk-medal_silver_3 { 2183 | @include sprite-silk; 2184 | background-position: -224px -320px; 2185 | } 2186 | 2187 | .sprite-silk-medal_silver_2 { 2188 | @include sprite-silk; 2189 | background-position: -240px -320px; 2190 | } 2191 | 2192 | .sprite-silk-medal_silver_1 { 2193 | @include sprite-silk; 2194 | background-position: -256px -320px; 2195 | } 2196 | 2197 | .sprite-silk-medal_gold_delete { 2198 | @include sprite-silk; 2199 | background-position: -272px -320px; 2200 | } 2201 | 2202 | .sprite-silk-medal_gold_add { 2203 | @include sprite-silk; 2204 | background-position: -288px -320px; 2205 | } 2206 | 2207 | .sprite-silk-medal_gold_3 { 2208 | @include sprite-silk; 2209 | background-position: -304px -320px; 2210 | } 2211 | 2212 | .sprite-silk-medal_gold_2 { 2213 | @include sprite-silk; 2214 | background-position: -320px -320px; 2215 | } 2216 | 2217 | .sprite-silk-medal_gold_1 { 2218 | @include sprite-silk; 2219 | background-position: -336px 0px; 2220 | } 2221 | 2222 | .sprite-silk-medal_bronze_delete { 2223 | @include sprite-silk; 2224 | background-position: -336px -16px; 2225 | } 2226 | 2227 | .sprite-silk-medal_bronze_add { 2228 | @include sprite-silk; 2229 | background-position: -336px -32px; 2230 | } 2231 | 2232 | .sprite-silk-medal_bronze_3 { 2233 | @include sprite-silk; 2234 | background-position: -336px -48px; 2235 | } 2236 | 2237 | .sprite-silk-medal_bronze_2 { 2238 | @include sprite-silk; 2239 | background-position: -336px -64px; 2240 | } 2241 | 2242 | .sprite-silk-medal_bronze_1 { 2243 | @include sprite-silk; 2244 | background-position: -336px -80px; 2245 | } 2246 | 2247 | .sprite-silk-map_magnify { 2248 | @include sprite-silk; 2249 | background-position: -336px -96px; 2250 | } 2251 | 2252 | .sprite-silk-map_go { 2253 | @include sprite-silk; 2254 | background-position: -336px -112px; 2255 | } 2256 | 2257 | .sprite-silk-map_edit { 2258 | @include sprite-silk; 2259 | background-position: -336px -128px; 2260 | } 2261 | 2262 | .sprite-silk-map_delete { 2263 | @include sprite-silk; 2264 | background-position: -336px -144px; 2265 | } 2266 | 2267 | .sprite-silk-map_add { 2268 | @include sprite-silk; 2269 | background-position: -336px -160px; 2270 | } 2271 | 2272 | .sprite-silk-map { 2273 | @include sprite-silk; 2274 | background-position: -336px -176px; 2275 | } 2276 | 2277 | .sprite-silk-male { 2278 | @include sprite-silk; 2279 | background-position: -336px -192px; 2280 | } 2281 | 2282 | .sprite-silk-magnifier_zoom_in { 2283 | @include sprite-silk; 2284 | background-position: -336px -208px; 2285 | } 2286 | 2287 | .sprite-silk-magnifier { 2288 | @include sprite-silk; 2289 | background-position: -336px -224px; 2290 | } 2291 | 2292 | .sprite-silk-magifier_zoom_out { 2293 | @include sprite-silk; 2294 | background-position: -336px -240px; 2295 | } 2296 | 2297 | .sprite-silk-lorry:link { 2298 | @include sprite-silk; 2299 | background-position: -336px -256px; 2300 | } 2301 | 2302 | .sprite-silk-lorry_go { 2303 | @include sprite-silk; 2304 | background-position: -336px -272px; 2305 | } 2306 | 2307 | .sprite-silk-lorry_flatbed { 2308 | @include sprite-silk; 2309 | background-position: -336px -288px; 2310 | } 2311 | 2312 | .sprite-silk-lorry_error { 2313 | @include sprite-silk; 2314 | background-position: -336px -304px; 2315 | } 2316 | 2317 | .sprite-silk-lorry_delete { 2318 | @include sprite-silk; 2319 | background-position: -336px -320px; 2320 | } 2321 | 2322 | .sprite-silk-lorry_add { 2323 | @include sprite-silk; 2324 | background-position: 0px -336px; 2325 | } 2326 | 2327 | .sprite-silk-lorry { 2328 | @include sprite-silk; 2329 | background-position: -16px -336px; 2330 | } 2331 | 2332 | .sprite-silk-lock_open { 2333 | @include sprite-silk; 2334 | background-position: -32px -336px; 2335 | } 2336 | 2337 | .sprite-silk-lock_go { 2338 | @include sprite-silk; 2339 | background-position: -48px -336px; 2340 | } 2341 | 2342 | .sprite-silk-lock_edit { 2343 | @include sprite-silk; 2344 | background-position: -64px -336px; 2345 | } 2346 | 2347 | .sprite-silk-lock_delete { 2348 | @include sprite-silk; 2349 | background-position: -80px -336px; 2350 | } 2351 | 2352 | .sprite-silk-lock_break { 2353 | @include sprite-silk; 2354 | background-position: -96px -336px; 2355 | } 2356 | 2357 | .sprite-silk-lock_add { 2358 | @include sprite-silk; 2359 | background-position: -112px -336px; 2360 | } 2361 | 2362 | .sprite-silk-lock { 2363 | @include sprite-silk; 2364 | background-position: -128px -336px; 2365 | } 2366 | 2367 | .sprite-silk-link_go:link { 2368 | @include sprite-silk; 2369 | background-position: -144px -336px; 2370 | } 2371 | 2372 | .sprite-silk-link_error:link { 2373 | @include sprite-silk; 2374 | background-position: -160px -336px; 2375 | } 2376 | 2377 | .sprite-silk-link_edit:link { 2378 | @include sprite-silk; 2379 | background-position: -176px -336px; 2380 | } 2381 | 2382 | .sprite-silk-link_delete:link { 2383 | @include sprite-silk; 2384 | background-position: -192px -336px; 2385 | } 2386 | 2387 | .sprite-silk-link_break:link { 2388 | @include sprite-silk; 2389 | background-position: -208px -336px; 2390 | } 2391 | 2392 | .sprite-silk-link_add:link { 2393 | @include sprite-silk; 2394 | background-position: -224px -336px; 2395 | } 2396 | 2397 | .sprite-silk-link:link { 2398 | @include sprite-silk; 2399 | background-position: -240px -336px; 2400 | } 2401 | 2402 | .sprite-silk-lightning_go { 2403 | @include sprite-silk; 2404 | background-position: -256px -336px; 2405 | } 2406 | 2407 | .sprite-silk-lightning_delete { 2408 | @include sprite-silk; 2409 | background-position: -272px -336px; 2410 | } 2411 | 2412 | .sprite-silk-lightning_add { 2413 | @include sprite-silk; 2414 | background-position: -288px -336px; 2415 | } 2416 | 2417 | .sprite-silk-lightning { 2418 | @include sprite-silk; 2419 | background-position: -304px -336px; 2420 | } 2421 | 2422 | .sprite-silk-lightbulb_off { 2423 | @include sprite-silk; 2424 | background-position: -320px -336px; 2425 | } 2426 | 2427 | .sprite-silk-lightbulb_delete { 2428 | @include sprite-silk; 2429 | background-position: -336px -336px; 2430 | } 2431 | 2432 | .sprite-silk-lightbulb_add { 2433 | @include sprite-silk; 2434 | background-position: -352px 0px; 2435 | } 2436 | 2437 | .sprite-silk-lightbulb { 2438 | @include sprite-silk; 2439 | background-position: -352px -16px; 2440 | } 2441 | 2442 | .sprite-silk-layout_sidebar { 2443 | @include sprite-silk; 2444 | background-position: -352px -32px; 2445 | } 2446 | 2447 | .sprite-silk-layout:link { 2448 | @include sprite-silk; 2449 | background-position: -352px -48px; 2450 | } 2451 | 2452 | .sprite-silk-layout_header { 2453 | @include sprite-silk; 2454 | background-position: -352px -64px; 2455 | } 2456 | 2457 | .sprite-silk-layout_error { 2458 | @include sprite-silk; 2459 | background-position: -352px -80px; 2460 | } 2461 | 2462 | .sprite-silk-layout_edit { 2463 | @include sprite-silk; 2464 | background-position: -352px -96px; 2465 | } 2466 | 2467 | .sprite-silk-layout_delete { 2468 | @include sprite-silk; 2469 | background-position: -352px -112px; 2470 | } 2471 | 2472 | .sprite-silk-layout_content { 2473 | @include sprite-silk; 2474 | background-position: -352px -128px; 2475 | } 2476 | 2477 | .sprite-silk-layout_add { 2478 | @include sprite-silk; 2479 | background-position: -352px -144px; 2480 | } 2481 | 2482 | .sprite-silk-layout { 2483 | @include sprite-silk; 2484 | background-position: -352px -160px; 2485 | } 2486 | 2487 | .sprite-silk-layers { 2488 | @include sprite-silk; 2489 | background-position: -352px -176px; 2490 | } 2491 | 2492 | .sprite-silk-keyboard_magnify { 2493 | @include sprite-silk; 2494 | background-position: -352px -192px; 2495 | } 2496 | 2497 | .sprite-silk-keyboard_delete { 2498 | @include sprite-silk; 2499 | background-position: -352px -208px; 2500 | } 2501 | 2502 | .sprite-silk-keyboard_add { 2503 | @include sprite-silk; 2504 | background-position: -352px -224px; 2505 | } 2506 | 2507 | .sprite-silk-keyboard { 2508 | @include sprite-silk; 2509 | background-position: -352px -240px; 2510 | } 2511 | 2512 | .sprite-silk-key_go { 2513 | @include sprite-silk; 2514 | background-position: -352px -256px; 2515 | } 2516 | 2517 | .sprite-silk-key_delete { 2518 | @include sprite-silk; 2519 | background-position: -352px -272px; 2520 | } 2521 | 2522 | .sprite-silk-key_add { 2523 | @include sprite-silk; 2524 | background-position: -352px -288px; 2525 | } 2526 | 2527 | .sprite-silk-key { 2528 | @include sprite-silk; 2529 | background-position: -352px -304px; 2530 | } 2531 | 2532 | .sprite-silk-joystick_error { 2533 | @include sprite-silk; 2534 | background-position: -352px -320px; 2535 | } 2536 | 2537 | .sprite-silk-joystick_delete { 2538 | @include sprite-silk; 2539 | background-position: -352px -336px; 2540 | } 2541 | 2542 | .sprite-silk-joystick_add { 2543 | @include sprite-silk; 2544 | background-position: 0px -352px; 2545 | } 2546 | 2547 | .sprite-silk-joystick { 2548 | @include sprite-silk; 2549 | background-position: -16px -352px; 2550 | } 2551 | 2552 | .sprite-silk-ipod_sound { 2553 | @include sprite-silk; 2554 | background-position: -32px -352px; 2555 | } 2556 | 2557 | .sprite-silk-ipod_cast_delete { 2558 | @include sprite-silk; 2559 | background-position: -48px -352px; 2560 | } 2561 | 2562 | .sprite-silk-ipod_cast_add { 2563 | @include sprite-silk; 2564 | background-position: -64px -352px; 2565 | } 2566 | 2567 | .sprite-silk-ipod_cast { 2568 | @include sprite-silk; 2569 | background-position: -80px -352px; 2570 | } 2571 | 2572 | .sprite-silk-ipod { 2573 | @include sprite-silk; 2574 | background-position: -96px -352px; 2575 | } 2576 | 2577 | .sprite-silk-information { 2578 | @include sprite-silk; 2579 | background-position: -112px -352px; 2580 | } 2581 | 2582 | .sprite-silk-images { 2583 | @include sprite-silk; 2584 | background-position: -128px -352px; 2585 | } 2586 | 2587 | .sprite-silk-image:link { 2588 | @include sprite-silk; 2589 | background-position: -144px -352px; 2590 | } 2591 | 2592 | .sprite-silk-image_edit { 2593 | @include sprite-silk; 2594 | background-position: -160px -352px; 2595 | } 2596 | 2597 | .sprite-silk-image_delete { 2598 | @include sprite-silk; 2599 | background-position: -176px -352px; 2600 | } 2601 | 2602 | .sprite-silk-image_add { 2603 | @include sprite-silk; 2604 | background-position: -192px -352px; 2605 | } 2606 | 2607 | .sprite-silk-image { 2608 | @include sprite-silk; 2609 | background-position: -208px -352px; 2610 | } 2611 | 2612 | .sprite-silk-html_valid { 2613 | @include sprite-silk; 2614 | background-position: -224px -352px; 2615 | } 2616 | 2617 | .sprite-silk-html_go { 2618 | @include sprite-silk; 2619 | background-position: -240px -352px; 2620 | } 2621 | 2622 | .sprite-silk-html_delete { 2623 | @include sprite-silk; 2624 | background-position: -256px -352px; 2625 | } 2626 | 2627 | .sprite-silk-html_add { 2628 | @include sprite-silk; 2629 | background-position: -272px -352px; 2630 | } 2631 | 2632 | .sprite-silk-html { 2633 | @include sprite-silk; 2634 | background-position: -288px -352px; 2635 | } 2636 | 2637 | .sprite-silk-house:link { 2638 | @include sprite-silk; 2639 | background-position: -304px -352px; 2640 | } 2641 | 2642 | .sprite-silk-house_go { 2643 | @include sprite-silk; 2644 | background-position: -320px -352px; 2645 | } 2646 | 2647 | .sprite-silk-house { 2648 | @include sprite-silk; 2649 | background-position: -336px -352px; 2650 | } 2651 | 2652 | .sprite-silk-hourglass:link { 2653 | @include sprite-silk; 2654 | background-position: -352px -352px; 2655 | } 2656 | 2657 | .sprite-silk-hourglass_go { 2658 | @include sprite-silk; 2659 | background-position: -368px 0px; 2660 | } 2661 | 2662 | .sprite-silk-hourglass_delete { 2663 | @include sprite-silk; 2664 | background-position: -368px -16px; 2665 | } 2666 | 2667 | .sprite-silk-hourglass_add { 2668 | @include sprite-silk; 2669 | background-position: -368px -32px; 2670 | } 2671 | 2672 | .sprite-silk-hourglass { 2673 | @include sprite-silk; 2674 | background-position: -368px -48px; 2675 | } 2676 | 2677 | .sprite-silk-help { 2678 | @include sprite-silk; 2679 | background-position: -368px -64px; 2680 | } 2681 | 2682 | .sprite-silk-heart_delete { 2683 | @include sprite-silk; 2684 | background-position: -368px -80px; 2685 | } 2686 | 2687 | .sprite-silk-heart_add { 2688 | @include sprite-silk; 2689 | background-position: -368px -96px; 2690 | } 2691 | 2692 | .sprite-silk-heart { 2693 | @include sprite-silk; 2694 | background-position: -368px -112px; 2695 | } 2696 | 2697 | .sprite-silk-group:link { 2698 | @include sprite-silk; 2699 | background-position: -368px -128px; 2700 | } 2701 | 2702 | .sprite-silk-group_key { 2703 | @include sprite-silk; 2704 | background-position: -368px -144px; 2705 | } 2706 | 2707 | .sprite-silk-group_go { 2708 | @include sprite-silk; 2709 | background-position: -368px -160px; 2710 | } 2711 | 2712 | .sprite-silk-group_gear { 2713 | @include sprite-silk; 2714 | background-position: -368px -176px; 2715 | } 2716 | 2717 | .sprite-silk-group_error { 2718 | @include sprite-silk; 2719 | background-position: -368px -192px; 2720 | } 2721 | 2722 | .sprite-silk-group_edit { 2723 | @include sprite-silk; 2724 | background-position: -368px -208px; 2725 | } 2726 | 2727 | .sprite-silk-group_delete { 2728 | @include sprite-silk; 2729 | background-position: -368px -224px; 2730 | } 2731 | 2732 | .sprite-silk-group_add { 2733 | @include sprite-silk; 2734 | background-position: -368px -240px; 2735 | } 2736 | 2737 | .sprite-silk-group { 2738 | @include sprite-silk; 2739 | background-position: -368px -256px; 2740 | } 2741 | 2742 | .sprite-silk-font_go { 2743 | @include sprite-silk; 2744 | background-position: -368px -272px; 2745 | } 2746 | 2747 | .sprite-silk-font_delete { 2748 | @include sprite-silk; 2749 | background-position: -368px -288px; 2750 | } 2751 | 2752 | .sprite-silk-font_add { 2753 | @include sprite-silk; 2754 | background-position: -368px -304px; 2755 | } 2756 | 2757 | .sprite-silk-font { 2758 | @include sprite-silk; 2759 | background-position: -368px -320px; 2760 | } 2761 | 2762 | .sprite-silk-folder_wrench { 2763 | @include sprite-silk; 2764 | background-position: -368px -336px; 2765 | } 2766 | 2767 | .sprite-silk-folder_user { 2768 | @include sprite-silk; 2769 | background-position: -368px -352px; 2770 | } 2771 | 2772 | .sprite-silk-folder_table { 2773 | @include sprite-silk; 2774 | background-position: 0px -368px; 2775 | } 2776 | 2777 | .sprite-silk-folder_star { 2778 | @include sprite-silk; 2779 | background-position: -16px -368px; 2780 | } 2781 | 2782 | .sprite-silk-folder_picture { 2783 | @include sprite-silk; 2784 | background-position: -32px -368px; 2785 | } 2786 | 2787 | .sprite-silk-folder_palette { 2788 | @include sprite-silk; 2789 | background-position: -48px -368px; 2790 | } 2791 | 2792 | .sprite-silk-folder_page_white { 2793 | @include sprite-silk; 2794 | background-position: -64px -368px; 2795 | } 2796 | 2797 | .sprite-silk-folder_page { 2798 | @include sprite-silk; 2799 | background-position: -80px -368px; 2800 | } 2801 | 2802 | .sprite-silk-folder_magnify { 2803 | @include sprite-silk; 2804 | background-position: -96px -368px; 2805 | } 2806 | 2807 | .sprite-silk-folder:link { 2808 | @include sprite-silk; 2809 | background-position: -112px -368px; 2810 | } 2811 | 2812 | .sprite-silk-folder_lightbulb { 2813 | @include sprite-silk; 2814 | background-position: -128px -368px; 2815 | } 2816 | 2817 | .sprite-silk-folder_key { 2818 | @include sprite-silk; 2819 | background-position: -144px -368px; 2820 | } 2821 | 2822 | .sprite-silk-folder_image { 2823 | @include sprite-silk; 2824 | background-position: -160px -368px; 2825 | } 2826 | 2827 | .sprite-silk-folder_heart { 2828 | @include sprite-silk; 2829 | background-position: -176px -368px; 2830 | } 2831 | 2832 | .sprite-silk-folder_go { 2833 | @include sprite-silk; 2834 | background-position: -192px -368px; 2835 | } 2836 | 2837 | .sprite-silk-folder_find { 2838 | @include sprite-silk; 2839 | background-position: -208px -368px; 2840 | } 2841 | 2842 | .sprite-silk-folder_feed { 2843 | @include sprite-silk; 2844 | background-position: -224px -368px; 2845 | } 2846 | 2847 | .sprite-silk-folder_explore { 2848 | @include sprite-silk; 2849 | background-position: -240px -368px; 2850 | } 2851 | 2852 | .sprite-silk-folder_error { 2853 | @include sprite-silk; 2854 | background-position: -256px -368px; 2855 | } 2856 | 2857 | .sprite-silk-folder_edit { 2858 | @include sprite-silk; 2859 | background-position: -272px -368px; 2860 | } 2861 | 2862 | .sprite-silk-folder_delete { 2863 | @include sprite-silk; 2864 | background-position: -288px -368px; 2865 | } 2866 | 2867 | .sprite-silk-folder_database { 2868 | @include sprite-silk; 2869 | background-position: -304px -368px; 2870 | } 2871 | 2872 | .sprite-silk-folder_camera { 2873 | @include sprite-silk; 2874 | background-position: -320px -368px; 2875 | } 2876 | 2877 | .sprite-silk-folder_bug { 2878 | @include sprite-silk; 2879 | background-position: -336px -368px; 2880 | } 2881 | 2882 | .sprite-silk-folder_brick { 2883 | @include sprite-silk; 2884 | background-position: -352px -368px; 2885 | } 2886 | 2887 | .sprite-silk-folder_bell { 2888 | @include sprite-silk; 2889 | background-position: -368px -368px; 2890 | } 2891 | 2892 | .sprite-silk-folder_add { 2893 | @include sprite-silk; 2894 | background-position: -384px 0px; 2895 | } 2896 | 2897 | .sprite-silk-folder { 2898 | @include sprite-silk; 2899 | background-position: -384px -16px; 2900 | } 2901 | 2902 | .sprite-silk-flag_yellow { 2903 | @include sprite-silk; 2904 | background-position: -384px -32px; 2905 | } 2906 | 2907 | .sprite-silk-flag_red { 2908 | @include sprite-silk; 2909 | background-position: -384px -48px; 2910 | } 2911 | 2912 | .sprite-silk-flag_purple { 2913 | @include sprite-silk; 2914 | background-position: -384px -64px; 2915 | } 2916 | 2917 | .sprite-silk-flag_pink { 2918 | @include sprite-silk; 2919 | background-position: -384px -80px; 2920 | } 2921 | 2922 | .sprite-silk-flag_orange { 2923 | @include sprite-silk; 2924 | background-position: -384px -96px; 2925 | } 2926 | 2927 | .sprite-silk-flag_green { 2928 | @include sprite-silk; 2929 | background-position: -384px -112px; 2930 | } 2931 | 2932 | .sprite-silk-flag_blue { 2933 | @include sprite-silk; 2934 | background-position: -384px -128px; 2935 | } 2936 | 2937 | .sprite-silk-find { 2938 | @include sprite-silk; 2939 | background-position: -384px -144px; 2940 | } 2941 | 2942 | .sprite-silk-film_save { 2943 | @include sprite-silk; 2944 | background-position: -384px -160px; 2945 | } 2946 | 2947 | .sprite-silk-film:link { 2948 | @include sprite-silk; 2949 | background-position: -384px -176px; 2950 | } 2951 | 2952 | .sprite-silk-film_key { 2953 | @include sprite-silk; 2954 | background-position: -384px -192px; 2955 | } 2956 | 2957 | .sprite-silk-film_go { 2958 | @include sprite-silk; 2959 | background-position: -384px -208px; 2960 | } 2961 | 2962 | .sprite-silk-film_error { 2963 | @include sprite-silk; 2964 | background-position: -384px -224px; 2965 | } 2966 | 2967 | .sprite-silk-film_edit { 2968 | @include sprite-silk; 2969 | background-position: -384px -240px; 2970 | } 2971 | 2972 | .sprite-silk-film_delete { 2973 | @include sprite-silk; 2974 | background-position: -384px -256px; 2975 | } 2976 | 2977 | .sprite-silk-film_add { 2978 | @include sprite-silk; 2979 | background-position: -384px -272px; 2980 | } 2981 | 2982 | .sprite-silk-film { 2983 | @include sprite-silk; 2984 | background-position: -384px -288px; 2985 | } 2986 | 2987 | .sprite-silk-female { 2988 | @include sprite-silk; 2989 | background-position: -384px -304px; 2990 | } 2991 | 2992 | .sprite-silk-feed_magnify { 2993 | @include sprite-silk; 2994 | background-position: -384px -320px; 2995 | } 2996 | 2997 | .sprite-silk-feed:link { 2998 | @include sprite-silk; 2999 | background-position: -384px -336px; 3000 | } 3001 | 3002 | .sprite-silk-feed_key { 3003 | @include sprite-silk; 3004 | background-position: -384px -352px; 3005 | } 3006 | 3007 | .sprite-silk-feed_go { 3008 | @include sprite-silk; 3009 | background-position: -384px -368px; 3010 | } 3011 | 3012 | .sprite-silk-feed_error { 3013 | @include sprite-silk; 3014 | background-position: 0px -384px; 3015 | } 3016 | 3017 | .sprite-silk-feed_edit { 3018 | @include sprite-silk; 3019 | background-position: -16px -384px; 3020 | } 3021 | 3022 | .sprite-silk-feed_disk { 3023 | @include sprite-silk; 3024 | background-position: -32px -384px; 3025 | } 3026 | 3027 | .sprite-silk-feed_delete { 3028 | @include sprite-silk; 3029 | background-position: -48px -384px; 3030 | } 3031 | 3032 | .sprite-silk-feed_add { 3033 | @include sprite-silk; 3034 | background-position: -64px -384px; 3035 | } 3036 | 3037 | .sprite-silk-feed { 3038 | @include sprite-silk; 3039 | background-position: -80px -384px; 3040 | } 3041 | 3042 | .sprite-silk-eye { 3043 | @include sprite-silk; 3044 | background-position: -96px -384px; 3045 | } 3046 | 3047 | .sprite-silk-exclamation { 3048 | @include sprite-silk; 3049 | background-position: -112px -384px; 3050 | } 3051 | 3052 | .sprite-silk-error_go { 3053 | @include sprite-silk; 3054 | background-position: -128px -384px; 3055 | } 3056 | 3057 | .sprite-silk-error_delete { 3058 | @include sprite-silk; 3059 | background-position: -144px -384px; 3060 | } 3061 | 3062 | .sprite-silk-error_add { 3063 | @include sprite-silk; 3064 | background-position: -160px -384px; 3065 | } 3066 | 3067 | .sprite-silk-error { 3068 | @include sprite-silk; 3069 | background-position: -176px -384px; 3070 | } 3071 | 3072 | .sprite-silk-emoticon_wink { 3073 | @include sprite-silk; 3074 | background-position: -192px -384px; 3075 | } 3076 | 3077 | .sprite-silk-emoticon_waii { 3078 | @include sprite-silk; 3079 | background-position: -208px -384px; 3080 | } 3081 | 3082 | .sprite-silk-emoticon_unhappy { 3083 | @include sprite-silk; 3084 | background-position: -224px -384px; 3085 | } 3086 | 3087 | .sprite-silk-emoticon_tongue { 3088 | @include sprite-silk; 3089 | background-position: -240px -384px; 3090 | } 3091 | 3092 | .sprite-silk-emoticon_surprised { 3093 | @include sprite-silk; 3094 | background-position: -256px -384px; 3095 | } 3096 | 3097 | .sprite-silk-emoticon_smile { 3098 | @include sprite-silk; 3099 | background-position: -272px -384px; 3100 | } 3101 | 3102 | .sprite-silk-emoticon_happy { 3103 | @include sprite-silk; 3104 | background-position: -288px -384px; 3105 | } 3106 | 3107 | .sprite-silk-emoticon_grin { 3108 | @include sprite-silk; 3109 | background-position: -304px -384px; 3110 | } 3111 | 3112 | .sprite-silk-emoticon_evilgrin { 3113 | @include sprite-silk; 3114 | background-position: -320px -384px; 3115 | } 3116 | 3117 | .sprite-silk-email_open_image { 3118 | @include sprite-silk; 3119 | background-position: -336px -384px; 3120 | } 3121 | 3122 | .sprite-silk-email_open { 3123 | @include sprite-silk; 3124 | background-position: -352px -384px; 3125 | } 3126 | 3127 | .sprite-silk-email:link { 3128 | @include sprite-silk; 3129 | background-position: -368px -384px; 3130 | } 3131 | 3132 | .sprite-silk-email_go { 3133 | @include sprite-silk; 3134 | background-position: -384px -384px; 3135 | } 3136 | 3137 | .sprite-silk-email_error { 3138 | @include sprite-silk; 3139 | background-position: -400px 0px; 3140 | } 3141 | 3142 | .sprite-silk-email_edit { 3143 | @include sprite-silk; 3144 | background-position: -400px -16px; 3145 | } 3146 | 3147 | .sprite-silk-email_delete { 3148 | @include sprite-silk; 3149 | background-position: -400px -32px; 3150 | } 3151 | 3152 | .sprite-silk-email_attach { 3153 | @include sprite-silk; 3154 | background-position: -400px -48px; 3155 | } 3156 | 3157 | .sprite-silk-email_add { 3158 | @include sprite-silk; 3159 | background-position: -400px -64px; 3160 | } 3161 | 3162 | .sprite-silk-email { 3163 | @include sprite-silk; 3164 | background-position: -400px -80px; 3165 | } 3166 | 3167 | .sprite-silk-dvd:link { 3168 | @include sprite-silk; 3169 | background-position: -400px -96px; 3170 | } 3171 | 3172 | .sprite-silk-dvd_key { 3173 | @include sprite-silk; 3174 | background-position: -400px -112px; 3175 | } 3176 | 3177 | .sprite-silk-dvd_go { 3178 | @include sprite-silk; 3179 | background-position: -400px -128px; 3180 | } 3181 | 3182 | .sprite-silk-dvd_error { 3183 | @include sprite-silk; 3184 | background-position: -400px -144px; 3185 | } 3186 | 3187 | .sprite-silk-dvd_edit { 3188 | @include sprite-silk; 3189 | background-position: -400px -160px; 3190 | } 3191 | 3192 | .sprite-silk-dvd_delete { 3193 | @include sprite-silk; 3194 | background-position: -400px -176px; 3195 | } 3196 | 3197 | .sprite-silk-dvd_add { 3198 | @include sprite-silk; 3199 | background-position: -400px -192px; 3200 | } 3201 | 3202 | .sprite-silk-dvd { 3203 | @include sprite-silk; 3204 | background-position: -400px -208px; 3205 | } 3206 | 3207 | .sprite-silk-drive_web { 3208 | @include sprite-silk; 3209 | background-position: -400px -224px; 3210 | } 3211 | 3212 | .sprite-silk-drive_user { 3213 | @include sprite-silk; 3214 | background-position: -400px -240px; 3215 | } 3216 | 3217 | .sprite-silk-drive_rename { 3218 | @include sprite-silk; 3219 | background-position: -400px -256px; 3220 | } 3221 | 3222 | .sprite-silk-drive_network { 3223 | @include sprite-silk; 3224 | background-position: -400px -272px; 3225 | } 3226 | 3227 | .sprite-silk-drive_magnify { 3228 | @include sprite-silk; 3229 | background-position: -400px -288px; 3230 | } 3231 | 3232 | .sprite-silk-drive:link { 3233 | @include sprite-silk; 3234 | background-position: -400px -304px; 3235 | } 3236 | 3237 | .sprite-silk-drive_key { 3238 | @include sprite-silk; 3239 | background-position: -400px -320px; 3240 | } 3241 | 3242 | .sprite-silk-drive_go { 3243 | @include sprite-silk; 3244 | background-position: -400px -336px; 3245 | } 3246 | 3247 | .sprite-silk-drive_error { 3248 | @include sprite-silk; 3249 | background-position: -400px -352px; 3250 | } 3251 | 3252 | .sprite-silk-drive_edit { 3253 | @include sprite-silk; 3254 | background-position: -400px -368px; 3255 | } 3256 | 3257 | .sprite-silk-drive_disk { 3258 | @include sprite-silk; 3259 | background-position: -400px -384px; 3260 | } 3261 | 3262 | .sprite-silk-drive_delete { 3263 | @include sprite-silk; 3264 | background-position: 0px -400px; 3265 | } 3266 | 3267 | .sprite-silk-drive_cd_empty { 3268 | @include sprite-silk; 3269 | background-position: -16px -400px; 3270 | } 3271 | 3272 | .sprite-silk-drive_cd { 3273 | @include sprite-silk; 3274 | background-position: -32px -400px; 3275 | } 3276 | 3277 | .sprite-silk-drive_burn { 3278 | @include sprite-silk; 3279 | background-position: -48px -400px; 3280 | } 3281 | 3282 | .sprite-silk-drive_add { 3283 | @include sprite-silk; 3284 | background-position: -64px -400px; 3285 | } 3286 | 3287 | .sprite-silk-drive { 3288 | @include sprite-silk; 3289 | background-position: -80px -400px; 3290 | } 3291 | 3292 | .sprite-silk-drink_empty { 3293 | @include sprite-silk; 3294 | background-position: -96px -400px; 3295 | } 3296 | 3297 | .sprite-silk-drink { 3298 | @include sprite-silk; 3299 | background-position: -112px -400px; 3300 | } 3301 | 3302 | .sprite-silk-door_out { 3303 | @include sprite-silk; 3304 | background-position: -128px -400px; 3305 | } 3306 | 3307 | .sprite-silk-door_open { 3308 | @include sprite-silk; 3309 | background-position: -144px -400px; 3310 | } 3311 | 3312 | .sprite-silk-door_in { 3313 | @include sprite-silk; 3314 | background-position: -160px -400px; 3315 | } 3316 | 3317 | .sprite-silk-door { 3318 | @include sprite-silk; 3319 | background-position: -176px -400px; 3320 | } 3321 | 3322 | .sprite-silk-disk_multiple { 3323 | @include sprite-silk; 3324 | background-position: -192px -400px; 3325 | } 3326 | 3327 | .sprite-silk-disk { 3328 | @include sprite-silk; 3329 | background-position: -208px -400px; 3330 | } 3331 | 3332 | .sprite-silk-disconnect { 3333 | @include sprite-silk; 3334 | background-position: -224px -400px; 3335 | } 3336 | 3337 | .sprite-silk-delete { 3338 | @include sprite-silk; 3339 | background-position: -240px -400px; 3340 | } 3341 | 3342 | .sprite-silk-date_previous { 3343 | @include sprite-silk; 3344 | background-position: -256px -400px; 3345 | } 3346 | 3347 | .sprite-silk-date_next { 3348 | @include sprite-silk; 3349 | background-position: -272px -400px; 3350 | } 3351 | 3352 | .sprite-silk-date_magnify { 3353 | @include sprite-silk; 3354 | background-position: -288px -400px; 3355 | } 3356 | 3357 | .sprite-silk-date:link { 3358 | @include sprite-silk; 3359 | background-position: -304px -400px; 3360 | } 3361 | 3362 | .sprite-silk-date_go { 3363 | @include sprite-silk; 3364 | background-position: -320px -400px; 3365 | } 3366 | 3367 | .sprite-silk-date_error { 3368 | @include sprite-silk; 3369 | background-position: -336px -400px; 3370 | } 3371 | 3372 | .sprite-silk-date_edit { 3373 | @include sprite-silk; 3374 | background-position: -352px -400px; 3375 | } 3376 | 3377 | .sprite-silk-date_delete { 3378 | @include sprite-silk; 3379 | background-position: -368px -400px; 3380 | } 3381 | 3382 | .sprite-silk-date_add { 3383 | @include sprite-silk; 3384 | background-position: -384px -400px; 3385 | } 3386 | 3387 | .sprite-silk-date { 3388 | @include sprite-silk; 3389 | background-position: -400px -400px; 3390 | } 3391 | 3392 | .sprite-silk-database_table { 3393 | @include sprite-silk; 3394 | background-position: -416px 0px; 3395 | } 3396 | 3397 | .sprite-silk-database_save { 3398 | @include sprite-silk; 3399 | background-position: -416px -16px; 3400 | } 3401 | 3402 | .sprite-silk-database_refresh { 3403 | @include sprite-silk; 3404 | background-position: -416px -32px; 3405 | } 3406 | 3407 | .sprite-silk-database:link { 3408 | @include sprite-silk; 3409 | background-position: -416px -48px; 3410 | } 3411 | 3412 | .sprite-silk-database_lightning { 3413 | @include sprite-silk; 3414 | background-position: -416px -64px; 3415 | } 3416 | 3417 | .sprite-silk-database_key { 3418 | @include sprite-silk; 3419 | background-position: -416px -80px; 3420 | } 3421 | 3422 | .sprite-silk-database_go { 3423 | @include sprite-silk; 3424 | background-position: -416px -96px; 3425 | } 3426 | 3427 | .sprite-silk-database_gear { 3428 | @include sprite-silk; 3429 | background-position: -416px -112px; 3430 | } 3431 | 3432 | .sprite-silk-database_error { 3433 | @include sprite-silk; 3434 | background-position: -416px -128px; 3435 | } 3436 | 3437 | .sprite-silk-database_edit { 3438 | @include sprite-silk; 3439 | background-position: -416px -144px; 3440 | } 3441 | 3442 | .sprite-silk-database_delete { 3443 | @include sprite-silk; 3444 | background-position: -416px -160px; 3445 | } 3446 | 3447 | .sprite-silk-database_connect { 3448 | @include sprite-silk; 3449 | background-position: -416px -176px; 3450 | } 3451 | 3452 | .sprite-silk-database_add { 3453 | @include sprite-silk; 3454 | background-position: -416px -192px; 3455 | } 3456 | 3457 | .sprite-silk-database { 3458 | @include sprite-silk; 3459 | background-position: -416px -208px; 3460 | } 3461 | 3462 | .sprite-silk-cut_red { 3463 | @include sprite-silk; 3464 | background-position: -416px -224px; 3465 | } 3466 | 3467 | .sprite-silk-cut { 3468 | @include sprite-silk; 3469 | background-position: -416px -240px; 3470 | } 3471 | 3472 | .sprite-silk-cursor { 3473 | @include sprite-silk; 3474 | background-position: -416px -256px; 3475 | } 3476 | 3477 | .sprite-silk-cup:link { 3478 | @include sprite-silk; 3479 | background-position: -416px -272px; 3480 | } 3481 | 3482 | .sprite-silk-cup_key { 3483 | @include sprite-silk; 3484 | background-position: -416px -288px; 3485 | } 3486 | 3487 | .sprite-silk-cup_go { 3488 | @include sprite-silk; 3489 | background-position: -416px -304px; 3490 | } 3491 | 3492 | .sprite-silk-cup_error { 3493 | @include sprite-silk; 3494 | background-position: -416px -320px; 3495 | } 3496 | 3497 | .sprite-silk-cup_edit { 3498 | @include sprite-silk; 3499 | background-position: -416px -336px; 3500 | } 3501 | 3502 | .sprite-silk-cup_delete { 3503 | @include sprite-silk; 3504 | background-position: -416px -352px; 3505 | } 3506 | 3507 | .sprite-silk-cup_add { 3508 | @include sprite-silk; 3509 | background-position: -416px -368px; 3510 | } 3511 | 3512 | .sprite-silk-cup { 3513 | @include sprite-silk; 3514 | background-position: -416px -384px; 3515 | } 3516 | 3517 | .sprite-silk-css_valid { 3518 | @include sprite-silk; 3519 | background-position: -416px -400px; 3520 | } 3521 | 3522 | .sprite-silk-css_go { 3523 | @include sprite-silk; 3524 | background-position: 0px -416px; 3525 | } 3526 | 3527 | .sprite-silk-css_delete { 3528 | @include sprite-silk; 3529 | background-position: -16px -416px; 3530 | } 3531 | 3532 | .sprite-silk-css_add { 3533 | @include sprite-silk; 3534 | background-position: -32px -416px; 3535 | } 3536 | 3537 | .sprite-silk-css { 3538 | @include sprite-silk; 3539 | background-position: -48px -416px; 3540 | } 3541 | 3542 | .sprite-silk-cross { 3543 | @include sprite-silk; 3544 | background-position: -64px -416px; 3545 | } 3546 | 3547 | .sprite-silk-creditcards { 3548 | @include sprite-silk; 3549 | background-position: -80px -416px; 3550 | } 3551 | 3552 | .sprite-silk-controller_error { 3553 | @include sprite-silk; 3554 | background-position: -96px -416px; 3555 | } 3556 | 3557 | .sprite-silk-controller_delete { 3558 | @include sprite-silk; 3559 | background-position: -112px -416px; 3560 | } 3561 | 3562 | .sprite-silk-controller_add { 3563 | @include sprite-silk; 3564 | background-position: -128px -416px; 3565 | } 3566 | 3567 | .sprite-silk-controller { 3568 | @include sprite-silk; 3569 | background-position: -144px -416px; 3570 | } 3571 | 3572 | .sprite-silk-control_stop_blue { 3573 | @include sprite-silk; 3574 | background-position: -160px -416px; 3575 | } 3576 | 3577 | .sprite-silk-control_stop { 3578 | @include sprite-silk; 3579 | background-position: -176px -416px; 3580 | } 3581 | 3582 | .sprite-silk-control_start_blue { 3583 | @include sprite-silk; 3584 | background-position: -192px -416px; 3585 | } 3586 | 3587 | .sprite-silk-control_start { 3588 | @include sprite-silk; 3589 | background-position: -208px -416px; 3590 | } 3591 | 3592 | .sprite-silk-control_rewind_blue { 3593 | @include sprite-silk; 3594 | background-position: -224px -416px; 3595 | } 3596 | 3597 | .sprite-silk-control_rewind { 3598 | @include sprite-silk; 3599 | background-position: -240px -416px; 3600 | } 3601 | 3602 | .sprite-silk-control_repeat_blue { 3603 | @include sprite-silk; 3604 | background-position: -256px -416px; 3605 | } 3606 | 3607 | .sprite-silk-control_repeat { 3608 | @include sprite-silk; 3609 | background-position: -272px -416px; 3610 | } 3611 | 3612 | .sprite-silk-control_play_blue { 3613 | @include sprite-silk; 3614 | background-position: -288px -416px; 3615 | } 3616 | 3617 | .sprite-silk-control_play { 3618 | @include sprite-silk; 3619 | background-position: -304px -416px; 3620 | } 3621 | 3622 | .sprite-silk-control_pause_blue { 3623 | @include sprite-silk; 3624 | background-position: -320px -416px; 3625 | } 3626 | 3627 | .sprite-silk-control_pause { 3628 | @include sprite-silk; 3629 | background-position: -336px -416px; 3630 | } 3631 | 3632 | .sprite-silk-control_fastforward_blue { 3633 | @include sprite-silk; 3634 | background-position: -352px -416px; 3635 | } 3636 | 3637 | .sprite-silk-control_fastforward { 3638 | @include sprite-silk; 3639 | background-position: -368px -416px; 3640 | } 3641 | 3642 | .sprite-silk-control_equalizer_blue { 3643 | @include sprite-silk; 3644 | background-position: -384px -416px; 3645 | } 3646 | 3647 | .sprite-silk-control_equalizer { 3648 | @include sprite-silk; 3649 | background-position: -400px -416px; 3650 | } 3651 | 3652 | .sprite-silk-control_end_blue { 3653 | @include sprite-silk; 3654 | background-position: -416px -416px; 3655 | } 3656 | 3657 | .sprite-silk-control_end { 3658 | @include sprite-silk; 3659 | background-position: -432px 0px; 3660 | } 3661 | 3662 | .sprite-silk-control_eject_blue { 3663 | @include sprite-silk; 3664 | background-position: -432px -16px; 3665 | } 3666 | 3667 | .sprite-silk-control_eject { 3668 | @include sprite-silk; 3669 | background-position: -432px -32px; 3670 | } 3671 | 3672 | .sprite-silk-contrast_low { 3673 | @include sprite-silk; 3674 | background-position: -432px -48px; 3675 | } 3676 | 3677 | .sprite-silk-contrast_increase { 3678 | @include sprite-silk; 3679 | background-position: -432px -64px; 3680 | } 3681 | 3682 | .sprite-silk-contrast_high { 3683 | @include sprite-silk; 3684 | background-position: -432px -80px; 3685 | } 3686 | 3687 | .sprite-silk-contrast_decrease { 3688 | @include sprite-silk; 3689 | background-position: -432px -96px; 3690 | } 3691 | 3692 | .sprite-silk-contrast { 3693 | @include sprite-silk; 3694 | background-position: -432px -112px; 3695 | } 3696 | 3697 | .sprite-silk-connect { 3698 | @include sprite-silk; 3699 | background-position: -432px -128px; 3700 | } 3701 | 3702 | .sprite-silk-computer:link { 3703 | @include sprite-silk; 3704 | background-position: -432px -144px; 3705 | } 3706 | 3707 | .sprite-silk-computer_key { 3708 | @include sprite-silk; 3709 | background-position: -432px -160px; 3710 | } 3711 | 3712 | .sprite-silk-computer_go { 3713 | @include sprite-silk; 3714 | background-position: -432px -176px; 3715 | } 3716 | 3717 | .sprite-silk-computer_error { 3718 | @include sprite-silk; 3719 | background-position: -432px -192px; 3720 | } 3721 | 3722 | .sprite-silk-computer_edit { 3723 | @include sprite-silk; 3724 | background-position: -432px -208px; 3725 | } 3726 | 3727 | .sprite-silk-computer_delete { 3728 | @include sprite-silk; 3729 | background-position: -432px -224px; 3730 | } 3731 | 3732 | .sprite-silk-computer_add { 3733 | @include sprite-silk; 3734 | background-position: -432px -240px; 3735 | } 3736 | 3737 | .sprite-silk-computer { 3738 | @include sprite-silk; 3739 | background-position: -432px -256px; 3740 | } 3741 | 3742 | .sprite-silk-compress { 3743 | @include sprite-silk; 3744 | background-position: -432px -272px; 3745 | } 3746 | 3747 | .sprite-silk-comments_delete { 3748 | @include sprite-silk; 3749 | background-position: -432px -288px; 3750 | } 3751 | 3752 | .sprite-silk-comments_add { 3753 | @include sprite-silk; 3754 | background-position: -432px -304px; 3755 | } 3756 | 3757 | .sprite-silk-comments { 3758 | @include sprite-silk; 3759 | background-position: -432px -320px; 3760 | } 3761 | 3762 | .sprite-silk-comment_edit { 3763 | @include sprite-silk; 3764 | background-position: -432px -336px; 3765 | } 3766 | 3767 | .sprite-silk-comment_delete { 3768 | @include sprite-silk; 3769 | background-position: -432px -352px; 3770 | } 3771 | 3772 | .sprite-silk-comment_add { 3773 | @include sprite-silk; 3774 | background-position: -432px -368px; 3775 | } 3776 | 3777 | .sprite-silk-comment { 3778 | @include sprite-silk; 3779 | background-position: -432px -384px; 3780 | } 3781 | 3782 | .sprite-silk-color_wheel { 3783 | @include sprite-silk; 3784 | background-position: -432px -400px; 3785 | } 3786 | 3787 | .sprite-silk-color_swatch { 3788 | @include sprite-silk; 3789 | background-position: -432px -416px; 3790 | } 3791 | 3792 | .sprite-silk-coins_edit { 3793 | @include sprite-silk; 3794 | background-position: 0px -432px; 3795 | } 3796 | 3797 | .sprite-silk-coins_delete { 3798 | @include sprite-silk; 3799 | background-position: -16px -432px; 3800 | } 3801 | 3802 | .sprite-silk-coins_add { 3803 | @include sprite-silk; 3804 | background-position: -32px -432px; 3805 | } 3806 | 3807 | .sprite-silk-coins { 3808 | @include sprite-silk; 3809 | background-position: -48px -432px; 3810 | } 3811 | 3812 | .sprite-silk-cog_go { 3813 | @include sprite-silk; 3814 | background-position: -64px -432px; 3815 | } 3816 | 3817 | .sprite-silk-cog_error { 3818 | @include sprite-silk; 3819 | background-position: -80px -432px; 3820 | } 3821 | 3822 | .sprite-silk-cog_edit { 3823 | @include sprite-silk; 3824 | background-position: -96px -432px; 3825 | } 3826 | 3827 | .sprite-silk-cog_delete { 3828 | @include sprite-silk; 3829 | background-position: -112px -432px; 3830 | } 3831 | 3832 | .sprite-silk-cog_add { 3833 | @include sprite-silk; 3834 | background-position: -128px -432px; 3835 | } 3836 | 3837 | .sprite-silk-cog { 3838 | @include sprite-silk; 3839 | background-position: -144px -432px; 3840 | } 3841 | 3842 | .sprite-silk-clock_stop { 3843 | @include sprite-silk; 3844 | background-position: -160px -432px; 3845 | } 3846 | 3847 | .sprite-silk-clock_red { 3848 | @include sprite-silk; 3849 | background-position: -176px -432px; 3850 | } 3851 | 3852 | .sprite-silk-clock_play { 3853 | @include sprite-silk; 3854 | background-position: -192px -432px; 3855 | } 3856 | 3857 | .sprite-silk-clock_pause { 3858 | @include sprite-silk; 3859 | background-position: -208px -432px; 3860 | } 3861 | 3862 | .sprite-silk-clock:link { 3863 | @include sprite-silk; 3864 | background-position: -224px -432px; 3865 | } 3866 | 3867 | .sprite-silk-clock_go { 3868 | @include sprite-silk; 3869 | background-position: -240px -432px; 3870 | } 3871 | 3872 | .sprite-silk-clock_error { 3873 | @include sprite-silk; 3874 | background-position: -256px -432px; 3875 | } 3876 | 3877 | .sprite-silk-clock_edit { 3878 | @include sprite-silk; 3879 | background-position: -272px -432px; 3880 | } 3881 | 3882 | .sprite-silk-clock_delete { 3883 | @include sprite-silk; 3884 | background-position: -288px -432px; 3885 | } 3886 | 3887 | .sprite-silk-clock_add { 3888 | @include sprite-silk; 3889 | background-position: -304px -432px; 3890 | } 3891 | 3892 | .sprite-silk-clock { 3893 | @include sprite-silk; 3894 | background-position: -320px -432px; 3895 | } 3896 | 3897 | .sprite-silk-chart_pie:link { 3898 | @include sprite-silk; 3899 | background-position: -336px -432px; 3900 | } 3901 | 3902 | .sprite-silk-chart_pie_error { 3903 | @include sprite-silk; 3904 | background-position: -352px -432px; 3905 | } 3906 | 3907 | .sprite-silk-chart_pie_edit { 3908 | @include sprite-silk; 3909 | background-position: -368px -432px; 3910 | } 3911 | 3912 | .sprite-silk-chart_pie_delete { 3913 | @include sprite-silk; 3914 | background-position: -384px -432px; 3915 | } 3916 | 3917 | .sprite-silk-chart_pie_add { 3918 | @include sprite-silk; 3919 | background-position: -400px -432px; 3920 | } 3921 | 3922 | .sprite-silk-chart_pie { 3923 | @include sprite-silk; 3924 | background-position: -416px -432px; 3925 | } 3926 | 3927 | .sprite-silk-chart_organisation_delete { 3928 | @include sprite-silk; 3929 | background-position: -432px -432px; 3930 | } 3931 | 3932 | .sprite-silk-chart_organisation_add { 3933 | @include sprite-silk; 3934 | background-position: -448px 0px; 3935 | } 3936 | 3937 | .sprite-silk-chart_organisation { 3938 | @include sprite-silk; 3939 | background-position: -448px -16px; 3940 | } 3941 | 3942 | .sprite-silk-chart_line:link { 3943 | @include sprite-silk; 3944 | background-position: -448px -32px; 3945 | } 3946 | 3947 | .sprite-silk-chart_line_error { 3948 | @include sprite-silk; 3949 | background-position: -448px -48px; 3950 | } 3951 | 3952 | .sprite-silk-chart_line_edit { 3953 | @include sprite-silk; 3954 | background-position: -448px -64px; 3955 | } 3956 | 3957 | .sprite-silk-chart_line_delete { 3958 | @include sprite-silk; 3959 | background-position: -448px -80px; 3960 | } 3961 | 3962 | .sprite-silk-chart_line_add { 3963 | @include sprite-silk; 3964 | background-position: -448px -96px; 3965 | } 3966 | 3967 | .sprite-silk-chart_line { 3968 | @include sprite-silk; 3969 | background-position: -448px -112px; 3970 | } 3971 | 3972 | .sprite-silk-chart_curve:link { 3973 | @include sprite-silk; 3974 | background-position: -448px -128px; 3975 | } 3976 | 3977 | .sprite-silk-chart_curve_go { 3978 | @include sprite-silk; 3979 | background-position: -448px -144px; 3980 | } 3981 | 3982 | .sprite-silk-chart_curve_error { 3983 | @include sprite-silk; 3984 | background-position: -448px -160px; 3985 | } 3986 | 3987 | .sprite-silk-chart_curve_edit { 3988 | @include sprite-silk; 3989 | background-position: -448px -176px; 3990 | } 3991 | 3992 | .sprite-silk-chart_curve_delete { 3993 | @include sprite-silk; 3994 | background-position: -448px -192px; 3995 | } 3996 | 3997 | .sprite-silk-chart_curve_add { 3998 | @include sprite-silk; 3999 | background-position: -448px -208px; 4000 | } 4001 | 4002 | .sprite-silk-chart_curve { 4003 | @include sprite-silk; 4004 | background-position: -448px -224px; 4005 | } 4006 | 4007 | .sprite-silk-chart_bar:link { 4008 | @include sprite-silk; 4009 | background-position: -448px -240px; 4010 | } 4011 | 4012 | .sprite-silk-chart_bar_error { 4013 | @include sprite-silk; 4014 | background-position: -448px -256px; 4015 | } 4016 | 4017 | .sprite-silk-chart_bar_edit { 4018 | @include sprite-silk; 4019 | background-position: -448px -272px; 4020 | } 4021 | 4022 | .sprite-silk-chart_bar_delete { 4023 | @include sprite-silk; 4024 | background-position: -448px -288px; 4025 | } 4026 | 4027 | .sprite-silk-chart_bar_add { 4028 | @include sprite-silk; 4029 | background-position: -448px -304px; 4030 | } 4031 | 4032 | .sprite-silk-chart_bar { 4033 | @include sprite-silk; 4034 | background-position: -448px -320px; 4035 | } 4036 | 4037 | .sprite-silk-cd_go { 4038 | @include sprite-silk; 4039 | background-position: -448px -336px; 4040 | } 4041 | 4042 | .sprite-silk-cd_eject { 4043 | @include sprite-silk; 4044 | background-position: -448px -352px; 4045 | } 4046 | 4047 | .sprite-silk-cd_edit { 4048 | @include sprite-silk; 4049 | background-position: -448px -368px; 4050 | } 4051 | 4052 | .sprite-silk-cd_delete { 4053 | @include sprite-silk; 4054 | background-position: -448px -384px; 4055 | } 4056 | 4057 | .sprite-silk-cd_burn { 4058 | @include sprite-silk; 4059 | background-position: -448px -400px; 4060 | } 4061 | 4062 | .sprite-silk-cd_add { 4063 | @include sprite-silk; 4064 | background-position: -448px -416px; 4065 | } 4066 | 4067 | .sprite-silk-cd { 4068 | @include sprite-silk; 4069 | background-position: -448px -432px; 4070 | } 4071 | 4072 | .sprite-silk-cart_remove { 4073 | @include sprite-silk; 4074 | background-position: 0px -448px; 4075 | } 4076 | 4077 | .sprite-silk-cart_put { 4078 | @include sprite-silk; 4079 | background-position: -16px -448px; 4080 | } 4081 | 4082 | .sprite-silk-cart_go { 4083 | @include sprite-silk; 4084 | background-position: -32px -448px; 4085 | } 4086 | 4087 | .sprite-silk-cart_error { 4088 | @include sprite-silk; 4089 | background-position: -48px -448px; 4090 | } 4091 | 4092 | .sprite-silk-cart_edit { 4093 | @include sprite-silk; 4094 | background-position: -64px -448px; 4095 | } 4096 | 4097 | .sprite-silk-cart_delete { 4098 | @include sprite-silk; 4099 | background-position: -80px -448px; 4100 | } 4101 | 4102 | .sprite-silk-cart_add { 4103 | @include sprite-silk; 4104 | background-position: -96px -448px; 4105 | } 4106 | 4107 | .sprite-silk-cart { 4108 | @include sprite-silk; 4109 | background-position: -112px -448px; 4110 | } 4111 | 4112 | .sprite-silk-car_delete { 4113 | @include sprite-silk; 4114 | background-position: -128px -448px; 4115 | } 4116 | 4117 | .sprite-silk-car_add { 4118 | @include sprite-silk; 4119 | background-position: -144px -448px; 4120 | } 4121 | 4122 | .sprite-silk-car { 4123 | @include sprite-silk; 4124 | background-position: -160px -448px; 4125 | } 4126 | 4127 | .sprite-silk-cancel { 4128 | @include sprite-silk; 4129 | background-position: -176px -448px; 4130 | } 4131 | 4132 | .sprite-silk-camera_small { 4133 | @include sprite-silk; 4134 | background-position: -192px -448px; 4135 | } 4136 | 4137 | .sprite-silk-camera:link { 4138 | @include sprite-silk; 4139 | background-position: -208px -448px; 4140 | } 4141 | 4142 | .sprite-silk-camera_go { 4143 | @include sprite-silk; 4144 | background-position: -224px -448px; 4145 | } 4146 | 4147 | .sprite-silk-camera_error { 4148 | @include sprite-silk; 4149 | background-position: -240px -448px; 4150 | } 4151 | 4152 | .sprite-silk-camera_edit { 4153 | @include sprite-silk; 4154 | background-position: -256px -448px; 4155 | } 4156 | 4157 | .sprite-silk-camera_delete { 4158 | @include sprite-silk; 4159 | background-position: -272px -448px; 4160 | } 4161 | 4162 | .sprite-silk-camera_add { 4163 | @include sprite-silk; 4164 | background-position: -288px -448px; 4165 | } 4166 | 4167 | .sprite-silk-camera { 4168 | @include sprite-silk; 4169 | background-position: -304px -448px; 4170 | } 4171 | 4172 | .sprite-silk-calendar_view_week { 4173 | @include sprite-silk; 4174 | background-position: -320px -448px; 4175 | } 4176 | 4177 | .sprite-silk-calendar_view_month { 4178 | @include sprite-silk; 4179 | background-position: -336px -448px; 4180 | } 4181 | 4182 | .sprite-silk-calendar_view_day { 4183 | @include sprite-silk; 4184 | background-position: -352px -448px; 4185 | } 4186 | 4187 | .sprite-silk-calendar:link { 4188 | @include sprite-silk; 4189 | background-position: -368px -448px; 4190 | } 4191 | 4192 | .sprite-silk-calendar_edit { 4193 | @include sprite-silk; 4194 | background-position: -384px -448px; 4195 | } 4196 | 4197 | .sprite-silk-calendar_delete { 4198 | @include sprite-silk; 4199 | background-position: -400px -448px; 4200 | } 4201 | 4202 | .sprite-silk-calendar_add { 4203 | @include sprite-silk; 4204 | background-position: -416px -448px; 4205 | } 4206 | 4207 | .sprite-silk-calendar { 4208 | @include sprite-silk; 4209 | background-position: -432px -448px; 4210 | } 4211 | 4212 | .sprite-silk-calculator:link { 4213 | @include sprite-silk; 4214 | background-position: -448px -448px; 4215 | } 4216 | 4217 | .sprite-silk-calculator_error { 4218 | @include sprite-silk; 4219 | background-position: -464px 0px; 4220 | } 4221 | 4222 | .sprite-silk-calculator_edit { 4223 | @include sprite-silk; 4224 | background-position: -464px -16px; 4225 | } 4226 | 4227 | .sprite-silk-calculator_delete { 4228 | @include sprite-silk; 4229 | background-position: -464px -32px; 4230 | } 4231 | 4232 | .sprite-silk-calculator_add { 4233 | @include sprite-silk; 4234 | background-position: -464px -48px; 4235 | } 4236 | 4237 | .sprite-silk-calculator { 4238 | @include sprite-silk; 4239 | background-position: -464px -64px; 4240 | } 4241 | 4242 | .sprite-silk-cake { 4243 | @include sprite-silk; 4244 | background-position: -464px -80px; 4245 | } 4246 | 4247 | .sprite-silk-bullet_yellow { 4248 | @include sprite-silk; 4249 | background-position: -464px -96px; 4250 | } 4251 | 4252 | .sprite-silk-bullet_wrench { 4253 | @include sprite-silk; 4254 | background-position: -464px -112px; 4255 | } 4256 | 4257 | .sprite-silk-bullet_white { 4258 | @include sprite-silk; 4259 | background-position: -464px -128px; 4260 | } 4261 | 4262 | .sprite-silk-bullet_toggle_plus { 4263 | @include sprite-silk; 4264 | background-position: -464px -144px; 4265 | } 4266 | 4267 | .sprite-silk-bullet_toggle_minus { 4268 | @include sprite-silk; 4269 | background-position: -464px -160px; 4270 | } 4271 | 4272 | .sprite-silk-bullet_star { 4273 | @include sprite-silk; 4274 | background-position: -464px -176px; 4275 | } 4276 | 4277 | .sprite-silk-bullet_red { 4278 | @include sprite-silk; 4279 | background-position: -464px -192px; 4280 | } 4281 | 4282 | .sprite-silk-bullet_purple { 4283 | @include sprite-silk; 4284 | background-position: -464px -208px; 4285 | } 4286 | 4287 | .sprite-silk-bullet_pink { 4288 | @include sprite-silk; 4289 | background-position: -464px -224px; 4290 | } 4291 | 4292 | .sprite-silk-bullet_picture { 4293 | @include sprite-silk; 4294 | background-position: -464px -240px; 4295 | } 4296 | 4297 | .sprite-silk-bullet_orange { 4298 | @include sprite-silk; 4299 | background-position: -464px -256px; 4300 | } 4301 | 4302 | .sprite-silk-bullet_key { 4303 | @include sprite-silk; 4304 | background-position: -464px -272px; 4305 | } 4306 | 4307 | .sprite-silk-bullet_green { 4308 | @include sprite-silk; 4309 | background-position: -464px -288px; 4310 | } 4311 | 4312 | .sprite-silk-bullet_go { 4313 | @include sprite-silk; 4314 | background-position: -464px -304px; 4315 | } 4316 | 4317 | .sprite-silk-bullet_feed { 4318 | @include sprite-silk; 4319 | background-position: -464px -320px; 4320 | } 4321 | 4322 | .sprite-silk-bullet_error { 4323 | @include sprite-silk; 4324 | background-position: -464px -336px; 4325 | } 4326 | 4327 | .sprite-silk-bullet_disk { 4328 | @include sprite-silk; 4329 | background-position: -464px -352px; 4330 | } 4331 | 4332 | .sprite-silk-bullet_delete { 4333 | @include sprite-silk; 4334 | background-position: -464px -368px; 4335 | } 4336 | 4337 | .sprite-silk-bullet_blue { 4338 | @include sprite-silk; 4339 | background-position: -464px -384px; 4340 | } 4341 | 4342 | .sprite-silk-bullet_black { 4343 | @include sprite-silk; 4344 | background-position: -464px -400px; 4345 | } 4346 | 4347 | .sprite-silk-bullet_arrow_up { 4348 | @include sprite-silk; 4349 | background-position: -464px -416px; 4350 | } 4351 | 4352 | .sprite-silk-bullet_arrow_top { 4353 | @include sprite-silk; 4354 | background-position: -464px -432px; 4355 | } 4356 | 4357 | .sprite-silk-bullet_arrow_down { 4358 | @include sprite-silk; 4359 | background-position: -464px -448px; 4360 | } 4361 | 4362 | .sprite-silk-bullet_arrow_bottom { 4363 | @include sprite-silk; 4364 | background-position: 0px -464px; 4365 | } 4366 | 4367 | .sprite-silk-bullet_add { 4368 | @include sprite-silk; 4369 | background-position: -16px -464px; 4370 | } 4371 | 4372 | .sprite-silk-building:link { 4373 | @include sprite-silk; 4374 | background-position: -32px -464px; 4375 | } 4376 | 4377 | .sprite-silk-building_key { 4378 | @include sprite-silk; 4379 | background-position: -48px -464px; 4380 | } 4381 | 4382 | .sprite-silk-building_go { 4383 | @include sprite-silk; 4384 | background-position: -64px -464px; 4385 | } 4386 | 4387 | .sprite-silk-building_error { 4388 | @include sprite-silk; 4389 | background-position: -80px -464px; 4390 | } 4391 | 4392 | .sprite-silk-building_edit { 4393 | @include sprite-silk; 4394 | background-position: -96px -464px; 4395 | } 4396 | 4397 | .sprite-silk-building_delete { 4398 | @include sprite-silk; 4399 | background-position: -112px -464px; 4400 | } 4401 | 4402 | .sprite-silk-building_add { 4403 | @include sprite-silk; 4404 | background-position: -128px -464px; 4405 | } 4406 | 4407 | .sprite-silk-building { 4408 | @include sprite-silk; 4409 | background-position: -144px -464px; 4410 | } 4411 | 4412 | .sprite-silk-bug:link { 4413 | @include sprite-silk; 4414 | background-position: -160px -464px; 4415 | } 4416 | 4417 | .sprite-silk-bug_go { 4418 | @include sprite-silk; 4419 | background-position: -176px -464px; 4420 | } 4421 | 4422 | .sprite-silk-bug_error { 4423 | @include sprite-silk; 4424 | background-position: -192px -464px; 4425 | } 4426 | 4427 | .sprite-silk-bug_edit { 4428 | @include sprite-silk; 4429 | background-position: -208px -464px; 4430 | } 4431 | 4432 | .sprite-silk-bug_delete { 4433 | @include sprite-silk; 4434 | background-position: -224px -464px; 4435 | } 4436 | 4437 | .sprite-silk-bug_add { 4438 | @include sprite-silk; 4439 | background-position: -240px -464px; 4440 | } 4441 | 4442 | .sprite-silk-bug { 4443 | @include sprite-silk; 4444 | background-position: -256px -464px; 4445 | } 4446 | 4447 | .sprite-silk-briefcase { 4448 | @include sprite-silk; 4449 | background-position: -272px -464px; 4450 | } 4451 | 4452 | .sprite-silk-bricks { 4453 | @include sprite-silk; 4454 | background-position: -288px -464px; 4455 | } 4456 | 4457 | .sprite-silk-brick:link { 4458 | @include sprite-silk; 4459 | background-position: -304px -464px; 4460 | } 4461 | 4462 | .sprite-silk-brick_go { 4463 | @include sprite-silk; 4464 | background-position: -320px -464px; 4465 | } 4466 | 4467 | .sprite-silk-brick_error { 4468 | @include sprite-silk; 4469 | background-position: -336px -464px; 4470 | } 4471 | 4472 | .sprite-silk-brick_edit { 4473 | @include sprite-silk; 4474 | background-position: -352px -464px; 4475 | } 4476 | 4477 | .sprite-silk-brick_delete { 4478 | @include sprite-silk; 4479 | background-position: -368px -464px; 4480 | } 4481 | 4482 | .sprite-silk-brick_add { 4483 | @include sprite-silk; 4484 | background-position: -384px -464px; 4485 | } 4486 | 4487 | .sprite-silk-brick { 4488 | @include sprite-silk; 4489 | background-position: -400px -464px; 4490 | } 4491 | 4492 | .sprite-silk-box { 4493 | @include sprite-silk; 4494 | background-position: -416px -464px; 4495 | } 4496 | 4497 | .sprite-silk-book_previous { 4498 | @include sprite-silk; 4499 | background-position: -432px -464px; 4500 | } 4501 | 4502 | .sprite-silk-book_open { 4503 | @include sprite-silk; 4504 | background-position: -448px -464px; 4505 | } 4506 | 4507 | .sprite-silk-book_next { 4508 | @include sprite-silk; 4509 | background-position: -464px -464px; 4510 | } 4511 | 4512 | .sprite-silk-book:link { 4513 | @include sprite-silk; 4514 | background-position: -480px 0px; 4515 | } 4516 | 4517 | .sprite-silk-book_key { 4518 | @include sprite-silk; 4519 | background-position: -480px -16px; 4520 | } 4521 | 4522 | .sprite-silk-book_go { 4523 | @include sprite-silk; 4524 | background-position: -480px -32px; 4525 | } 4526 | 4527 | .sprite-silk-book_error { 4528 | @include sprite-silk; 4529 | background-position: -480px -48px; 4530 | } 4531 | 4532 | .sprite-silk-book_edit { 4533 | @include sprite-silk; 4534 | background-position: -480px -64px; 4535 | } 4536 | 4537 | .sprite-silk-book_delete { 4538 | @include sprite-silk; 4539 | background-position: -480px -80px; 4540 | } 4541 | 4542 | .sprite-silk-book_addresses { 4543 | @include sprite-silk; 4544 | background-position: -480px -96px; 4545 | } 4546 | 4547 | .sprite-silk-book_add { 4548 | @include sprite-silk; 4549 | background-position: -480px -112px; 4550 | } 4551 | 4552 | .sprite-silk-book { 4553 | @include sprite-silk; 4554 | background-position: -480px -128px; 4555 | } 4556 | 4557 | .sprite-silk-bomb { 4558 | @include sprite-silk; 4559 | background-position: -480px -144px; 4560 | } 4561 | 4562 | .sprite-silk-bin_empty { 4563 | @include sprite-silk; 4564 | background-position: -480px -160px; 4565 | } 4566 | 4567 | .sprite-silk-bin_closed { 4568 | @include sprite-silk; 4569 | background-position: -480px -176px; 4570 | } 4571 | 4572 | .sprite-silk-bin { 4573 | @include sprite-silk; 4574 | background-position: -480px -192px; 4575 | } 4576 | 4577 | .sprite-silk-bell:link { 4578 | @include sprite-silk; 4579 | background-position: -480px -208px; 4580 | } 4581 | 4582 | .sprite-silk-bell_go { 4583 | @include sprite-silk; 4584 | background-position: -480px -224px; 4585 | } 4586 | 4587 | .sprite-silk-bell_error { 4588 | @include sprite-silk; 4589 | background-position: -480px -240px; 4590 | } 4591 | 4592 | .sprite-silk-bell_delete { 4593 | @include sprite-silk; 4594 | background-position: -480px -256px; 4595 | } 4596 | 4597 | .sprite-silk-bell_add { 4598 | @include sprite-silk; 4599 | background-position: -480px -272px; 4600 | } 4601 | 4602 | .sprite-silk-bell { 4603 | @include sprite-silk; 4604 | background-position: -480px -288px; 4605 | } 4606 | 4607 | .sprite-silk-basket_remove { 4608 | @include sprite-silk; 4609 | background-position: -480px -304px; 4610 | } 4611 | 4612 | .sprite-silk-basket_put { 4613 | @include sprite-silk; 4614 | background-position: -480px -320px; 4615 | } 4616 | 4617 | .sprite-silk-basket_go { 4618 | @include sprite-silk; 4619 | background-position: -480px -336px; 4620 | } 4621 | 4622 | .sprite-silk-basket_error { 4623 | @include sprite-silk; 4624 | background-position: -480px -352px; 4625 | } 4626 | 4627 | .sprite-silk-basket_edit { 4628 | @include sprite-silk; 4629 | background-position: -480px -368px; 4630 | } 4631 | 4632 | .sprite-silk-basket_delete { 4633 | @include sprite-silk; 4634 | background-position: -480px -384px; 4635 | } 4636 | 4637 | .sprite-silk-basket_add { 4638 | @include sprite-silk; 4639 | background-position: -480px -400px; 4640 | } 4641 | 4642 | .sprite-silk-basket { 4643 | @include sprite-silk; 4644 | background-position: -480px -416px; 4645 | } 4646 | 4647 | .sprite-silk-award_star_silver_3 { 4648 | @include sprite-silk; 4649 | background-position: -480px -432px; 4650 | } 4651 | 4652 | .sprite-silk-award_star_silver_2 { 4653 | @include sprite-silk; 4654 | background-position: -480px -448px; 4655 | } 4656 | 4657 | .sprite-silk-award_star_silver_1 { 4658 | @include sprite-silk; 4659 | background-position: -480px -464px; 4660 | } 4661 | 4662 | .sprite-silk-award_star_gold_3 { 4663 | @include sprite-silk; 4664 | background-position: 0px -480px; 4665 | } 4666 | 4667 | .sprite-silk-award_star_gold_2 { 4668 | @include sprite-silk; 4669 | background-position: -16px -480px; 4670 | } 4671 | 4672 | .sprite-silk-award_star_gold_1 { 4673 | @include sprite-silk; 4674 | background-position: -32px -480px; 4675 | } 4676 | 4677 | .sprite-silk-award_star_delete { 4678 | @include sprite-silk; 4679 | background-position: -48px -480px; 4680 | } 4681 | 4682 | .sprite-silk-award_star_bronze_3 { 4683 | @include sprite-silk; 4684 | background-position: -64px -480px; 4685 | } 4686 | 4687 | .sprite-silk-award_star_bronze_2 { 4688 | @include sprite-silk; 4689 | background-position: -80px -480px; 4690 | } 4691 | 4692 | .sprite-silk-award_star_bronze_1 { 4693 | @include sprite-silk; 4694 | background-position: -96px -480px; 4695 | } 4696 | 4697 | .sprite-silk-award_star_add { 4698 | @include sprite-silk; 4699 | background-position: -112px -480px; 4700 | } 4701 | 4702 | .sprite-silk-attach { 4703 | @include sprite-silk; 4704 | background-position: -128px -480px; 4705 | } 4706 | 4707 | .sprite-silk-asterisk_yellow { 4708 | @include sprite-silk; 4709 | background-position: -144px -480px; 4710 | } 4711 | 4712 | .sprite-silk-asterisk_orange { 4713 | @include sprite-silk; 4714 | background-position: -160px -480px; 4715 | } 4716 | 4717 | .sprite-silk-arrow_up { 4718 | @include sprite-silk; 4719 | background-position: -176px -480px; 4720 | } 4721 | 4722 | .sprite-silk-arrow_undo { 4723 | @include sprite-silk; 4724 | background-position: -192px -480px; 4725 | } 4726 | 4727 | .sprite-silk-arrow_turn_right { 4728 | @include sprite-silk; 4729 | background-position: -208px -480px; 4730 | } 4731 | 4732 | .sprite-silk-arrow_turn_left { 4733 | @include sprite-silk; 4734 | background-position: -224px -480px; 4735 | } 4736 | 4737 | .sprite-silk-arrow_switch { 4738 | @include sprite-silk; 4739 | background-position: -240px -480px; 4740 | } 4741 | 4742 | .sprite-silk-arrow_rotate_clockwise { 4743 | @include sprite-silk; 4744 | background-position: -256px -480px; 4745 | } 4746 | 4747 | .sprite-silk-arrow_rotate_anticlockwise { 4748 | @include sprite-silk; 4749 | background-position: -272px -480px; 4750 | } 4751 | 4752 | .sprite-silk-arrow_right { 4753 | @include sprite-silk; 4754 | background-position: -288px -480px; 4755 | } 4756 | 4757 | .sprite-silk-arrow_refresh_small { 4758 | @include sprite-silk; 4759 | background-position: -304px -480px; 4760 | } 4761 | 4762 | .sprite-silk-arrow_refresh { 4763 | @include sprite-silk; 4764 | background-position: -320px -480px; 4765 | } 4766 | 4767 | .sprite-silk-arrow_redo { 4768 | @include sprite-silk; 4769 | background-position: -336px -480px; 4770 | } 4771 | 4772 | .sprite-silk-arrow_out { 4773 | @include sprite-silk; 4774 | background-position: -352px -480px; 4775 | } 4776 | 4777 | .sprite-silk-arrow_merge { 4778 | @include sprite-silk; 4779 | background-position: -368px -480px; 4780 | } 4781 | 4782 | .sprite-silk-arrow_left { 4783 | @include sprite-silk; 4784 | background-position: -384px -480px; 4785 | } 4786 | 4787 | .sprite-silk-arrow_join { 4788 | @include sprite-silk; 4789 | background-position: -400px -480px; 4790 | } 4791 | 4792 | .sprite-silk-arrow_inout { 4793 | @include sprite-silk; 4794 | background-position: -416px -480px; 4795 | } 4796 | 4797 | .sprite-silk-arrow_in { 4798 | @include sprite-silk; 4799 | background-position: -432px -480px; 4800 | } 4801 | 4802 | .sprite-silk-arrow_down { 4803 | @include sprite-silk; 4804 | background-position: -448px -480px; 4805 | } 4806 | 4807 | .sprite-silk-arrow_divide { 4808 | @include sprite-silk; 4809 | background-position: -464px -480px; 4810 | } 4811 | 4812 | .sprite-silk-arrow_branch { 4813 | @include sprite-silk; 4814 | background-position: -480px -480px; 4815 | } 4816 | 4817 | .sprite-silk-application_xp_terminal { 4818 | @include sprite-silk; 4819 | background-position: -496px 0px; 4820 | } 4821 | 4822 | .sprite-silk-application_xp { 4823 | @include sprite-silk; 4824 | background-position: -496px -16px; 4825 | } 4826 | 4827 | .sprite-silk-application_view_tile { 4828 | @include sprite-silk; 4829 | background-position: -496px -32px; 4830 | } 4831 | 4832 | .sprite-silk-application_view_list { 4833 | @include sprite-silk; 4834 | background-position: -496px -48px; 4835 | } 4836 | 4837 | .sprite-silk-application_view_icons { 4838 | @include sprite-silk; 4839 | background-position: -496px -64px; 4840 | } 4841 | 4842 | .sprite-silk-application_view_gallery { 4843 | @include sprite-silk; 4844 | background-position: -496px -80px; 4845 | } 4846 | 4847 | .sprite-silk-application_view_detail { 4848 | @include sprite-silk; 4849 | background-position: -496px -96px; 4850 | } 4851 | 4852 | .sprite-silk-application_view_columns { 4853 | @include sprite-silk; 4854 | background-position: -496px -112px; 4855 | } 4856 | 4857 | .sprite-silk-application_tile_vertical { 4858 | @include sprite-silk; 4859 | background-position: -496px -128px; 4860 | } 4861 | 4862 | .sprite-silk-application_tile_horizontal { 4863 | @include sprite-silk; 4864 | background-position: -496px -144px; 4865 | } 4866 | 4867 | .sprite-silk-application_split { 4868 | @include sprite-silk; 4869 | background-position: -496px -160px; 4870 | } 4871 | 4872 | .sprite-silk-application_side_tree { 4873 | @include sprite-silk; 4874 | background-position: -496px -176px; 4875 | } 4876 | 4877 | .sprite-silk-application_side_list { 4878 | @include sprite-silk; 4879 | background-position: -496px -192px; 4880 | } 4881 | 4882 | .sprite-silk-application_side_expand { 4883 | @include sprite-silk; 4884 | background-position: -496px -208px; 4885 | } 4886 | 4887 | .sprite-silk-application_side_contract { 4888 | @include sprite-silk; 4889 | background-position: -496px -224px; 4890 | } 4891 | 4892 | .sprite-silk-application_side_boxes { 4893 | @include sprite-silk; 4894 | background-position: -496px -240px; 4895 | } 4896 | 4897 | .sprite-silk-application_put { 4898 | @include sprite-silk; 4899 | background-position: -496px -256px; 4900 | } 4901 | 4902 | .sprite-silk-application_osx_terminal { 4903 | @include sprite-silk; 4904 | background-position: -496px -272px; 4905 | } 4906 | 4907 | .sprite-silk-application_osx { 4908 | @include sprite-silk; 4909 | background-position: -496px -288px; 4910 | } 4911 | 4912 | .sprite-silk-application:link { 4913 | @include sprite-silk; 4914 | background-position: -496px -304px; 4915 | } 4916 | 4917 | .sprite-silk-application_lightning { 4918 | @include sprite-silk; 4919 | background-position: -496px -320px; 4920 | } 4921 | 4922 | .sprite-silk-application_key { 4923 | @include sprite-silk; 4924 | background-position: -496px -336px; 4925 | } 4926 | 4927 | .sprite-silk-application_home { 4928 | @include sprite-silk; 4929 | background-position: -496px -352px; 4930 | } 4931 | 4932 | .sprite-silk-application_go { 4933 | @include sprite-silk; 4934 | background-position: -496px -368px; 4935 | } 4936 | 4937 | .sprite-silk-application_get { 4938 | @include sprite-silk; 4939 | background-position: -496px -384px; 4940 | } 4941 | 4942 | .sprite-silk-application_form_magnify { 4943 | @include sprite-silk; 4944 | background-position: -496px -400px; 4945 | } 4946 | 4947 | .sprite-silk-application_form_edit { 4948 | @include sprite-silk; 4949 | background-position: -496px -416px; 4950 | } 4951 | 4952 | .sprite-silk-application_form_delete { 4953 | @include sprite-silk; 4954 | background-position: -496px -432px; 4955 | } 4956 | 4957 | .sprite-silk-application_form_add { 4958 | @include sprite-silk; 4959 | background-position: -496px -448px; 4960 | } 4961 | 4962 | .sprite-silk-application_form { 4963 | @include sprite-silk; 4964 | background-position: -496px -464px; 4965 | } 4966 | 4967 | .sprite-silk-application_error { 4968 | @include sprite-silk; 4969 | background-position: -496px -480px; 4970 | } 4971 | 4972 | .sprite-silk-application_edit { 4973 | @include sprite-silk; 4974 | background-position: 0px -496px; 4975 | } 4976 | 4977 | .sprite-silk-application_double { 4978 | @include sprite-silk; 4979 | background-position: -16px -496px; 4980 | } 4981 | 4982 | .sprite-silk-application_delete { 4983 | @include sprite-silk; 4984 | background-position: -32px -496px; 4985 | } 4986 | 4987 | .sprite-silk-application_cascade { 4988 | @include sprite-silk; 4989 | background-position: -48px -496px; 4990 | } 4991 | 4992 | .sprite-silk-application_add { 4993 | @include sprite-silk; 4994 | background-position: -64px -496px; 4995 | } 4996 | 4997 | .sprite-silk-application { 4998 | @include sprite-silk; 4999 | background-position: -80px -496px; 5000 | } 5001 | 5002 | .sprite-silk-anchor { 5003 | @include sprite-silk; 5004 | background-position: -96px -496px; 5005 | } 5006 | 5007 | .sprite-silk-add { 5008 | @include sprite-silk; 5009 | background-position: -112px -496px; 5010 | } 5011 | 5012 | .sprite-silk-accept { 5013 | @include sprite-silk; 5014 | background-position: -128px -496px; 5015 | } 5016 | -------------------------------------------------------------------------------- /app/assets/stylesheets/site.css.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/assets/stylesheets/site.css.scss -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | # Prevent CSRF attacks by raising an exception. 3 | # For APIs, you may want to use :null_session instead. 4 | protect_from_forgery with: :exception 5 | 6 | def bool(name, default=nil) 7 | p = params[name] 8 | return default.nil? ? nil : default if p.nil? 9 | %w(1 on o true t yes y).include? p.to_s 10 | end 11 | 12 | def int(name, default=nil) 13 | p = params[name] 14 | return default.nil? ? nil : default if p.nil? 15 | p.to_i 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /app/controllers/documents_controller.rb: -------------------------------------------------------------------------------- 1 | class DocumentsController < ApplicationController 2 | #respond_to :pdf 3 | 4 | def index 5 | @documents = Document.all.sort_by &:name 6 | end 7 | 8 | def show 9 | @document = Document.find_by! name: params[:id] 10 | 11 | respond_to do |format| 12 | format.pdf do 13 | send_file @document.pdf, type: 'application/pdf' 14 | end 15 | format.text do 16 | self.content_type = 'text/plain' 17 | self.response_body = @document.pages.times.collect { |n| @document.content n } 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /app/controllers/pages_controller.rb: -------------------------------------------------------------------------------- 1 | class PagesController < ApplicationController 2 | respond_to :png, only: %i(show) 3 | 4 | def index 5 | @filter = params[:filter] 6 | @with_text = bool :with_text, false 7 | @size = int :size, 10 8 | @page = int :page, 1 9 | from = (@page-1) * @size 10 | if @filter.nil? 11 | @results = nil 12 | else 13 | es = Rails.configuration.es.index(:nsa) 14 | .search(size: @size, from: from, query: {match: {content: @filter}}) 15 | @results = { total: es.total } 16 | results = es.results.collect do |match| 17 | p = {doc: match.doc, page: match.page} 18 | p[:text] = match.content 19 | .gsub(Regexp.new(Regexp.escape(@filter), Regexp::IGNORECASE), '\0') 20 | .gsub("\n+", '
') if @with_text 21 | p 22 | end 23 | results.sort! do |x, y| 24 | c = x[:doc] <=> y[:doc] 25 | c = x[:page] <=> y[:page] if c == 0 26 | c 27 | end 28 | @results[:items] = results 29 | end 30 | 31 | respond_to do |format| 32 | format.html 33 | format.json { render json: @results } 34 | end 35 | end 36 | 37 | def show 38 | @document = Document.find_by! name: params[:document_id] 39 | page = params[:id] 40 | small = params[:size] != 'big' 41 | send_file @document.png(page, small: small), type: 'image/png', disposition: :inline 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /app/controllers/site_controller.rb: -------------------------------------------------------------------------------- 1 | class SiteController < ApplicationController 2 | def index 3 | redirect_to :pages 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/documents_helper.rb: -------------------------------------------------------------------------------- 1 | module DocumentsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/pages_helper.rb: -------------------------------------------------------------------------------- 1 | module PagesHelper 2 | def page_link(page, content=nil, active: nil, disabled: nil) 3 | text = content.nil? ? page : content 4 | clazz = [] 5 | if disabled 6 | clazz << :disabled 7 | link = link_to text, '#' 8 | else 9 | clazz << :active if active 10 | link = link_to text, pages_path(filter: @filter, size: @size, 11 | with_text: @with_text, page: page) 12 | end 13 | content_tag :li, link, class: clazz 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /app/helpers/site_helper.rb: -------------------------------------------------------------------------------- 1 | module SiteHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/lib/db.rb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/mailers/.keep -------------------------------------------------------------------------------- /app/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/models/.keep -------------------------------------------------------------------------------- /app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/app/models/concerns/.keep -------------------------------------------------------------------------------- /app/models/document.rb: -------------------------------------------------------------------------------- 1 | class Document < ActiveRecord::Base 2 | PDF_PATH = File.join Rails.configuration.documents_path, 'pdf' 3 | TXT_PATH = File.join Rails.configuration.documents_path, 'txt' 4 | PNG_PATH = File.join Rails.configuration.documents_path, 'png' 5 | PNG_SMALL_PATH = File.join Rails.configuration.documents_path, 'png-small' 6 | 7 | validates :name, presence: true, uniqueness: true 8 | validates :pages, presence: true, numericality: { only_integer: true } 9 | 10 | def pdf 11 | File.join PDF_PATH, "#{self.name}.pdf" 12 | end 13 | 14 | def txt(page) 15 | File.join TXT_PATH, "#{self.name}-#{page.to_i}.txt" 16 | end 17 | 18 | def content(page) 19 | File.read self.txt page 20 | end 21 | 22 | def png(page, small: true) 23 | File.join (small ? PNG_SMALL_PATH : PNG_PATH), "#{self.name}-#{page.to_i}.png" 24 | end 25 | 26 | def to_param 27 | self.name 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /app/views/documents/index.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | <% @documents.each do |document| %> 12 | 13 | 14 | 21 | 22 | <% end %> 23 | 24 |
Documents
<%= document.name %> 15 | <% {pdf: 'acrobat', txt: 'text'}.each do |format, icon| %> 16 | <%= link_to document_path(document, format: format) do 17 | image_tag 'empty.png', class: "sprite-silk-page_white_#{icon}" 18 | end %> 19 | <% end %> 20 |
25 |
26 |
27 |
28 | -------------------------------------------------------------------------------- /app/views/documents/show.html.erb: -------------------------------------------------------------------------------- 1 | <%= @document %> 2 | -------------------------------------------------------------------------------- /app/views/layouts/_navbar.html.erb: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | NSA Doc Searching 9 | <%= stylesheet_link_tag 'application', media: 'all' %> 10 | <%= stylesheet_link_tag params[:controller], media: 'all' %> 11 | <%= javascript_include_tag 'application' %> 12 | <%= javascript_include_tag params[:controller] %> 13 | <%= csrf_meta_tags %> 14 | 15 | 16 | <%= render 'layouts/navbar' %> 17 |
18 | <%= yield %> 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /app/views/pages/index.html.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | 6 | 7 |
8 |
9 |
10 | 11 |
12 |
13 | <%= select_tag :size, options_for_select(%w(10 50 100), params[:size]), class: %w(form-control) %> 14 |
15 |
16 | 20 |
21 |
22 |
23 | <% unless @results.nil? %> 24 |
25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | <%= content_tag :th, 'Text' if @with_text %> 33 | 34 | 35 | 55 | 56 | 57 | 58 | <% @results[:items].each do |result| 59 | doc, page = result[:doc], result[:page] 60 | lightbox = "lightbox-#{doc}-#{page}" 61 | %> 62 | 63 | 66 | 67 | 84 | <%= content_tag :td, result[:text].html_safe if @with_text %> 85 | 86 | <% end %> 87 | 88 |
Document#Page
36 | <% if @results.empty? %> 37 | No result found 38 | <% else 39 | total = @results[:total] 40 | pages = total / @size + 1 41 | %> 42 | <%= total %> documents found 43 |
44 | <%= content_tag :ul, class: %w(pagination pagination-sm) do %> 45 | <%= page_link @page-1, '«', disabled: @page <= 1 %> 46 | <% pages.times do |page| 47 | page += 1 48 | %> 49 | <%= page_link page, active: @page == page %> 50 | <% end %> 51 | <%= page_link @page+1, '»', disabled: @page >= pages %> 52 | <% end if pages > 1 %> 53 | <% end %> 54 |
64 | <%= link_to doc, document_path(doc, format: :pdf) %> 65 | <%= page+1 %> 68 | <%= content_tag :div, id: lightbox, class: %i(lightbox fade), 69 | tabindex: -1, role: :dialog, 'aria-hidden' => true do %> 70 | 79 | <% end %> 80 | <%= link_to '#', data: { toggle: :lightbox, target: "##{lightbox}" } do 81 | image_tag document_page_path(doc, page, format: :png) 82 | end %> 83 |
89 |
90 |
91 | <% end %> 92 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/indexer.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.expand_path '../../config/application', __FILE__ 3 | Rails.application.require_environment! 4 | 5 | require 'open3' 6 | require 'fileutils' 7 | require 'tempfile' 8 | require 'stretcher' 9 | 10 | def execute(*args) 11 | #print *args.join(' '), "\n" 12 | Open3.capture3 *args 13 | end 14 | 15 | es = Stretcher::Server.new 'http://localhost:9200/' 16 | es.index :nsa do |index| 17 | index.type :page do |index| 18 | 19 | ARGV.each do |pdf| 20 | doc = File.basename pdf, '.pdf' 21 | 22 | print "Converting #{pdf}\n" 23 | o, _ = execute 'identify', '-format', '%n', pdf 24 | pages = o.to_i 25 | print " #{pages} pages found\n" 26 | 27 | pages.times do |n| 28 | print " Converting page #{n}/#{pages}\n" 29 | name = "#{doc}-#{n}" 30 | page = "#{pdf}[#{n}]" 31 | png = File.join Document::PNG_PATH, "#{name}.png" 32 | png_small = File.join Document::PNG_SMALL_PATH, "#{name}.png" 33 | txt = File.join Document::TXT_PATH, name 34 | 35 | Tempfile.create [name, '.tif'] do |tif| 36 | execute 'convert', '-density', '300', '-depth', '8', page, tif.to_path 37 | execute 'tesseract', '-l', 'eng', '-psm', '1', tif.to_path, txt 38 | execute 'convert', '-resize', '1024x', '-density', '120', tif.to_path, png 39 | execute 'convert', '-resize', '400x', png, png_small 40 | 41 | content = File.read "#{txt}.txt" 42 | index.put name, {doc: doc, page: n, content: content} 43 | end 44 | end 45 | 46 | Document.create! name: doc, pages: pages 47 | FileUtils.move pdf, Document::PDF_PATH 48 | end 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../../config/application', __FILE__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require ::File.expand_path('../config/environment', __FILE__) 4 | run Rails.application 5 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../boot', __FILE__) 2 | 3 | require 'rails/all' 4 | 5 | # Require the gems listed in Gemfile, including any gems 6 | # you've limited to :test, :development, or :production. 7 | Bundler.require(:default, Rails.env) 8 | 9 | module DocSearch 10 | class Application < Rails::Application 11 | # Settings in config/environments/* take precedence over those specified here. 12 | # Application configuration should go into files in config/initializers 13 | # -- all .rb files in that directory are automatically loaded. 14 | 15 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 16 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 17 | # config.time_zone = 'Central Time (US & Canada)' 18 | 19 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 20 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 21 | # config.i18n.default_locale = :de 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | # Set up gems listed in the Gemfile. 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | 4 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) 5 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | development: 7 | adapter: sqlite3 8 | database: db/development.sqlite3 9 | pool: 5 10 | timeout: 5000 11 | 12 | # Warning: The database defined as "test" will be erased and 13 | # re-generated from your development database when you run "rake". 14 | # Do not set this db to the same as development or production. 15 | test: 16 | adapter: sqlite3 17 | database: db/test.sqlite3 18 | pool: 5 19 | timeout: 5000 20 | 21 | production: 22 | adapter: sqlite3 23 | database: ../../db/production.sqlite3 24 | pool: 5 25 | timeout: 5000 26 | -------------------------------------------------------------------------------- /config/deploy.rb: -------------------------------------------------------------------------------- 1 | lock '3.2.1' 2 | 3 | set :application, 'nsa-doc-search' 4 | 5 | set :rbenv_custom_path, '/usr/local/rbenv' 6 | set :rbenv_type, :user 7 | set :rbenv_path, '/usr/local/rbenv' 8 | set :rbenv_ruby, '2.1.1' 9 | set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} /usr/bin/env rbenv exec" 10 | set :rbenv_map_bins, %w{rake gem bundle ruby rails} 11 | set :rbenv_roles, :all 12 | 13 | set :deploy_to, '/opt/nsa-observer/doc-search' 14 | set :rails_env, 'production' 15 | set :branch, proc { fetch :stage } 16 | -------------------------------------------------------------------------------- /config/deploy/production.rb: -------------------------------------------------------------------------------- 1 | set :stage, :production 2 | server 'nsa.lqdn.fr', user: :root, roles: %w(web app db) 3 | 4 | set :scm, :rsync 5 | set :rsync_scm, :git 6 | set :rsync_options, %w(--archive --acls --xattrs) 7 | 8 | # set :scm, :git 9 | # set :repo_url, 'git@github.com:aeris/nsa-doc-search.git' 10 | -------------------------------------------------------------------------------- /config/deploy/staging.rb: -------------------------------------------------------------------------------- 1 | set :stage, :staging 2 | set :rails_env, :production 3 | 4 | set :scm, :rsync 5 | set :rsync_scm, :git 6 | set :rsync_options, %w(--archive --acls --xattrs) 7 | 8 | server 'nsa.imirhil.fr', user: 'root', roles: %w(web app db) 9 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require File.expand_path('../application', __FILE__) 3 | 4 | # Initialize the Rails application. 5 | DocSearch::Application.initialize! 6 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | DocSearch::Application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the web server when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Do not eager load code on boot. 10 | config.eager_load = false 11 | 12 | # Show full error reports and disable caching. 13 | config.consider_all_requests_local = true 14 | config.action_controller.perform_caching = false 15 | 16 | # Print deprecation notices to the Rails logger. 17 | config.active_support.deprecation = :log 18 | 19 | # Debug mode disables concatenation and preprocessing of assets. 20 | # This option may cause significant delays in view rendering with a large 21 | # number of complex assets. 22 | config.assets.debug = true 23 | 24 | config.middleware.insert_after ActionDispatch::Static, Rack::LiveReload 25 | 26 | config.es = Stretcher::Server.new 'http://localhost:9200/' 27 | config.documents_path = File.expand_path File.join Rails.root, '../docs' 28 | end 29 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | DocSearch::Application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # Code is not reloaded between requests. 5 | config.cache_classes = true 6 | 7 | # Eager load code on boot. This eager loads most of Rails and 8 | # your application in memory, allowing both thread web servers 9 | # and those relying on copy on write to perform better. 10 | # Rake tasks automatically ignore this option for performance. 11 | config.eager_load = true 12 | 13 | # Full error reports are disabled and caching is turned on. 14 | config.consider_all_requests_local = false 15 | config.action_controller.perform_caching = true 16 | 17 | # Enable Rack::Cache to put a simple HTTP cache in front of your application 18 | # Add `rack-cache` to your Gemfile before enabling this. 19 | # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. 20 | # config.action_dispatch.rack_cache = true 21 | 22 | # Disable Rails's static asset server (Apache or nginx will already do this). 23 | config.serve_static_assets = true 24 | 25 | # Compress JavaScripts and CSS. 26 | config.assets.js_compressor = :uglifier 27 | # config.assets.css_compressor = :sass 28 | 29 | # Do not fallback to assets pipeline if a precompiled asset is missed. 30 | config.assets.compile = false 31 | 32 | # Generate digests for assets URLs. 33 | config.assets.digest = true 34 | 35 | # Version of your assets, change this if you want to expire all your assets. 36 | config.assets.version = '1.0' 37 | 38 | # Specifies the header that your server uses for sending files. 39 | # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache 40 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx 41 | 42 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 43 | # config.force_ssl = true 44 | 45 | # Set to :debug to see everything in the log. 46 | config.log_level = :info 47 | 48 | # Prepend all log lines with the following tags. 49 | # config.log_tags = [ :subdomain, :uuid ] 50 | 51 | # Use a different logger for distributed setups. 52 | # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 53 | 54 | # Use a different cache store in production. 55 | # config.cache_store = :mem_cache_store 56 | 57 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 58 | # config.action_controller.asset_host = "http://assets.example.com" 59 | 60 | # Precompile additional assets. 61 | # application.js.coffee, application.css.scss, and all non-JS/CSS in app/assets folder are already added. 62 | assets = [] 63 | %w(javascripts/**/*.js javascripts/**/*.coffee stylesheets/**/*.css stylesheets/**/*.scss **/*.erb *.png).each do |ext| 64 | assets.concat Dir.glob File.join Rails.root, 'app/assets', ext 65 | end 66 | assets << '*.png' 67 | config.assets.precompile += assets 68 | 69 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 70 | # the I18n.default_locale when a translation can not be found). 71 | config.i18n.fallbacks = true 72 | 73 | # Send deprecation notices to registered listeners. 74 | config.active_support.deprecation = :notify 75 | 76 | # Disable automatic flushing of the log to improve performance. 77 | # config.autoflush_log = false 78 | 79 | # Use default logging formatter so that PID and timestamp are not suppressed. 80 | config.log_formatter = ::Logger::Formatter.new 81 | 82 | 83 | config.es = Stretcher::Server.new 'http://localhost:9200/' 84 | config.documents_path = File.expand_path File.join Rails.root, '../../../docs' 85 | end 86 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | DocSearch::Application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Do not eager load code on boot. This avoids loading your whole application 11 | # just for the purpose of running a single test. If you are using a tool that 12 | # preloads Rails for running tests, you may have to set it to true. 13 | config.eager_load = false 14 | 15 | # Configure static asset server for tests with Cache-Control for performance. 16 | config.serve_static_assets = true 17 | config.static_cache_control = "public, max-age=3600" 18 | 19 | # Show full error reports and disable caching. 20 | config.consider_all_requests_local = true 21 | config.action_controller.perform_caching = false 22 | 23 | # Raise exceptions instead of rendering exception templates. 24 | config.action_dispatch.show_exceptions = false 25 | 26 | # Disable request forgery protection in test environment. 27 | config.action_controller.allow_forgery_protection = false 28 | 29 | # Tell Action Mailer not to deliver emails to the real world. 30 | # The :test delivery method accumulates sent emails in the 31 | # ActionMailer::Base.deliveries array. 32 | config.action_mailer.delivery_method = :test 33 | 34 | # Print deprecation notices to the stderr. 35 | config.active_support.deprecation = :stderr 36 | end 37 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | # Mime::Type.register_alias "text/html", :iphone 6 | -------------------------------------------------------------------------------- /config/initializers/natural_sort.rb: -------------------------------------------------------------------------------- 1 | require 'natural_sort_kernel' 2 | -------------------------------------------------------------------------------- /config/initializers/secret_token.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rake secret` to generate a secure secret key. 9 | 10 | # Make sure your secret_key_base is kept private 11 | # if you're sharing your code publicly. 12 | DocSearch::Application.config.secret_key_base = '4588825e6090fd3b72a9d1a35999fbba49f5f2d7803803d7c5f533b3893fd4df1e11a970e70d13e663306e04ce28062f1043ec8f97dc9c4ddf762087d9e2a38a' 13 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | DocSearch::Application.config.session_store :cookie_store, key: '_doc-search_session' 4 | -------------------------------------------------------------------------------- /config/initializers/sprockets_helpers.rb: -------------------------------------------------------------------------------- 1 | Rails.application.assets.context_class.class_eval do 2 | def path(name, params=[], **options) 3 | helper = "#{name}_path" 4 | names = [] 5 | replace = [] 6 | params.each_with_index do |n, p| 7 | arg = "__p#{p}__" 8 | names << arg 9 | replace << [arg, "\#{#{n}}"] 10 | end 11 | query_params = options.delete :params 12 | unless query_params.nil? 13 | query_params.each_with_index do |n, p| 14 | arg = "__q#{p}__" 15 | names << arg 16 | replace << [arg, "\#{#{n}}"] 17 | options[n] = arg 18 | end 19 | end 20 | 21 | path = Rails.application.routes.url_helpers.send helper, *names, **options 22 | replace.each { |p, n| path.sub! p, n } 23 | "#{config.relative_url_root}#{path}" 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] if respond_to?(:wrap_parameters) 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | DocSearch::Application.routes.draw do 2 | root 'site#index' 3 | 4 | resources :documents, only: %i(index show) do 5 | resources :pages, only: %i(show) 6 | end 7 | 8 | resources :pages, only: %i(index) do 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /db/migrate/20140513215559_create_documents.rb: -------------------------------------------------------------------------------- 1 | class CreateDocuments < ActiveRecord::Migration 2 | def change 3 | create_table :documents do |t| 4 | t.string :name, null: false 5 | t.integer :pages, null: false 6 | 7 | t.timestamps 8 | end 9 | 10 | add_index :documents, :name, unique: true 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /db/schema.rb: -------------------------------------------------------------------------------- 1 | # encoding: UTF-8 2 | # This file is auto-generated from the current state of the database. Instead 3 | # of editing this file, please use the migrations feature of Active Record to 4 | # incrementally modify your database, and then regenerate this schema definition. 5 | # 6 | # Note that this schema.rb definition is the authoritative source for your 7 | # database schema. If you need to create the application database on another 8 | # system, you should be using db:schema:load, not running all the migrations 9 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations 10 | # you'll amass, the slower it'll run and the greater likelihood for issues). 11 | # 12 | # It's strongly recommended that you check this file into your version control system. 13 | 14 | ActiveRecord::Schema.define(version: 20140513215559) do 15 | 16 | create_table "documents", force: true do |t| 17 | t.string "name", null: false 18 | t.integer "pages", null: false 19 | t.datetime "created_at" 20 | t.datetime "updated_at" 21 | end 22 | 23 | add_index "documents", ["name"], name: "index_documents_on_name", unique: true 24 | 25 | end 26 | -------------------------------------------------------------------------------- /db/seeds.rb: -------------------------------------------------------------------------------- 1 | ActiveRecord::Base.transaction do 2 | Dir["#{Document::PDF_PATH}/*.pdf"].each do |doc| 3 | o, _ = Open3.capture2e 'identify', '-format', '%n', doc 4 | name = File.basename doc, '.pdf' 5 | pages = o.to_i 6 | p Document.create! name: name, pages: pages 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/lib/assets/.keep -------------------------------------------------------------------------------- /lib/capistrano/tasks/assets_precompile.rake: -------------------------------------------------------------------------------- 1 | task :precompile do 2 | Dir.chdir fetch :rsync_stage do 3 | system({ 'RAILS_ENV' => fetch(:rails_env).to_s }, 'bundle', 'exec', 'rake', 'assets:precompile') 4 | end 5 | end 6 | 7 | after 'rsync:stage', 'precompile' 8 | -------------------------------------------------------------------------------- /lib/capistrano/tasks/fixperms.rake: -------------------------------------------------------------------------------- 1 | task :fixperms do 2 | on release_roles :app do 3 | execute 'chown', '-R', 'www-data:www-data', release_path 4 | end 5 | end 6 | 7 | before 'deploy:publishing', 'fixperms' 8 | -------------------------------------------------------------------------------- /lib/capistrano/tasks/restart.rake: -------------------------------------------------------------------------------- 1 | namespace :deploy do 2 | task :restart do 3 | on release_roles :app do 4 | execute :touch, release_path.join('tmp/restart.txt') 5 | end 6 | end 7 | end 8 | 9 | after 'deploy:publishing', 'deploy:restart' 10 | -------------------------------------------------------------------------------- /lib/tasks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/lib/tasks/.keep -------------------------------------------------------------------------------- /log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/log/.keep -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The page you were looking for doesn't exist (404) 5 | 48 | 49 | 50 | 51 | 52 |
53 |

The page you were looking for doesn't exist.

54 |

You may have mistyped the address or the page may have moved.

55 |
56 |

If you are the application owner check the logs for more information.

57 | 58 | 59 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 48 | 49 | 50 | 51 | 52 |
53 |

The change you wanted was rejected.

54 |

Maybe you tried to change something you didn't have access to.

55 |
56 |

If you are the application owner check the logs for more information.

57 | 58 | 59 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | We're sorry, but something went wrong (500) 5 | 48 | 49 | 50 | 51 | 52 |
53 |

We're sorry, but something went wrong.

54 |
55 |

If you are the application owner check the logs for more information.

56 | 57 | 58 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /test/controllers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/controllers/.keep -------------------------------------------------------------------------------- /test/fixtures/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/fixtures/.keep -------------------------------------------------------------------------------- /test/fixtures/documents.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | one: 4 | name: MyString 5 | pages: 1 6 | 7 | two: 8 | name: MyString 9 | pages: 1 10 | -------------------------------------------------------------------------------- /test/helpers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/helpers/.keep -------------------------------------------------------------------------------- /test/integration/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/integration/.keep -------------------------------------------------------------------------------- /test/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/mailers/.keep -------------------------------------------------------------------------------- /test/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/test/models/.keep -------------------------------------------------------------------------------- /test/models/document_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class DocumentTest < ActiveSupport::TestCase 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- 1 | ENV["RAILS_ENV"] ||= "test" 2 | require File.expand_path('../../config/environment', __FILE__) 3 | require 'rails/test_help' 4 | 5 | class ActiveSupport::TestCase 6 | ActiveRecord::Migration.check_pending! 7 | 8 | # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. 9 | # 10 | # Note: You'll currently still have to declare fixtures explicitly in integration tests 11 | # -- they do not yet inherit this setting 12 | fixtures :all 13 | 14 | # Add more helper methods to be used by all tests here... 15 | end 16 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsa-observer/nsa-doc-search/729835b7a4fdf596a9f5efea12027040fd7752f2/vendor/assets/javascripts/.keep -------------------------------------------------------------------------------- /vendor/assets/javascripts/bootstrap-lightbox.js: -------------------------------------------------------------------------------- 1 | 2 | +function ($) { "use strict"; 3 | 4 | // LIGHTBOX CLASS DEFINITION 5 | // ====================== 6 | 7 | var Lightbox = function (element, options) 8 | { 9 | this.options = options 10 | this.$element = $(element) 11 | this.$backdrop = null 12 | this.isShown = null 13 | 14 | if (this.options.remote) this.$element.load(this.options.remote) 15 | } 16 | 17 | // We depend upon Twitter Bootstrap's Modal library to simplify things here 18 | Lightbox.prototype = $.extend({},$.fn.modal.Constructor.prototype); 19 | 20 | Lightbox.prototype.constructor = Lightbox; 21 | 22 | Lightbox.DEFAULTS = { 23 | backdrop: true, 24 | keyboard: true, 25 | show: true 26 | } 27 | 28 | Lightbox.prototype.show = function (_relatedTarget) 29 | { 30 | var that = this; 31 | var e = $.Event('show.bs.lightbox', { relatedTarget: _relatedTarget }); 32 | 33 | this.$element.trigger(e); 34 | 35 | if (this.isShown || e.isDefaultPrevented()) return; 36 | 37 | this.isShown = true; 38 | 39 | this.escape(); 40 | 41 | this.$element.on('click.dismiss.lightbox', '[data-dismiss="lightbox"]', $.proxy(this.hide, this)); 42 | 43 | // This bit is added since we don't display until we have the size 44 | // which prevents image jumping 45 | this.preloadSize(function() 46 | { 47 | that.backdrop(function () 48 | { 49 | var transition = $.support.transition && that.$element.hasClass('fade'); 50 | 51 | if (!that.$element.parent().length) 52 | { 53 | that.$element.appendTo(document.body); // don't move modals dom position 54 | } 55 | 56 | that.$element.show(); 57 | 58 | if (transition) 59 | { 60 | that.$element[0].offsetWidth; // force reflow 61 | } 62 | 63 | that.$element 64 | .addClass('in') 65 | .attr('aria-hidden', false); 66 | 67 | that.enforceFocus(); 68 | 69 | var e = $.Event('shown.bs.lightbox', { relatedTarget: _relatedTarget }); 70 | 71 | transition ? 72 | that.$element.find('.lightbox-dialog') // wait for modal to slide in 73 | .one($.support.transition.end, function () 74 | { 75 | that.$element.focus().trigger(e); 76 | }) 77 | .emulateTransitionEnd(300) : 78 | that.$element.focus().trigger(e); 79 | }); 80 | }); 81 | }; 82 | 83 | Lightbox.prototype.hide = function (e, slide) 84 | { 85 | if (e) e.preventDefault(); 86 | 87 | e = $.Event('hide.bs.lightbox'); 88 | 89 | this.$element.trigger(e); 90 | 91 | if (!this.isShown || e.isDefaultPrevented()) return; 92 | 93 | this.isShown = false; 94 | 95 | this.escape(); 96 | 97 | $(document).off('focusin.bs.lightbox'); 98 | 99 | this.$element 100 | .removeClass('in') 101 | .attr('aria-hidden', true) 102 | .off('click.dismiss.lightbox'); 103 | 104 | $.support.transition && this.$element.hasClass('fade') ? 105 | this.$element 106 | .one($.support.transition.end, $.proxy(this.hideModal(slide), this)) 107 | .emulateTransitionEnd(300) : 108 | this.hideModal(slide); 109 | }; 110 | 111 | Lightbox.prototype.enforceFocus = function () { 112 | $(document) 113 | .off('focusin.bs.lightbox') // guard against infinite focus loop 114 | .on('focusin.bs.lightbox', $.proxy(function (e) 115 | { 116 | if (this.$element[0] !== e.target && !this.$element.has(e.target).length) 117 | { 118 | this.$element.focus(); 119 | } 120 | }, this)); 121 | }; 122 | 123 | Lightbox.prototype.escape = function () 124 | { 125 | if (this.isShown && this.options.keyboard) 126 | { 127 | this.$element.on('keyup.dismiss.bs.lightbox', $.proxy(function (e) 128 | { 129 | e.which == 27 && this.hide(); 130 | }, this)); 131 | } 132 | else if (!this.isShown) 133 | { 134 | this.$element.off('keyup.dismiss.bs.lightbox'); 135 | } 136 | } 137 | 138 | Lightbox.prototype.hideModal = function (slide) 139 | { 140 | var that = this; 141 | this.$element.hide(); 142 | this.backdrop(function () 143 | { 144 | that.removeBackdrop(); 145 | 146 | // Don't trigger hidden event if sliding between lightboxes 147 | if(!slide) that.$element.trigger('hidden.bs.lightbox'); 148 | }); 149 | }; 150 | 151 | Lightbox.prototype.backdrop = function (callback) 152 | { 153 | var that = this 154 | var animate = this.$element.hasClass('fade') ? 'fade' : '' 155 | if (this.isShown && this.options.backdrop) 156 | { 157 | var doAnimate = $.support.transition && animate; 158 | 159 | this.$backdrop = $('