##// END OF EJS Templates
Merge pull request #4735 from minrk/better-errors...
Thomas Kluyver -
r14091:ae073a16 merge
parent child Browse files
Show More
@@ -0,0 +1,20 b''
1 div.error {
2 margin: 2em;
3 text-align: center;
4 }
5
6 div.error > h1 {
7 font-size: 500%;
8 line-height: normal;
9 }
10
11 div.error > p {
12 font-size: 200%;
13 line-height: normal;
14 }
15
16 div.traceback-wrapper {
17 text-align: left;
18 max-width: 800px;
19 margin: auto;
20 }
@@ -0,0 +1,5 b''
1 {% extends "error.html" %}
2 {% block error_detail %}
3 <p>You are requesting a page that does not exist!</p>
4 {% endblock %}
5
@@ -0,0 +1,31 b''
1 {% extends "page.html" %}
2
3 {% block login_widget %}
4 {% endblock %}
5
6 {% block stylesheet %}
7 {{super()}}
8 <style type="text/css">
9 /* disable initial hide */
10 div#header, div#site {
11 display: block;
12 }
13 </style>
14 {% endblock %}
15 {% block site %}
16
17 <div class="error">
18 {% block h1_error %}
19 <h1>{{status_code}} : {{status_message}}</h1>
20 {% endblock h1_error %}
21 {% block error_detail %}
22 {% if message %}
23 <p>The error was:</p>
24 <div class="traceback-wrapper">
25 <pre class="traceback">{{message}}</pre>
26 </div>
27 {% endif %}
28 {% endblock %}
29 </header>
30
31 {% endblock %}
@@ -1,378 +1,416 b''
1 """Base Tornado handlers for the notebook.
1 """Base Tornado handlers for the notebook.
2
2
3 Authors:
3 Authors:
4
4
5 * Brian Granger
5 * Brian Granger
6 """
6 """
7
7
8 #-----------------------------------------------------------------------------
8 #-----------------------------------------------------------------------------
9 # Copyright (C) 2011 The IPython Development Team
9 # Copyright (C) 2011 The IPython Development Team
10 #
10 #
11 # Distributed under the terms of the BSD License. The full license is in
11 # Distributed under the terms of the BSD License. The full license is in
12 # the file COPYING, distributed as part of this software.
12 # the file COPYING, distributed as part of this software.
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 # Imports
16 # Imports
17 #-----------------------------------------------------------------------------
17 #-----------------------------------------------------------------------------
18
18
19
19
20 import functools
20 import functools
21 import json
21 import json
22 import logging
22 import logging
23 import os
23 import os
24 import re
24 import re
25 import stat
25 import stat
26 import sys
26 import sys
27 import traceback
27 import traceback
28 try:
29 # py3
30 from http.client import responses
31 except ImportError:
32 from httplib import responses
28
33
34 from jinja2 import TemplateNotFound
29 from tornado import web
35 from tornado import web
30
36
31 try:
37 try:
32 from tornado.log import app_log
38 from tornado.log import app_log
33 except ImportError:
39 except ImportError:
34 app_log = logging.getLogger()
40 app_log = logging.getLogger()
35
41
36 from IPython.config import Application
42 from IPython.config import Application
37 from IPython.utils.path import filefind
43 from IPython.utils.path import filefind
38 from IPython.utils.py3compat import string_types
44 from IPython.utils.py3compat import string_types
39
45
40 # UF_HIDDEN is a stat flag not defined in the stat module.
46 # UF_HIDDEN is a stat flag not defined in the stat module.
41 # It is used by BSD to indicate hidden files.
47 # It is used by BSD to indicate hidden files.
42 UF_HIDDEN = getattr(stat, 'UF_HIDDEN', 32768)
48 UF_HIDDEN = getattr(stat, 'UF_HIDDEN', 32768)
43
49
44 #-----------------------------------------------------------------------------
50 #-----------------------------------------------------------------------------
45 # Top-level handlers
51 # Top-level handlers
46 #-----------------------------------------------------------------------------
52 #-----------------------------------------------------------------------------
47 non_alphanum = re.compile(r'[^A-Za-z0-9]')
53 non_alphanum = re.compile(r'[^A-Za-z0-9]')
48
54
49 class RequestHandler(web.RequestHandler):
55 class AuthenticatedHandler(web.RequestHandler):
50 """RequestHandler with default variable setting."""
51
52 def render(*args, **kwargs):
53 kwargs.setdefault('message', '')
54 return web.RequestHandler.render(*args, **kwargs)
55
56 class AuthenticatedHandler(RequestHandler):
57 """A RequestHandler with an authenticated user."""
56 """A RequestHandler with an authenticated user."""
58
57
59 def clear_login_cookie(self):
58 def clear_login_cookie(self):
60 self.clear_cookie(self.cookie_name)
59 self.clear_cookie(self.cookie_name)
61
60
62 def get_current_user(self):
61 def get_current_user(self):
63 user_id = self.get_secure_cookie(self.cookie_name)
62 user_id = self.get_secure_cookie(self.cookie_name)
64 # For now the user_id should not return empty, but it could eventually
63 # For now the user_id should not return empty, but it could eventually
65 if user_id == '':
64 if user_id == '':
66 user_id = 'anonymous'
65 user_id = 'anonymous'
67 if user_id is None:
66 if user_id is None:
68 # prevent extra Invalid cookie sig warnings:
67 # prevent extra Invalid cookie sig warnings:
69 self.clear_login_cookie()
68 self.clear_login_cookie()
70 if not self.login_available:
69 if not self.login_available:
71 user_id = 'anonymous'
70 user_id = 'anonymous'
72 return user_id
71 return user_id
73
72
74 @property
73 @property
75 def cookie_name(self):
74 def cookie_name(self):
76 default_cookie_name = non_alphanum.sub('-', 'username-{}'.format(
75 default_cookie_name = non_alphanum.sub('-', 'username-{}'.format(
77 self.request.host
76 self.request.host
78 ))
77 ))
79 return self.settings.get('cookie_name', default_cookie_name)
78 return self.settings.get('cookie_name', default_cookie_name)
80
79
81 @property
80 @property
82 def password(self):
81 def password(self):
83 """our password"""
82 """our password"""
84 return self.settings.get('password', '')
83 return self.settings.get('password', '')
85
84
86 @property
85 @property
87 def logged_in(self):
86 def logged_in(self):
88 """Is a user currently logged in?
87 """Is a user currently logged in?
89
88
90 """
89 """
91 user = self.get_current_user()
90 user = self.get_current_user()
92 return (user and not user == 'anonymous')
91 return (user and not user == 'anonymous')
93
92
94 @property
93 @property
95 def login_available(self):
94 def login_available(self):
96 """May a user proceed to log in?
95 """May a user proceed to log in?
97
96
98 This returns True if login capability is available, irrespective of
97 This returns True if login capability is available, irrespective of
99 whether the user is already logged in or not.
98 whether the user is already logged in or not.
100
99
101 """
100 """
102 return bool(self.settings.get('password', ''))
101 return bool(self.settings.get('password', ''))
103
102
104
103
105 class IPythonHandler(AuthenticatedHandler):
104 class IPythonHandler(AuthenticatedHandler):
106 """IPython-specific extensions to authenticated handling
105 """IPython-specific extensions to authenticated handling
107
106
108 Mostly property shortcuts to IPython-specific settings.
107 Mostly property shortcuts to IPython-specific settings.
109 """
108 """
110
109
111 @property
110 @property
112 def config(self):
111 def config(self):
113 return self.settings.get('config', None)
112 return self.settings.get('config', None)
114
113
115 @property
114 @property
116 def log(self):
115 def log(self):
117 """use the IPython log by default, falling back on tornado's logger"""
116 """use the IPython log by default, falling back on tornado's logger"""
118 if Application.initialized():
117 if Application.initialized():
119 return Application.instance().log
118 return Application.instance().log
120 else:
119 else:
121 return app_log
120 return app_log
122
121
123 @property
122 @property
124 def use_less(self):
123 def use_less(self):
125 """Use less instead of css in templates"""
124 """Use less instead of css in templates"""
126 return self.settings.get('use_less', False)
125 return self.settings.get('use_less', False)
127
126
128 #---------------------------------------------------------------
127 #---------------------------------------------------------------
129 # URLs
128 # URLs
130 #---------------------------------------------------------------
129 #---------------------------------------------------------------
131
130
132 @property
131 @property
133 def ws_url(self):
132 def ws_url(self):
134 """websocket url matching the current request
133 """websocket url matching the current request
135
134
136 By default, this is just `''`, indicating that it should match
135 By default, this is just `''`, indicating that it should match
137 the same host, protocol, port, etc.
136 the same host, protocol, port, etc.
138 """
137 """
139 return self.settings.get('websocket_url', '')
138 return self.settings.get('websocket_url', '')
140
139
141 @property
140 @property
142 def mathjax_url(self):
141 def mathjax_url(self):
143 return self.settings.get('mathjax_url', '')
142 return self.settings.get('mathjax_url', '')
144
143
145 @property
144 @property
146 def base_project_url(self):
145 def base_project_url(self):
147 return self.settings.get('base_project_url', '/')
146 return self.settings.get('base_project_url', '/')
148
147
149 @property
148 @property
150 def base_kernel_url(self):
149 def base_kernel_url(self):
151 return self.settings.get('base_kernel_url', '/')
150 return self.settings.get('base_kernel_url', '/')
152
151
153 #---------------------------------------------------------------
152 #---------------------------------------------------------------
154 # Manager objects
153 # Manager objects
155 #---------------------------------------------------------------
154 #---------------------------------------------------------------
156
155
157 @property
156 @property
158 def kernel_manager(self):
157 def kernel_manager(self):
159 return self.settings['kernel_manager']
158 return self.settings['kernel_manager']
160
159
161 @property
160 @property
162 def notebook_manager(self):
161 def notebook_manager(self):
163 return self.settings['notebook_manager']
162 return self.settings['notebook_manager']
164
163
165 @property
164 @property
166 def cluster_manager(self):
165 def cluster_manager(self):
167 return self.settings['cluster_manager']
166 return self.settings['cluster_manager']
168
167
169 @property
168 @property
170 def session_manager(self):
169 def session_manager(self):
171 return self.settings['session_manager']
170 return self.settings['session_manager']
172
171
173 @property
172 @property
174 def project_dir(self):
173 def project_dir(self):
175 return self.notebook_manager.notebook_dir
174 return self.notebook_manager.notebook_dir
176
175
177 #---------------------------------------------------------------
176 #---------------------------------------------------------------
178 # template rendering
177 # template rendering
179 #---------------------------------------------------------------
178 #---------------------------------------------------------------
180
179
181 def get_template(self, name):
180 def get_template(self, name):
182 """Return the jinja template object for a given name"""
181 """Return the jinja template object for a given name"""
183 return self.settings['jinja2_env'].get_template(name)
182 return self.settings['jinja2_env'].get_template(name)
184
183
185 def render_template(self, name, **ns):
184 def render_template(self, name, **ns):
186 ns.update(self.template_namespace)
185 ns.update(self.template_namespace)
187 template = self.get_template(name)
186 template = self.get_template(name)
188 return template.render(**ns)
187 return template.render(**ns)
189
188
190 @property
189 @property
191 def template_namespace(self):
190 def template_namespace(self):
192 return dict(
191 return dict(
193 base_project_url=self.base_project_url,
192 base_project_url=self.base_project_url,
194 base_kernel_url=self.base_kernel_url,
193 base_kernel_url=self.base_kernel_url,
195 logged_in=self.logged_in,
194 logged_in=self.logged_in,
196 login_available=self.login_available,
195 login_available=self.login_available,
197 use_less=self.use_less,
196 use_less=self.use_less,
198 static_url=self.static_url,
197 static_url=self.static_url,
199 )
198 )
200
199
201 def get_json_body(self):
200 def get_json_body(self):
202 """Return the body of the request as JSON data."""
201 """Return the body of the request as JSON data."""
203 if not self.request.body:
202 if not self.request.body:
204 return None
203 return None
205 # Do we need to call body.decode('utf-8') here?
204 # Do we need to call body.decode('utf-8') here?
206 body = self.request.body.strip().decode(u'utf-8')
205 body = self.request.body.strip().decode(u'utf-8')
207 try:
206 try:
208 model = json.loads(body)
207 model = json.loads(body)
209 except Exception:
208 except Exception:
210 self.log.debug("Bad JSON: %r", body)
209 self.log.debug("Bad JSON: %r", body)
211 self.log.error("Couldn't parse JSON", exc_info=True)
210 self.log.error("Couldn't parse JSON", exc_info=True)
212 raise web.HTTPError(400, u'Invalid JSON in body of request')
211 raise web.HTTPError(400, u'Invalid JSON in body of request')
213 return model
212 return model
214
213
214 def get_error_html(self, status_code, **kwargs):
215 """render custom error pages"""
216 exception = kwargs.get('exception')
217 message = ''
218 status_message = responses.get(status_code, 'Unknown HTTP Error')
219 if exception:
220 # get the custom message, if defined
221 try:
222 message = exception.log_message % exception.args
223 except Exception:
224 pass
225
226 # construct the custom reason, if defined
227 reason = getattr(exception, 'reason', '')
228 if reason:
229 status_message = reason
230
231 # build template namespace
232 ns = dict(
233 status_code=status_code,
234 status_message=status_message,
235 message=message,
236 exception=exception,
237 )
238
239 # render the template
240 try:
241 html = self.render_template('%s.html' % status_code, **ns)
242 except TemplateNotFound:
243 self.log.debug("No template for %d", status_code)
244 html = self.render_template('error.html', **ns)
245 return html
246
247
248 class Template404(IPythonHandler):
249 """Render our 404 template"""
250 def prepare(self):
251 raise web.HTTPError(404)
252
215
253
216 class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
254 class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
217 """static files should only be accessible when logged in"""
255 """static files should only be accessible when logged in"""
218
256
219 @web.authenticated
257 @web.authenticated
220 def get(self, path):
258 def get(self, path):
221 if os.path.splitext(path)[1] == '.ipynb':
259 if os.path.splitext(path)[1] == '.ipynb':
222 name = os.path.basename(path)
260 name = os.path.basename(path)
223 self.set_header('Content-Type', 'application/json')
261 self.set_header('Content-Type', 'application/json')
224 self.set_header('Content-Disposition','attachment; filename="%s"' % name)
262 self.set_header('Content-Disposition','attachment; filename="%s"' % name)
225
263
226 return web.StaticFileHandler.get(self, path)
264 return web.StaticFileHandler.get(self, path)
227
265
228 def compute_etag(self):
266 def compute_etag(self):
229 return None
267 return None
230
268
231 def validate_absolute_path(self, root, absolute_path):
269 def validate_absolute_path(self, root, absolute_path):
232 """Validate and return the absolute path.
270 """Validate and return the absolute path.
233
271
234 Requires tornado 3.1
272 Requires tornado 3.1
235
273
236 Adding to tornado's own handling, forbids the serving of hidden files.
274 Adding to tornado's own handling, forbids the serving of hidden files.
237 """
275 """
238 abs_path = super(AuthenticatedFileHandler, self).validate_absolute_path(root, absolute_path)
276 abs_path = super(AuthenticatedFileHandler, self).validate_absolute_path(root, absolute_path)
239 abs_root = os.path.abspath(root)
277 abs_root = os.path.abspath(root)
240 self.forbid_hidden(abs_root, abs_path)
278 self.forbid_hidden(abs_root, abs_path)
241 return abs_path
279 return abs_path
242
280
243 def forbid_hidden(self, absolute_root, absolute_path):
281 def forbid_hidden(self, absolute_root, absolute_path):
244 """Raise 403 if a file is hidden or contained in a hidden directory.
282 """Raise 403 if a file is hidden or contained in a hidden directory.
245
283
246 Hidden is determined by either name starting with '.'
284 Hidden is determined by either name starting with '.'
247 or the UF_HIDDEN flag as reported by stat
285 or the UF_HIDDEN flag as reported by stat
248 """
286 """
249 inside_root = absolute_path[len(absolute_root):]
287 inside_root = absolute_path[len(absolute_root):]
250 if any(part.startswith('.') for part in inside_root.split(os.sep)):
288 if any(part.startswith('.') for part in inside_root.split(os.sep)):
251 raise web.HTTPError(403)
289 raise web.HTTPError(403)
252
290
253 # check UF_HIDDEN on any location up to root
291 # check UF_HIDDEN on any location up to root
254 path = absolute_path
292 path = absolute_path
255 while path and path.startswith(absolute_root) and path != absolute_root:
293 while path and path.startswith(absolute_root) and path != absolute_root:
256 st = os.stat(path)
294 st = os.stat(path)
257 if getattr(st, 'st_flags', 0) & UF_HIDDEN:
295 if getattr(st, 'st_flags', 0) & UF_HIDDEN:
258 raise web.HTTPError(403)
296 raise web.HTTPError(403)
259 path = os.path.dirname(path)
297 path = os.path.dirname(path)
260
298
261 return absolute_path
299 return absolute_path
262
300
263
301
264 def json_errors(method):
302 def json_errors(method):
265 """Decorate methods with this to return GitHub style JSON errors.
303 """Decorate methods with this to return GitHub style JSON errors.
266
304
267 This should be used on any JSON API on any handler method that can raise HTTPErrors.
305 This should be used on any JSON API on any handler method that can raise HTTPErrors.
268
306
269 This will grab the latest HTTPError exception using sys.exc_info
307 This will grab the latest HTTPError exception using sys.exc_info
270 and then:
308 and then:
271
309
272 1. Set the HTTP status code based on the HTTPError
310 1. Set the HTTP status code based on the HTTPError
273 2. Create and return a JSON body with a message field describing
311 2. Create and return a JSON body with a message field describing
274 the error in a human readable form.
312 the error in a human readable form.
275 """
313 """
276 @functools.wraps(method)
314 @functools.wraps(method)
277 def wrapper(self, *args, **kwargs):
315 def wrapper(self, *args, **kwargs):
278 try:
316 try:
279 result = method(self, *args, **kwargs)
317 result = method(self, *args, **kwargs)
280 except web.HTTPError as e:
318 except web.HTTPError as e:
281 status = e.status_code
319 status = e.status_code
282 message = e.log_message
320 message = e.log_message
283 self.set_status(e.status_code)
321 self.set_status(e.status_code)
284 self.finish(json.dumps(dict(message=message)))
322 self.finish(json.dumps(dict(message=message)))
285 except Exception:
323 except Exception:
286 self.log.error("Unhandled error in API request", exc_info=True)
324 self.log.error("Unhandled error in API request", exc_info=True)
287 status = 500
325 status = 500
288 message = "Unknown server error"
326 message = "Unknown server error"
289 t, value, tb = sys.exc_info()
327 t, value, tb = sys.exc_info()
290 self.set_status(status)
328 self.set_status(status)
291 tb_text = ''.join(traceback.format_exception(t, value, tb))
329 tb_text = ''.join(traceback.format_exception(t, value, tb))
292 reply = dict(message=message, traceback=tb_text)
330 reply = dict(message=message, traceback=tb_text)
293 self.finish(json.dumps(reply))
331 self.finish(json.dumps(reply))
294 else:
332 else:
295 return result
333 return result
296 return wrapper
334 return wrapper
297
335
298
336
299
337
300 #-----------------------------------------------------------------------------
338 #-----------------------------------------------------------------------------
301 # File handler
339 # File handler
302 #-----------------------------------------------------------------------------
340 #-----------------------------------------------------------------------------
303
341
304 # to minimize subclass changes:
342 # to minimize subclass changes:
305 HTTPError = web.HTTPError
343 HTTPError = web.HTTPError
306
344
307 class FileFindHandler(web.StaticFileHandler):
345 class FileFindHandler(web.StaticFileHandler):
308 """subclass of StaticFileHandler for serving files from a search path"""
346 """subclass of StaticFileHandler for serving files from a search path"""
309
347
310 # cache search results, don't search for files more than once
348 # cache search results, don't search for files more than once
311 _static_paths = {}
349 _static_paths = {}
312
350
313 def initialize(self, path, default_filename=None):
351 def initialize(self, path, default_filename=None):
314 if isinstance(path, string_types):
352 if isinstance(path, string_types):
315 path = [path]
353 path = [path]
316
354
317 self.root = tuple(
355 self.root = tuple(
318 os.path.abspath(os.path.expanduser(p)) + os.sep for p in path
356 os.path.abspath(os.path.expanduser(p)) + os.sep for p in path
319 )
357 )
320 self.default_filename = default_filename
358 self.default_filename = default_filename
321
359
322 def compute_etag(self):
360 def compute_etag(self):
323 return None
361 return None
324
362
325 @classmethod
363 @classmethod
326 def get_absolute_path(cls, roots, path):
364 def get_absolute_path(cls, roots, path):
327 """locate a file to serve on our static file search path"""
365 """locate a file to serve on our static file search path"""
328 with cls._lock:
366 with cls._lock:
329 if path in cls._static_paths:
367 if path in cls._static_paths:
330 return cls._static_paths[path]
368 return cls._static_paths[path]
331 try:
369 try:
332 abspath = os.path.abspath(filefind(path, roots))
370 abspath = os.path.abspath(filefind(path, roots))
333 except IOError:
371 except IOError:
334 # IOError means not found
372 # IOError means not found
335 return ''
373 return ''
336
374
337 cls._static_paths[path] = abspath
375 cls._static_paths[path] = abspath
338 return abspath
376 return abspath
339
377
340 def validate_absolute_path(self, root, absolute_path):
378 def validate_absolute_path(self, root, absolute_path):
341 """check if the file should be served (raises 404, 403, etc.)"""
379 """check if the file should be served (raises 404, 403, etc.)"""
342 if absolute_path == '':
380 if absolute_path == '':
343 raise web.HTTPError(404)
381 raise web.HTTPError(404)
344
382
345 for root in self.root:
383 for root in self.root:
346 if (absolute_path + os.sep).startswith(root):
384 if (absolute_path + os.sep).startswith(root):
347 break
385 break
348
386
349 return super(FileFindHandler, self).validate_absolute_path(root, absolute_path)
387 return super(FileFindHandler, self).validate_absolute_path(root, absolute_path)
350
388
351
389
352 class TrailingSlashHandler(web.RequestHandler):
390 class TrailingSlashHandler(web.RequestHandler):
353 """Simple redirect handler that strips trailing slashes
391 """Simple redirect handler that strips trailing slashes
354
392
355 This should be the first, highest priority handler.
393 This should be the first, highest priority handler.
356 """
394 """
357
395
358 SUPPORTED_METHODS = ['GET']
396 SUPPORTED_METHODS = ['GET']
359
397
360 def get(self):
398 def get(self):
361 self.redirect(self.request.uri.rstrip('/'))
399 self.redirect(self.request.uri.rstrip('/'))
362
400
363 #-----------------------------------------------------------------------------
401 #-----------------------------------------------------------------------------
364 # URL pattern fragments for re-use
402 # URL pattern fragments for re-use
365 #-----------------------------------------------------------------------------
403 #-----------------------------------------------------------------------------
366
404
367 path_regex = r"(?P<path>(?:/.*)*)"
405 path_regex = r"(?P<path>(?:/.*)*)"
368 notebook_name_regex = r"(?P<name>[^/]+\.ipynb)"
406 notebook_name_regex = r"(?P<name>[^/]+\.ipynb)"
369 notebook_path_regex = "%s/%s" % (path_regex, notebook_name_regex)
407 notebook_path_regex = "%s/%s" % (path_regex, notebook_name_regex)
370
408
371 #-----------------------------------------------------------------------------
409 #-----------------------------------------------------------------------------
372 # URL to handler mappings
410 # URL to handler mappings
373 #-----------------------------------------------------------------------------
411 #-----------------------------------------------------------------------------
374
412
375
413
376 default_handlers = [
414 default_handlers = [
377 (r".*/", TrailingSlashHandler)
415 (r".*/", TrailingSlashHandler)
378 ]
416 ]
@@ -1,117 +1,143 b''
1 import io
1 import io
2 import os
2 import os
3 import zipfile
3 import zipfile
4
4
5 from tornado import web
5 from tornado import web
6
6
7 from ..base.handlers import IPythonHandler, notebook_path_regex
7 from ..base.handlers import IPythonHandler, notebook_path_regex
8 from IPython.nbformat.current import to_notebook_json
8 from IPython.nbformat.current import to_notebook_json
9 from IPython.nbconvert.exporters.export import exporter_map
9
10 from IPython.utils import tz
10 from IPython.utils import tz
11 from IPython.utils.py3compat import cast_bytes
11 from IPython.utils.py3compat import cast_bytes
12
12
13 import sys
13 import sys
14
14
15 def find_resource_files(output_files_dir):
15 def find_resource_files(output_files_dir):
16 files = []
16 files = []
17 for dirpath, dirnames, filenames in os.walk(output_files_dir):
17 for dirpath, dirnames, filenames in os.walk(output_files_dir):
18 files.extend([os.path.join(dirpath, f) for f in filenames])
18 files.extend([os.path.join(dirpath, f) for f in filenames])
19 return files
19 return files
20
20
21 def respond_zip(handler, name, output, resources):
21 def respond_zip(handler, name, output, resources):
22 """Zip up the output and resource files and respond with the zip file.
22 """Zip up the output and resource files and respond with the zip file.
23
23
24 Returns True if it has served a zip file, False if there are no resource
24 Returns True if it has served a zip file, False if there are no resource
25 files, in which case we serve the plain output file.
25 files, in which case we serve the plain output file.
26 """
26 """
27 # Check if we have resource files we need to zip
27 # Check if we have resource files we need to zip
28 output_files = resources.get('outputs', None)
28 output_files = resources.get('outputs', None)
29 if not output_files:
29 if not output_files:
30 return False
30 return False
31
31
32 # Headers
32 # Headers
33 zip_filename = os.path.splitext(name)[0] + '.zip'
33 zip_filename = os.path.splitext(name)[0] + '.zip'
34 handler.set_header('Content-Disposition',
34 handler.set_header('Content-Disposition',
35 'attachment; filename="%s"' % zip_filename)
35 'attachment; filename="%s"' % zip_filename)
36 handler.set_header('Content-Type', 'application/zip')
36 handler.set_header('Content-Type', 'application/zip')
37
37
38 # Prepare the zip file
38 # Prepare the zip file
39 buffer = io.BytesIO()
39 buffer = io.BytesIO()
40 zipf = zipfile.ZipFile(buffer, mode='w', compression=zipfile.ZIP_DEFLATED)
40 zipf = zipfile.ZipFile(buffer, mode='w', compression=zipfile.ZIP_DEFLATED)
41 output_filename = os.path.splitext(name)[0] + '.' + resources['output_extension']
41 output_filename = os.path.splitext(name)[0] + '.' + resources['output_extension']
42 zipf.writestr(output_filename, cast_bytes(output, 'utf-8'))
42 zipf.writestr(output_filename, cast_bytes(output, 'utf-8'))
43 for filename, data in output_files.items():
43 for filename, data in output_files.items():
44 zipf.writestr(os.path.basename(filename), data)
44 zipf.writestr(os.path.basename(filename), data)
45 zipf.close()
45 zipf.close()
46
46
47 handler.finish(buffer.getvalue())
47 handler.finish(buffer.getvalue())
48 return True
48 return True
49
49
50 def get_exporter(format, **kwargs):
51 """get an exporter, raising appropriate errors"""
52 # if this fails, will raise 500
53 try:
54 from IPython.nbconvert.exporters.export import exporter_map
55 except ImportError as e:
56 raise web.HTTPError(500, "Could not import nbconvert: %s" % e)
57
58 try:
59 Exporter = exporter_map[format]
60 except KeyError:
61 # should this be 400?
62 raise web.HTTPError(404, u"No exporter for format: %s" % format)
63
64 try:
65 return Exporter(**kwargs)
66 except Exception as e:
67 raise web.HTTPError(500, "Could not construct Exporter: %s" % e)
68
50 class NbconvertFileHandler(IPythonHandler):
69 class NbconvertFileHandler(IPythonHandler):
51
70
52 SUPPORTED_METHODS = ('GET',)
71 SUPPORTED_METHODS = ('GET',)
53
72
54 @web.authenticated
73 @web.authenticated
55 def get(self, format, path='', name=None):
74 def get(self, format, path='', name=None):
56 exporter = exporter_map[format](config=self.config)
75
76 exporter = get_exporter(format, config=self.config)
57
77
58 path = path.strip('/')
78 path = path.strip('/')
59 os_path = self.notebook_manager.get_os_path(name, path)
79 os_path = self.notebook_manager.get_os_path(name, path)
60 if not os.path.isfile(os_path):
80 if not os.path.isfile(os_path):
61 raise web.HTTPError(404, u'Notebook does not exist: %s' % name)
81 raise web.HTTPError(404, u'Notebook does not exist: %s' % name)
62
82
63 info = os.stat(os_path)
83 info = os.stat(os_path)
64 self.set_header('Last-Modified', tz.utcfromtimestamp(info.st_mtime))
84 self.set_header('Last-Modified', tz.utcfromtimestamp(info.st_mtime))
65
85
66 output, resources = exporter.from_filename(os_path)
86 try:
87 output, resources = exporter.from_filename(os_path)
88 except Exception as e:
89 raise web.HTTPError(500, "nbconvert failed: %s" % e)
67
90
68 if respond_zip(self, name, output, resources):
91 if respond_zip(self, name, output, resources):
69 return
92 return
70
93
71 # Force download if requested
94 # Force download if requested
72 if self.get_argument('download', 'false').lower() == 'true':
95 if self.get_argument('download', 'false').lower() == 'true':
73 filename = os.path.splitext(name)[0] + '.' + resources['output_extension']
96 filename = os.path.splitext(name)[0] + '.' + resources['output_extension']
74 self.set_header('Content-Disposition',
97 self.set_header('Content-Disposition',
75 'attachment; filename="%s"' % filename)
98 'attachment; filename="%s"' % filename)
76
99
77 # MIME type
100 # MIME type
78 if exporter.output_mimetype:
101 if exporter.output_mimetype:
79 self.set_header('Content-Type',
102 self.set_header('Content-Type',
80 '%s; charset=utf-8' % exporter.output_mimetype)
103 '%s; charset=utf-8' % exporter.output_mimetype)
81
104
82 self.finish(output)
105 self.finish(output)
83
106
84 class NbconvertPostHandler(IPythonHandler):
107 class NbconvertPostHandler(IPythonHandler):
85 SUPPORTED_METHODS = ('POST',)
108 SUPPORTED_METHODS = ('POST',)
86
109
87 @web.authenticated
110 @web.authenticated
88 def post(self, format):
111 def post(self, format):
89 exporter = exporter_map[format](config=self.config)
112 exporter = get_exporter(format, config=self.config)
90
113
91 model = self.get_json_body()
114 model = self.get_json_body()
92 nbnode = to_notebook_json(model['content'])
115 nbnode = to_notebook_json(model['content'])
93
116
94 output, resources = exporter.from_notebook_node(nbnode)
117 try:
118 output, resources = exporter.from_notebook_node(nbnode)
119 except Exception as e:
120 raise web.HTTPError(500, "nbconvert failed: %s" % e)
95
121
96 if respond_zip(self, nbnode.metadata.name, output, resources):
122 if respond_zip(self, nbnode.metadata.name, output, resources):
97 return
123 return
98
124
99 # MIME type
125 # MIME type
100 if exporter.output_mimetype:
126 if exporter.output_mimetype:
101 self.set_header('Content-Type',
127 self.set_header('Content-Type',
102 '%s; charset=utf-8' % exporter.output_mimetype)
128 '%s; charset=utf-8' % exporter.output_mimetype)
103
129
104 self.finish(output)
130 self.finish(output)
105
131
106 #-----------------------------------------------------------------------------
132 #-----------------------------------------------------------------------------
107 # URL to handler mappings
133 # URL to handler mappings
108 #-----------------------------------------------------------------------------
134 #-----------------------------------------------------------------------------
109
135
110 _format_regex = r"(?P<format>\w+)"
136 _format_regex = r"(?P<format>\w+)"
111
137
112
138
113 default_handlers = [
139 default_handlers = [
114 (r"/nbconvert/%s%s" % (_format_regex, notebook_path_regex),
140 (r"/nbconvert/%s%s" % (_format_regex, notebook_path_regex),
115 NbconvertFileHandler),
141 NbconvertFileHandler),
116 (r"/nbconvert/%s" % _format_regex, NbconvertPostHandler),
142 (r"/nbconvert/%s" % _format_regex, NbconvertPostHandler),
117 ] No newline at end of file
143 ]
@@ -1,751 +1,754 b''
1 # coding: utf-8
1 # coding: utf-8
2 """A tornado based IPython notebook server.
2 """A tornado based IPython notebook server.
3
3
4 Authors:
4 Authors:
5
5
6 * Brian Granger
6 * Brian Granger
7 """
7 """
8 from __future__ import print_function
8 from __future__ import print_function
9 #-----------------------------------------------------------------------------
9 #-----------------------------------------------------------------------------
10 # Copyright (C) 2013 The IPython Development Team
10 # Copyright (C) 2013 The IPython Development Team
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #-----------------------------------------------------------------------------
14 #-----------------------------------------------------------------------------
15
15
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17 # Imports
17 # Imports
18 #-----------------------------------------------------------------------------
18 #-----------------------------------------------------------------------------
19
19
20 # stdlib
20 # stdlib
21 import errno
21 import errno
22 import logging
22 import logging
23 import os
23 import os
24 import random
24 import random
25 import select
25 import select
26 import signal
26 import signal
27 import socket
27 import socket
28 import sys
28 import sys
29 import threading
29 import threading
30 import time
30 import time
31 import webbrowser
31 import webbrowser
32
32
33
33
34 # Third party
34 # Third party
35 # check for pyzmq 2.1.11
35 # check for pyzmq 2.1.11
36 from IPython.utils.zmqrelated import check_for_zmq
36 from IPython.utils.zmqrelated import check_for_zmq
37 check_for_zmq('2.1.11', 'IPython.html')
37 check_for_zmq('2.1.11', 'IPython.html')
38
38
39 from jinja2 import Environment, FileSystemLoader
39 from jinja2 import Environment, FileSystemLoader
40
40
41 # Install the pyzmq ioloop. This has to be done before anything else from
41 # Install the pyzmq ioloop. This has to be done before anything else from
42 # tornado is imported.
42 # tornado is imported.
43 from zmq.eventloop import ioloop
43 from zmq.eventloop import ioloop
44 ioloop.install()
44 ioloop.install()
45
45
46 # check for tornado 3.1.0
46 # check for tornado 3.1.0
47 msg = "The IPython Notebook requires tornado >= 3.1.0"
47 msg = "The IPython Notebook requires tornado >= 3.1.0"
48 try:
48 try:
49 import tornado
49 import tornado
50 except ImportError:
50 except ImportError:
51 raise ImportError(msg)
51 raise ImportError(msg)
52 try:
52 try:
53 version_info = tornado.version_info
53 version_info = tornado.version_info
54 except AttributeError:
54 except AttributeError:
55 raise ImportError(msg + ", but you have < 1.1.0")
55 raise ImportError(msg + ", but you have < 1.1.0")
56 if version_info < (3,1,0):
56 if version_info < (3,1,0):
57 raise ImportError(msg + ", but you have %s" % tornado.version)
57 raise ImportError(msg + ", but you have %s" % tornado.version)
58
58
59 from tornado import httpserver
59 from tornado import httpserver
60 from tornado import web
60 from tornado import web
61
61
62 # Our own libraries
62 # Our own libraries
63 from IPython.html import DEFAULT_STATIC_FILES_PATH
63 from IPython.html import DEFAULT_STATIC_FILES_PATH
64 from .base.handlers import Template404
64
65
65 from .services.kernels.kernelmanager import MappingKernelManager
66 from .services.kernels.kernelmanager import MappingKernelManager
66 from .services.notebooks.nbmanager import NotebookManager
67 from .services.notebooks.nbmanager import NotebookManager
67 from .services.notebooks.filenbmanager import FileNotebookManager
68 from .services.notebooks.filenbmanager import FileNotebookManager
68 from .services.clusters.clustermanager import ClusterManager
69 from .services.clusters.clustermanager import ClusterManager
69 from .services.sessions.sessionmanager import SessionManager
70 from .services.sessions.sessionmanager import SessionManager
70
71
71 from .base.handlers import AuthenticatedFileHandler, FileFindHandler
72 from .base.handlers import AuthenticatedFileHandler, FileFindHandler
72
73
73 from IPython.config.application import catch_config_error, boolean_flag
74 from IPython.config.application import catch_config_error, boolean_flag
74 from IPython.core.application import BaseIPythonApplication
75 from IPython.core.application import BaseIPythonApplication
75 from IPython.consoleapp import IPythonConsoleApp
76 from IPython.consoleapp import IPythonConsoleApp
76 from IPython.kernel import swallow_argv
77 from IPython.kernel import swallow_argv
77 from IPython.kernel.zmq.session import default_secure
78 from IPython.kernel.zmq.session import default_secure
78 from IPython.kernel.zmq.kernelapp import (
79 from IPython.kernel.zmq.kernelapp import (
79 kernel_flags,
80 kernel_flags,
80 kernel_aliases,
81 kernel_aliases,
81 )
82 )
82 from IPython.utils.importstring import import_item
83 from IPython.utils.importstring import import_item
83 from IPython.utils.localinterfaces import localhost
84 from IPython.utils.localinterfaces import localhost
84 from IPython.utils import submodule
85 from IPython.utils import submodule
85 from IPython.utils.traitlets import (
86 from IPython.utils.traitlets import (
86 Dict, Unicode, Integer, List, Bool, Bytes,
87 Dict, Unicode, Integer, List, Bool, Bytes,
87 DottedObjectName
88 DottedObjectName
88 )
89 )
89 from IPython.utils import py3compat
90 from IPython.utils import py3compat
90 from IPython.utils.path import filefind, get_ipython_dir
91 from IPython.utils.path import filefind, get_ipython_dir
91
92
92 from .utils import url_path_join
93 from .utils import url_path_join
93
94
94 #-----------------------------------------------------------------------------
95 #-----------------------------------------------------------------------------
95 # Module globals
96 # Module globals
96 #-----------------------------------------------------------------------------
97 #-----------------------------------------------------------------------------
97
98
98 _examples = """
99 _examples = """
99 ipython notebook # start the notebook
100 ipython notebook # start the notebook
100 ipython notebook --profile=sympy # use the sympy profile
101 ipython notebook --profile=sympy # use the sympy profile
101 ipython notebook --certfile=mycert.pem # use SSL/TLS certificate
102 ipython notebook --certfile=mycert.pem # use SSL/TLS certificate
102 """
103 """
103
104
104 #-----------------------------------------------------------------------------
105 #-----------------------------------------------------------------------------
105 # Helper functions
106 # Helper functions
106 #-----------------------------------------------------------------------------
107 #-----------------------------------------------------------------------------
107
108
108 def random_ports(port, n):
109 def random_ports(port, n):
109 """Generate a list of n random ports near the given port.
110 """Generate a list of n random ports near the given port.
110
111
111 The first 5 ports will be sequential, and the remaining n-5 will be
112 The first 5 ports will be sequential, and the remaining n-5 will be
112 randomly selected in the range [port-2*n, port+2*n].
113 randomly selected in the range [port-2*n, port+2*n].
113 """
114 """
114 for i in range(min(5, n)):
115 for i in range(min(5, n)):
115 yield port + i
116 yield port + i
116 for i in range(n-5):
117 for i in range(n-5):
117 yield max(1, port + random.randint(-2*n, 2*n))
118 yield max(1, port + random.randint(-2*n, 2*n))
118
119
119 def load_handlers(name):
120 def load_handlers(name):
120 """Load the (URL pattern, handler) tuples for each component."""
121 """Load the (URL pattern, handler) tuples for each component."""
121 name = 'IPython.html.' + name
122 name = 'IPython.html.' + name
122 mod = __import__(name, fromlist=['default_handlers'])
123 mod = __import__(name, fromlist=['default_handlers'])
123 return mod.default_handlers
124 return mod.default_handlers
124
125
125 #-----------------------------------------------------------------------------
126 #-----------------------------------------------------------------------------
126 # The Tornado web application
127 # The Tornado web application
127 #-----------------------------------------------------------------------------
128 #-----------------------------------------------------------------------------
128
129
129 class NotebookWebApplication(web.Application):
130 class NotebookWebApplication(web.Application):
130
131
131 def __init__(self, ipython_app, kernel_manager, notebook_manager,
132 def __init__(self, ipython_app, kernel_manager, notebook_manager,
132 cluster_manager, session_manager, log, base_project_url,
133 cluster_manager, session_manager, log, base_project_url,
133 settings_overrides):
134 settings_overrides):
134
135
135 settings = self.init_settings(
136 settings = self.init_settings(
136 ipython_app, kernel_manager, notebook_manager, cluster_manager,
137 ipython_app, kernel_manager, notebook_manager, cluster_manager,
137 session_manager, log, base_project_url, settings_overrides)
138 session_manager, log, base_project_url, settings_overrides)
138 handlers = self.init_handlers(settings)
139 handlers = self.init_handlers(settings)
139
140
140 super(NotebookWebApplication, self).__init__(handlers, **settings)
141 super(NotebookWebApplication, self).__init__(handlers, **settings)
141
142
142 def init_settings(self, ipython_app, kernel_manager, notebook_manager,
143 def init_settings(self, ipython_app, kernel_manager, notebook_manager,
143 cluster_manager, session_manager, log, base_project_url,
144 cluster_manager, session_manager, log, base_project_url,
144 settings_overrides):
145 settings_overrides):
145 # Python < 2.6.5 doesn't accept unicode keys in f(**kwargs), and
146 # Python < 2.6.5 doesn't accept unicode keys in f(**kwargs), and
146 # base_project_url will always be unicode, which will in turn
147 # base_project_url will always be unicode, which will in turn
147 # make the patterns unicode, and ultimately result in unicode
148 # make the patterns unicode, and ultimately result in unicode
148 # keys in kwargs to handler._execute(**kwargs) in tornado.
149 # keys in kwargs to handler._execute(**kwargs) in tornado.
149 # This enforces that base_project_url be ascii in that situation.
150 # This enforces that base_project_url be ascii in that situation.
150 #
151 #
151 # Note that the URLs these patterns check against are escaped,
152 # Note that the URLs these patterns check against are escaped,
152 # and thus guaranteed to be ASCII: 'hΓ©llo' is really 'h%C3%A9llo'.
153 # and thus guaranteed to be ASCII: 'hΓ©llo' is really 'h%C3%A9llo'.
153 base_project_url = py3compat.unicode_to_str(base_project_url, 'ascii')
154 base_project_url = py3compat.unicode_to_str(base_project_url, 'ascii')
154 template_path = settings_overrides.get("template_path", os.path.join(os.path.dirname(__file__), "templates"))
155 template_path = settings_overrides.get("template_path", os.path.join(os.path.dirname(__file__), "templates"))
155 settings = dict(
156 settings = dict(
156 # basics
157 # basics
157 base_project_url=base_project_url,
158 base_project_url=base_project_url,
158 base_kernel_url=ipython_app.base_kernel_url,
159 base_kernel_url=ipython_app.base_kernel_url,
159 template_path=template_path,
160 template_path=template_path,
160 static_path=ipython_app.static_file_path,
161 static_path=ipython_app.static_file_path,
161 static_handler_class = FileFindHandler,
162 static_handler_class = FileFindHandler,
162 static_url_prefix = url_path_join(base_project_url,'/static/'),
163 static_url_prefix = url_path_join(base_project_url,'/static/'),
163
164
164 # authentication
165 # authentication
165 cookie_secret=ipython_app.cookie_secret,
166 cookie_secret=ipython_app.cookie_secret,
166 login_url=url_path_join(base_project_url,'/login'),
167 login_url=url_path_join(base_project_url,'/login'),
167 password=ipython_app.password,
168 password=ipython_app.password,
168
169
169 # managers
170 # managers
170 kernel_manager=kernel_manager,
171 kernel_manager=kernel_manager,
171 notebook_manager=notebook_manager,
172 notebook_manager=notebook_manager,
172 cluster_manager=cluster_manager,
173 cluster_manager=cluster_manager,
173 session_manager=session_manager,
174 session_manager=session_manager,
174
175
175 # IPython stuff
176 # IPython stuff
176 nbextensions_path = ipython_app.nbextensions_path,
177 nbextensions_path = ipython_app.nbextensions_path,
177 mathjax_url=ipython_app.mathjax_url,
178 mathjax_url=ipython_app.mathjax_url,
178 config=ipython_app.config,
179 config=ipython_app.config,
179 use_less=ipython_app.use_less,
180 use_less=ipython_app.use_less,
180 jinja2_env=Environment(loader=FileSystemLoader(template_path)),
181 jinja2_env=Environment(loader=FileSystemLoader(template_path)),
181 )
182 )
182
183
183 # allow custom overrides for the tornado web app.
184 # allow custom overrides for the tornado web app.
184 settings.update(settings_overrides)
185 settings.update(settings_overrides)
185 return settings
186 return settings
186
187
187 def init_handlers(self, settings):
188 def init_handlers(self, settings):
188 # Load the (URL pattern, handler) tuples for each component.
189 # Load the (URL pattern, handler) tuples for each component.
189 handlers = []
190 handlers = []
190 handlers.extend(load_handlers('base.handlers'))
191 handlers.extend(load_handlers('base.handlers'))
191 handlers.extend(load_handlers('tree.handlers'))
192 handlers.extend(load_handlers('tree.handlers'))
192 handlers.extend(load_handlers('auth.login'))
193 handlers.extend(load_handlers('auth.login'))
193 handlers.extend(load_handlers('auth.logout'))
194 handlers.extend(load_handlers('auth.logout'))
194 handlers.extend(load_handlers('notebook.handlers'))
195 handlers.extend(load_handlers('notebook.handlers'))
195 handlers.extend(load_handlers('nbconvert.handlers'))
196 handlers.extend(load_handlers('nbconvert.handlers'))
196 handlers.extend(load_handlers('services.kernels.handlers'))
197 handlers.extend(load_handlers('services.kernels.handlers'))
197 handlers.extend(load_handlers('services.notebooks.handlers'))
198 handlers.extend(load_handlers('services.notebooks.handlers'))
198 handlers.extend(load_handlers('services.clusters.handlers'))
199 handlers.extend(load_handlers('services.clusters.handlers'))
199 handlers.extend(load_handlers('services.sessions.handlers'))
200 handlers.extend(load_handlers('services.sessions.handlers'))
200 handlers.extend(load_handlers('services.nbconvert.handlers'))
201 handlers.extend(load_handlers('services.nbconvert.handlers'))
201 handlers.extend([
202 handlers.extend([
202 (r"/files/(.*)", AuthenticatedFileHandler, {'path' : settings['notebook_manager'].notebook_dir}),
203 (r"/files/(.*)", AuthenticatedFileHandler, {'path' : settings['notebook_manager'].notebook_dir}),
203 (r"/nbextensions/(.*)", FileFindHandler, {'path' : settings['nbextensions_path']}),
204 (r"/nbextensions/(.*)", FileFindHandler, {'path' : settings['nbextensions_path']}),
204 ])
205 ])
205 # prepend base_project_url onto the patterns that we match
206 # prepend base_project_url onto the patterns that we match
206 new_handlers = []
207 new_handlers = []
207 for handler in handlers:
208 for handler in handlers:
208 pattern = url_path_join(settings['base_project_url'], handler[0])
209 pattern = url_path_join(settings['base_project_url'], handler[0])
209 new_handler = tuple([pattern] + list(handler[1:]))
210 new_handler = tuple([pattern] + list(handler[1:]))
210 new_handlers.append(new_handler)
211 new_handlers.append(new_handler)
212 # add 404 on the end, which will catch everything that falls through
213 new_handlers.append((r'(.*)', Template404))
211 return new_handlers
214 return new_handlers
212
215
213
216
214
217
215 #-----------------------------------------------------------------------------
218 #-----------------------------------------------------------------------------
216 # Aliases and Flags
219 # Aliases and Flags
217 #-----------------------------------------------------------------------------
220 #-----------------------------------------------------------------------------
218
221
219 flags = dict(kernel_flags)
222 flags = dict(kernel_flags)
220 flags['no-browser']=(
223 flags['no-browser']=(
221 {'NotebookApp' : {'open_browser' : False}},
224 {'NotebookApp' : {'open_browser' : False}},
222 "Don't open the notebook in a browser after startup."
225 "Don't open the notebook in a browser after startup."
223 )
226 )
224 flags['no-mathjax']=(
227 flags['no-mathjax']=(
225 {'NotebookApp' : {'enable_mathjax' : False}},
228 {'NotebookApp' : {'enable_mathjax' : False}},
226 """Disable MathJax
229 """Disable MathJax
227
230
228 MathJax is the javascript library IPython uses to render math/LaTeX. It is
231 MathJax is the javascript library IPython uses to render math/LaTeX. It is
229 very large, so you may want to disable it if you have a slow internet
232 very large, so you may want to disable it if you have a slow internet
230 connection, or for offline use of the notebook.
233 connection, or for offline use of the notebook.
231
234
232 When disabled, equations etc. will appear as their untransformed TeX source.
235 When disabled, equations etc. will appear as their untransformed TeX source.
233 """
236 """
234 )
237 )
235
238
236 # Add notebook manager flags
239 # Add notebook manager flags
237 flags.update(boolean_flag('script', 'FileNotebookManager.save_script',
240 flags.update(boolean_flag('script', 'FileNotebookManager.save_script',
238 'Auto-save a .py script everytime the .ipynb notebook is saved',
241 'Auto-save a .py script everytime the .ipynb notebook is saved',
239 'Do not auto-save .py scripts for every notebook'))
242 'Do not auto-save .py scripts for every notebook'))
240
243
241 # the flags that are specific to the frontend
244 # the flags that are specific to the frontend
242 # these must be scrubbed before being passed to the kernel,
245 # these must be scrubbed before being passed to the kernel,
243 # or it will raise an error on unrecognized flags
246 # or it will raise an error on unrecognized flags
244 notebook_flags = ['no-browser', 'no-mathjax', 'script', 'no-script']
247 notebook_flags = ['no-browser', 'no-mathjax', 'script', 'no-script']
245
248
246 aliases = dict(kernel_aliases)
249 aliases = dict(kernel_aliases)
247
250
248 aliases.update({
251 aliases.update({
249 'ip': 'NotebookApp.ip',
252 'ip': 'NotebookApp.ip',
250 'port': 'NotebookApp.port',
253 'port': 'NotebookApp.port',
251 'port-retries': 'NotebookApp.port_retries',
254 'port-retries': 'NotebookApp.port_retries',
252 'transport': 'KernelManager.transport',
255 'transport': 'KernelManager.transport',
253 'keyfile': 'NotebookApp.keyfile',
256 'keyfile': 'NotebookApp.keyfile',
254 'certfile': 'NotebookApp.certfile',
257 'certfile': 'NotebookApp.certfile',
255 'notebook-dir': 'NotebookManager.notebook_dir',
258 'notebook-dir': 'NotebookManager.notebook_dir',
256 'browser': 'NotebookApp.browser',
259 'browser': 'NotebookApp.browser',
257 })
260 })
258
261
259 # remove ipkernel flags that are singletons, and don't make sense in
262 # remove ipkernel flags that are singletons, and don't make sense in
260 # multi-kernel evironment:
263 # multi-kernel evironment:
261 aliases.pop('f', None)
264 aliases.pop('f', None)
262
265
263 notebook_aliases = [u'port', u'port-retries', u'ip', u'keyfile', u'certfile',
266 notebook_aliases = [u'port', u'port-retries', u'ip', u'keyfile', u'certfile',
264 u'notebook-dir', u'profile', u'profile-dir']
267 u'notebook-dir', u'profile', u'profile-dir']
265
268
266 #-----------------------------------------------------------------------------
269 #-----------------------------------------------------------------------------
267 # NotebookApp
270 # NotebookApp
268 #-----------------------------------------------------------------------------
271 #-----------------------------------------------------------------------------
269
272
270 class NotebookApp(BaseIPythonApplication):
273 class NotebookApp(BaseIPythonApplication):
271
274
272 name = 'ipython-notebook'
275 name = 'ipython-notebook'
273
276
274 description = """
277 description = """
275 The IPython HTML Notebook.
278 The IPython HTML Notebook.
276
279
277 This launches a Tornado based HTML Notebook Server that serves up an
280 This launches a Tornado based HTML Notebook Server that serves up an
278 HTML5/Javascript Notebook client.
281 HTML5/Javascript Notebook client.
279 """
282 """
280 examples = _examples
283 examples = _examples
281
284
282 classes = IPythonConsoleApp.classes + [MappingKernelManager, NotebookManager,
285 classes = IPythonConsoleApp.classes + [MappingKernelManager, NotebookManager,
283 FileNotebookManager]
286 FileNotebookManager]
284 flags = Dict(flags)
287 flags = Dict(flags)
285 aliases = Dict(aliases)
288 aliases = Dict(aliases)
286
289
287 kernel_argv = List(Unicode)
290 kernel_argv = List(Unicode)
288
291
289 def _log_level_default(self):
292 def _log_level_default(self):
290 return logging.INFO
293 return logging.INFO
291
294
292 def _log_format_default(self):
295 def _log_format_default(self):
293 """override default log format to include time"""
296 """override default log format to include time"""
294 return u"%(asctime)s.%(msecs).03d [%(name)s]%(highlevel)s %(message)s"
297 return u"%(asctime)s.%(msecs).03d [%(name)s]%(highlevel)s %(message)s"
295
298
296 # create requested profiles by default, if they don't exist:
299 # create requested profiles by default, if they don't exist:
297 auto_create = Bool(True)
300 auto_create = Bool(True)
298
301
299 # file to be opened in the notebook server
302 # file to be opened in the notebook server
300 file_to_run = Unicode('')
303 file_to_run = Unicode('')
301
304
302 # Network related information.
305 # Network related information.
303
306
304 ip = Unicode(config=True,
307 ip = Unicode(config=True,
305 help="The IP address the notebook server will listen on."
308 help="The IP address the notebook server will listen on."
306 )
309 )
307 def _ip_default(self):
310 def _ip_default(self):
308 return localhost()
311 return localhost()
309
312
310 def _ip_changed(self, name, old, new):
313 def _ip_changed(self, name, old, new):
311 if new == u'*': self.ip = u''
314 if new == u'*': self.ip = u''
312
315
313 port = Integer(8888, config=True,
316 port = Integer(8888, config=True,
314 help="The port the notebook server will listen on."
317 help="The port the notebook server will listen on."
315 )
318 )
316 port_retries = Integer(50, config=True,
319 port_retries = Integer(50, config=True,
317 help="The number of additional ports to try if the specified port is not available."
320 help="The number of additional ports to try if the specified port is not available."
318 )
321 )
319
322
320 certfile = Unicode(u'', config=True,
323 certfile = Unicode(u'', config=True,
321 help="""The full path to an SSL/TLS certificate file."""
324 help="""The full path to an SSL/TLS certificate file."""
322 )
325 )
323
326
324 keyfile = Unicode(u'', config=True,
327 keyfile = Unicode(u'', config=True,
325 help="""The full path to a private key file for usage with SSL/TLS."""
328 help="""The full path to a private key file for usage with SSL/TLS."""
326 )
329 )
327
330
328 cookie_secret = Bytes(b'', config=True,
331 cookie_secret = Bytes(b'', config=True,
329 help="""The random bytes used to secure cookies.
332 help="""The random bytes used to secure cookies.
330 By default this is a new random number every time you start the Notebook.
333 By default this is a new random number every time you start the Notebook.
331 Set it to a value in a config file to enable logins to persist across server sessions.
334 Set it to a value in a config file to enable logins to persist across server sessions.
332
335
333 Note: Cookie secrets should be kept private, do not share config files with
336 Note: Cookie secrets should be kept private, do not share config files with
334 cookie_secret stored in plaintext (you can read the value from a file).
337 cookie_secret stored in plaintext (you can read the value from a file).
335 """
338 """
336 )
339 )
337 def _cookie_secret_default(self):
340 def _cookie_secret_default(self):
338 return os.urandom(1024)
341 return os.urandom(1024)
339
342
340 password = Unicode(u'', config=True,
343 password = Unicode(u'', config=True,
341 help="""Hashed password to use for web authentication.
344 help="""Hashed password to use for web authentication.
342
345
343 To generate, type in a python/IPython shell:
346 To generate, type in a python/IPython shell:
344
347
345 from IPython.lib import passwd; passwd()
348 from IPython.lib import passwd; passwd()
346
349
347 The string should be of the form type:salt:hashed-password.
350 The string should be of the form type:salt:hashed-password.
348 """
351 """
349 )
352 )
350
353
351 open_browser = Bool(True, config=True,
354 open_browser = Bool(True, config=True,
352 help="""Whether to open in a browser after starting.
355 help="""Whether to open in a browser after starting.
353 The specific browser used is platform dependent and
356 The specific browser used is platform dependent and
354 determined by the python standard library `webbrowser`
357 determined by the python standard library `webbrowser`
355 module, unless it is overridden using the --browser
358 module, unless it is overridden using the --browser
356 (NotebookApp.browser) configuration option.
359 (NotebookApp.browser) configuration option.
357 """)
360 """)
358
361
359 browser = Unicode(u'', config=True,
362 browser = Unicode(u'', config=True,
360 help="""Specify what command to use to invoke a web
363 help="""Specify what command to use to invoke a web
361 browser when opening the notebook. If not specified, the
364 browser when opening the notebook. If not specified, the
362 default browser will be determined by the `webbrowser`
365 default browser will be determined by the `webbrowser`
363 standard library module, which allows setting of the
366 standard library module, which allows setting of the
364 BROWSER environment variable to override it.
367 BROWSER environment variable to override it.
365 """)
368 """)
366
369
367 use_less = Bool(False, config=True,
370 use_less = Bool(False, config=True,
368 help="""Wether to use Browser Side less-css parsing
371 help="""Wether to use Browser Side less-css parsing
369 instead of compiled css version in templates that allows
372 instead of compiled css version in templates that allows
370 it. This is mainly convenient when working on the less
373 it. This is mainly convenient when working on the less
371 file to avoid a build step, or if user want to overwrite
374 file to avoid a build step, or if user want to overwrite
372 some of the less variables without having to recompile
375 some of the less variables without having to recompile
373 everything.
376 everything.
374
377
375 You will need to install the less.js component in the static directory
378 You will need to install the less.js component in the static directory
376 either in the source tree or in your profile folder.
379 either in the source tree or in your profile folder.
377 """)
380 """)
378
381
379 webapp_settings = Dict(config=True,
382 webapp_settings = Dict(config=True,
380 help="Supply overrides for the tornado.web.Application that the "
383 help="Supply overrides for the tornado.web.Application that the "
381 "IPython notebook uses.")
384 "IPython notebook uses.")
382
385
383 enable_mathjax = Bool(True, config=True,
386 enable_mathjax = Bool(True, config=True,
384 help="""Whether to enable MathJax for typesetting math/TeX
387 help="""Whether to enable MathJax for typesetting math/TeX
385
388
386 MathJax is the javascript library IPython uses to render math/LaTeX. It is
389 MathJax is the javascript library IPython uses to render math/LaTeX. It is
387 very large, so you may want to disable it if you have a slow internet
390 very large, so you may want to disable it if you have a slow internet
388 connection, or for offline use of the notebook.
391 connection, or for offline use of the notebook.
389
392
390 When disabled, equations etc. will appear as their untransformed TeX source.
393 When disabled, equations etc. will appear as their untransformed TeX source.
391 """
394 """
392 )
395 )
393 def _enable_mathjax_changed(self, name, old, new):
396 def _enable_mathjax_changed(self, name, old, new):
394 """set mathjax url to empty if mathjax is disabled"""
397 """set mathjax url to empty if mathjax is disabled"""
395 if not new:
398 if not new:
396 self.mathjax_url = u''
399 self.mathjax_url = u''
397
400
398 base_project_url = Unicode('/', config=True,
401 base_project_url = Unicode('/', config=True,
399 help='''The base URL for the notebook server.
402 help='''The base URL for the notebook server.
400
403
401 Leading and trailing slashes can be omitted,
404 Leading and trailing slashes can be omitted,
402 and will automatically be added.
405 and will automatically be added.
403 ''')
406 ''')
404 def _base_project_url_changed(self, name, old, new):
407 def _base_project_url_changed(self, name, old, new):
405 if not new.startswith('/'):
408 if not new.startswith('/'):
406 self.base_project_url = '/'+new
409 self.base_project_url = '/'+new
407 elif not new.endswith('/'):
410 elif not new.endswith('/'):
408 self.base_project_url = new+'/'
411 self.base_project_url = new+'/'
409
412
410 base_kernel_url = Unicode('/', config=True,
413 base_kernel_url = Unicode('/', config=True,
411 help='''The base URL for the kernel server
414 help='''The base URL for the kernel server
412
415
413 Leading and trailing slashes can be omitted,
416 Leading and trailing slashes can be omitted,
414 and will automatically be added.
417 and will automatically be added.
415 ''')
418 ''')
416 def _base_kernel_url_changed(self, name, old, new):
419 def _base_kernel_url_changed(self, name, old, new):
417 if not new.startswith('/'):
420 if not new.startswith('/'):
418 self.base_kernel_url = '/'+new
421 self.base_kernel_url = '/'+new
419 elif not new.endswith('/'):
422 elif not new.endswith('/'):
420 self.base_kernel_url = new+'/'
423 self.base_kernel_url = new+'/'
421
424
422 websocket_url = Unicode("", config=True,
425 websocket_url = Unicode("", config=True,
423 help="""The base URL for the websocket server,
426 help="""The base URL for the websocket server,
424 if it differs from the HTTP server (hint: it almost certainly doesn't).
427 if it differs from the HTTP server (hint: it almost certainly doesn't).
425
428
426 Should be in the form of an HTTP origin: ws[s]://hostname[:port]
429 Should be in the form of an HTTP origin: ws[s]://hostname[:port]
427 """
430 """
428 )
431 )
429
432
430 extra_static_paths = List(Unicode, config=True,
433 extra_static_paths = List(Unicode, config=True,
431 help="""Extra paths to search for serving static files.
434 help="""Extra paths to search for serving static files.
432
435
433 This allows adding javascript/css to be available from the notebook server machine,
436 This allows adding javascript/css to be available from the notebook server machine,
434 or overriding individual files in the IPython"""
437 or overriding individual files in the IPython"""
435 )
438 )
436 def _extra_static_paths_default(self):
439 def _extra_static_paths_default(self):
437 return [os.path.join(self.profile_dir.location, 'static')]
440 return [os.path.join(self.profile_dir.location, 'static')]
438
441
439 @property
442 @property
440 def static_file_path(self):
443 def static_file_path(self):
441 """return extra paths + the default location"""
444 """return extra paths + the default location"""
442 return self.extra_static_paths + [DEFAULT_STATIC_FILES_PATH]
445 return self.extra_static_paths + [DEFAULT_STATIC_FILES_PATH]
443
446
444 nbextensions_path = List(Unicode, config=True,
447 nbextensions_path = List(Unicode, config=True,
445 help="""paths for Javascript extensions. By default, this is just IPYTHONDIR/nbextensions"""
448 help="""paths for Javascript extensions. By default, this is just IPYTHONDIR/nbextensions"""
446 )
449 )
447 def _nbextensions_path_default(self):
450 def _nbextensions_path_default(self):
448 return [os.path.join(get_ipython_dir(), 'nbextensions')]
451 return [os.path.join(get_ipython_dir(), 'nbextensions')]
449
452
450 mathjax_url = Unicode("", config=True,
453 mathjax_url = Unicode("", config=True,
451 help="""The url for MathJax.js."""
454 help="""The url for MathJax.js."""
452 )
455 )
453 def _mathjax_url_default(self):
456 def _mathjax_url_default(self):
454 if not self.enable_mathjax:
457 if not self.enable_mathjax:
455 return u''
458 return u''
456 static_url_prefix = self.webapp_settings.get("static_url_prefix",
459 static_url_prefix = self.webapp_settings.get("static_url_prefix",
457 url_path_join(self.base_project_url, "static")
460 url_path_join(self.base_project_url, "static")
458 )
461 )
459
462
460 # try local mathjax, either in nbextensions/mathjax or static/mathjax
463 # try local mathjax, either in nbextensions/mathjax or static/mathjax
461 for (url_prefix, search_path) in [
464 for (url_prefix, search_path) in [
462 (url_path_join(self.base_project_url, "nbextensions"), self.nbextensions_path),
465 (url_path_join(self.base_project_url, "nbextensions"), self.nbextensions_path),
463 (static_url_prefix, self.static_file_path),
466 (static_url_prefix, self.static_file_path),
464 ]:
467 ]:
465 self.log.debug("searching for local mathjax in %s", search_path)
468 self.log.debug("searching for local mathjax in %s", search_path)
466 try:
469 try:
467 mathjax = filefind(os.path.join('mathjax', 'MathJax.js'), search_path)
470 mathjax = filefind(os.path.join('mathjax', 'MathJax.js'), search_path)
468 except IOError:
471 except IOError:
469 continue
472 continue
470 else:
473 else:
471 url = url_path_join(url_prefix, u"mathjax/MathJax.js")
474 url = url_path_join(url_prefix, u"mathjax/MathJax.js")
472 self.log.info("Serving local MathJax from %s at %s", mathjax, url)
475 self.log.info("Serving local MathJax from %s at %s", mathjax, url)
473 return url
476 return url
474
477
475 # no local mathjax, serve from CDN
478 # no local mathjax, serve from CDN
476 if self.certfile:
479 if self.certfile:
477 # HTTPS: load from Rackspace CDN, because SSL certificate requires it
480 # HTTPS: load from Rackspace CDN, because SSL certificate requires it
478 host = u"https://c328740.ssl.cf1.rackcdn.com"
481 host = u"https://c328740.ssl.cf1.rackcdn.com"
479 else:
482 else:
480 host = u"http://cdn.mathjax.org"
483 host = u"http://cdn.mathjax.org"
481
484
482 url = host + u"/mathjax/latest/MathJax.js"
485 url = host + u"/mathjax/latest/MathJax.js"
483 self.log.info("Using MathJax from CDN: %s", url)
486 self.log.info("Using MathJax from CDN: %s", url)
484 return url
487 return url
485
488
486 def _mathjax_url_changed(self, name, old, new):
489 def _mathjax_url_changed(self, name, old, new):
487 if new and not self.enable_mathjax:
490 if new and not self.enable_mathjax:
488 # enable_mathjax=False overrides mathjax_url
491 # enable_mathjax=False overrides mathjax_url
489 self.mathjax_url = u''
492 self.mathjax_url = u''
490 else:
493 else:
491 self.log.info("Using MathJax: %s", new)
494 self.log.info("Using MathJax: %s", new)
492
495
493 notebook_manager_class = DottedObjectName('IPython.html.services.notebooks.filenbmanager.FileNotebookManager',
496 notebook_manager_class = DottedObjectName('IPython.html.services.notebooks.filenbmanager.FileNotebookManager',
494 config=True,
497 config=True,
495 help='The notebook manager class to use.')
498 help='The notebook manager class to use.')
496
499
497 trust_xheaders = Bool(False, config=True,
500 trust_xheaders = Bool(False, config=True,
498 help=("Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded-For headers"
501 help=("Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded-For headers"
499 "sent by the upstream reverse proxy. Neccesary if the proxy handles SSL")
502 "sent by the upstream reverse proxy. Neccesary if the proxy handles SSL")
500 )
503 )
501
504
502 def parse_command_line(self, argv=None):
505 def parse_command_line(self, argv=None):
503 super(NotebookApp, self).parse_command_line(argv)
506 super(NotebookApp, self).parse_command_line(argv)
504
507
505 if self.extra_args:
508 if self.extra_args:
506 arg0 = self.extra_args[0]
509 arg0 = self.extra_args[0]
507 f = os.path.abspath(arg0)
510 f = os.path.abspath(arg0)
508 self.argv.remove(arg0)
511 self.argv.remove(arg0)
509 if not os.path.exists(f):
512 if not os.path.exists(f):
510 self.log.critical("No such file or directory: %s", f)
513 self.log.critical("No such file or directory: %s", f)
511 self.exit(1)
514 self.exit(1)
512 if os.path.isdir(f):
515 if os.path.isdir(f):
513 self.config.FileNotebookManager.notebook_dir = f
516 self.config.FileNotebookManager.notebook_dir = f
514 elif os.path.isfile(f):
517 elif os.path.isfile(f):
515 self.file_to_run = f
518 self.file_to_run = f
516
519
517 def init_kernel_argv(self):
520 def init_kernel_argv(self):
518 """construct the kernel arguments"""
521 """construct the kernel arguments"""
519 # Scrub frontend-specific flags
522 # Scrub frontend-specific flags
520 self.kernel_argv = swallow_argv(self.argv, notebook_aliases, notebook_flags)
523 self.kernel_argv = swallow_argv(self.argv, notebook_aliases, notebook_flags)
521 # Kernel should inherit default config file from frontend
524 # Kernel should inherit default config file from frontend
522 self.kernel_argv.append("--IPKernelApp.parent_appname='%s'" % self.name)
525 self.kernel_argv.append("--IPKernelApp.parent_appname='%s'" % self.name)
523 # Kernel should get *absolute* path to profile directory
526 # Kernel should get *absolute* path to profile directory
524 self.kernel_argv.extend(["--profile-dir", self.profile_dir.location])
527 self.kernel_argv.extend(["--profile-dir", self.profile_dir.location])
525
528
526 def init_configurables(self):
529 def init_configurables(self):
527 # force Session default to be secure
530 # force Session default to be secure
528 default_secure(self.config)
531 default_secure(self.config)
529 self.kernel_manager = MappingKernelManager(
532 self.kernel_manager = MappingKernelManager(
530 parent=self, log=self.log, kernel_argv=self.kernel_argv,
533 parent=self, log=self.log, kernel_argv=self.kernel_argv,
531 connection_dir = self.profile_dir.security_dir,
534 connection_dir = self.profile_dir.security_dir,
532 )
535 )
533 kls = import_item(self.notebook_manager_class)
536 kls = import_item(self.notebook_manager_class)
534 self.notebook_manager = kls(parent=self, log=self.log)
537 self.notebook_manager = kls(parent=self, log=self.log)
535 self.session_manager = SessionManager(parent=self, log=self.log)
538 self.session_manager = SessionManager(parent=self, log=self.log)
536 self.cluster_manager = ClusterManager(parent=self, log=self.log)
539 self.cluster_manager = ClusterManager(parent=self, log=self.log)
537 self.cluster_manager.update_profiles()
540 self.cluster_manager.update_profiles()
538
541
539 def init_logging(self):
542 def init_logging(self):
540 # This prevents double log messages because tornado use a root logger that
543 # This prevents double log messages because tornado use a root logger that
541 # self.log is a child of. The logging module dipatches log messages to a log
544 # self.log is a child of. The logging module dipatches log messages to a log
542 # and all of its ancenstors until propagate is set to False.
545 # and all of its ancenstors until propagate is set to False.
543 self.log.propagate = False
546 self.log.propagate = False
544
547
545 # hook up tornado 3's loggers to our app handlers
548 # hook up tornado 3's loggers to our app handlers
546 for name in ('access', 'application', 'general'):
549 for name in ('access', 'application', 'general'):
547 logger = logging.getLogger('tornado.%s' % name)
550 logger = logging.getLogger('tornado.%s' % name)
548 logger.parent = self.log
551 logger.parent = self.log
549 logger.setLevel(self.log.level)
552 logger.setLevel(self.log.level)
550
553
551 def init_webapp(self):
554 def init_webapp(self):
552 """initialize tornado webapp and httpserver"""
555 """initialize tornado webapp and httpserver"""
553 self.web_app = NotebookWebApplication(
556 self.web_app = NotebookWebApplication(
554 self, self.kernel_manager, self.notebook_manager,
557 self, self.kernel_manager, self.notebook_manager,
555 self.cluster_manager, self.session_manager,
558 self.cluster_manager, self.session_manager,
556 self.log, self.base_project_url, self.webapp_settings
559 self.log, self.base_project_url, self.webapp_settings
557 )
560 )
558 if self.certfile:
561 if self.certfile:
559 ssl_options = dict(certfile=self.certfile)
562 ssl_options = dict(certfile=self.certfile)
560 if self.keyfile:
563 if self.keyfile:
561 ssl_options['keyfile'] = self.keyfile
564 ssl_options['keyfile'] = self.keyfile
562 else:
565 else:
563 ssl_options = None
566 ssl_options = None
564 self.web_app.password = self.password
567 self.web_app.password = self.password
565 self.http_server = httpserver.HTTPServer(self.web_app, ssl_options=ssl_options,
568 self.http_server = httpserver.HTTPServer(self.web_app, ssl_options=ssl_options,
566 xheaders=self.trust_xheaders)
569 xheaders=self.trust_xheaders)
567 if not self.ip:
570 if not self.ip:
568 warning = "WARNING: The notebook server is listening on all IP addresses"
571 warning = "WARNING: The notebook server is listening on all IP addresses"
569 if ssl_options is None:
572 if ssl_options is None:
570 self.log.critical(warning + " and not using encryption. This "
573 self.log.critical(warning + " and not using encryption. This "
571 "is not recommended.")
574 "is not recommended.")
572 if not self.password:
575 if not self.password:
573 self.log.critical(warning + " and not using authentication. "
576 self.log.critical(warning + " and not using authentication. "
574 "This is highly insecure and not recommended.")
577 "This is highly insecure and not recommended.")
575 success = None
578 success = None
576 for port in random_ports(self.port, self.port_retries+1):
579 for port in random_ports(self.port, self.port_retries+1):
577 try:
580 try:
578 self.http_server.listen(port, self.ip)
581 self.http_server.listen(port, self.ip)
579 except socket.error as e:
582 except socket.error as e:
580 if e.errno == errno.EADDRINUSE:
583 if e.errno == errno.EADDRINUSE:
581 self.log.info('The port %i is already in use, trying another random port.' % port)
584 self.log.info('The port %i is already in use, trying another random port.' % port)
582 continue
585 continue
583 elif e.errno in (errno.EACCES, getattr(errno, 'WSAEACCES', errno.EACCES)):
586 elif e.errno in (errno.EACCES, getattr(errno, 'WSAEACCES', errno.EACCES)):
584 self.log.warn("Permission to listen on port %i denied" % port)
587 self.log.warn("Permission to listen on port %i denied" % port)
585 continue
588 continue
586 else:
589 else:
587 raise
590 raise
588 else:
591 else:
589 self.port = port
592 self.port = port
590 success = True
593 success = True
591 break
594 break
592 if not success:
595 if not success:
593 self.log.critical('ERROR: the notebook server could not be started because '
596 self.log.critical('ERROR: the notebook server could not be started because '
594 'no available port could be found.')
597 'no available port could be found.')
595 self.exit(1)
598 self.exit(1)
596
599
597 def init_signal(self):
600 def init_signal(self):
598 if not sys.platform.startswith('win'):
601 if not sys.platform.startswith('win'):
599 signal.signal(signal.SIGINT, self._handle_sigint)
602 signal.signal(signal.SIGINT, self._handle_sigint)
600 signal.signal(signal.SIGTERM, self._signal_stop)
603 signal.signal(signal.SIGTERM, self._signal_stop)
601 if hasattr(signal, 'SIGUSR1'):
604 if hasattr(signal, 'SIGUSR1'):
602 # Windows doesn't support SIGUSR1
605 # Windows doesn't support SIGUSR1
603 signal.signal(signal.SIGUSR1, self._signal_info)
606 signal.signal(signal.SIGUSR1, self._signal_info)
604 if hasattr(signal, 'SIGINFO'):
607 if hasattr(signal, 'SIGINFO'):
605 # only on BSD-based systems
608 # only on BSD-based systems
606 signal.signal(signal.SIGINFO, self._signal_info)
609 signal.signal(signal.SIGINFO, self._signal_info)
607
610
608 def _handle_sigint(self, sig, frame):
611 def _handle_sigint(self, sig, frame):
609 """SIGINT handler spawns confirmation dialog"""
612 """SIGINT handler spawns confirmation dialog"""
610 # register more forceful signal handler for ^C^C case
613 # register more forceful signal handler for ^C^C case
611 signal.signal(signal.SIGINT, self._signal_stop)
614 signal.signal(signal.SIGINT, self._signal_stop)
612 # request confirmation dialog in bg thread, to avoid
615 # request confirmation dialog in bg thread, to avoid
613 # blocking the App
616 # blocking the App
614 thread = threading.Thread(target=self._confirm_exit)
617 thread = threading.Thread(target=self._confirm_exit)
615 thread.daemon = True
618 thread.daemon = True
616 thread.start()
619 thread.start()
617
620
618 def _restore_sigint_handler(self):
621 def _restore_sigint_handler(self):
619 """callback for restoring original SIGINT handler"""
622 """callback for restoring original SIGINT handler"""
620 signal.signal(signal.SIGINT, self._handle_sigint)
623 signal.signal(signal.SIGINT, self._handle_sigint)
621
624
622 def _confirm_exit(self):
625 def _confirm_exit(self):
623 """confirm shutdown on ^C
626 """confirm shutdown on ^C
624
627
625 A second ^C, or answering 'y' within 5s will cause shutdown,
628 A second ^C, or answering 'y' within 5s will cause shutdown,
626 otherwise original SIGINT handler will be restored.
629 otherwise original SIGINT handler will be restored.
627
630
628 This doesn't work on Windows.
631 This doesn't work on Windows.
629 """
632 """
630 # FIXME: remove this delay when pyzmq dependency is >= 2.1.11
633 # FIXME: remove this delay when pyzmq dependency is >= 2.1.11
631 time.sleep(0.1)
634 time.sleep(0.1)
632 info = self.log.info
635 info = self.log.info
633 info('interrupted')
636 info('interrupted')
634 print(self.notebook_info())
637 print(self.notebook_info())
635 sys.stdout.write("Shutdown this notebook server (y/[n])? ")
638 sys.stdout.write("Shutdown this notebook server (y/[n])? ")
636 sys.stdout.flush()
639 sys.stdout.flush()
637 r,w,x = select.select([sys.stdin], [], [], 5)
640 r,w,x = select.select([sys.stdin], [], [], 5)
638 if r:
641 if r:
639 line = sys.stdin.readline()
642 line = sys.stdin.readline()
640 if line.lower().startswith('y'):
643 if line.lower().startswith('y'):
641 self.log.critical("Shutdown confirmed")
644 self.log.critical("Shutdown confirmed")
642 ioloop.IOLoop.instance().stop()
645 ioloop.IOLoop.instance().stop()
643 return
646 return
644 else:
647 else:
645 print("No answer for 5s:", end=' ')
648 print("No answer for 5s:", end=' ')
646 print("resuming operation...")
649 print("resuming operation...")
647 # no answer, or answer is no:
650 # no answer, or answer is no:
648 # set it back to original SIGINT handler
651 # set it back to original SIGINT handler
649 # use IOLoop.add_callback because signal.signal must be called
652 # use IOLoop.add_callback because signal.signal must be called
650 # from main thread
653 # from main thread
651 ioloop.IOLoop.instance().add_callback(self._restore_sigint_handler)
654 ioloop.IOLoop.instance().add_callback(self._restore_sigint_handler)
652
655
653 def _signal_stop(self, sig, frame):
656 def _signal_stop(self, sig, frame):
654 self.log.critical("received signal %s, stopping", sig)
657 self.log.critical("received signal %s, stopping", sig)
655 ioloop.IOLoop.instance().stop()
658 ioloop.IOLoop.instance().stop()
656
659
657 def _signal_info(self, sig, frame):
660 def _signal_info(self, sig, frame):
658 print(self.notebook_info())
661 print(self.notebook_info())
659
662
660 def init_components(self):
663 def init_components(self):
661 """Check the components submodule, and warn if it's unclean"""
664 """Check the components submodule, and warn if it's unclean"""
662 status = submodule.check_submodule_status()
665 status = submodule.check_submodule_status()
663 if status == 'missing':
666 if status == 'missing':
664 self.log.warn("components submodule missing, running `git submodule update`")
667 self.log.warn("components submodule missing, running `git submodule update`")
665 submodule.update_submodules(submodule.ipython_parent())
668 submodule.update_submodules(submodule.ipython_parent())
666 elif status == 'unclean':
669 elif status == 'unclean':
667 self.log.warn("components submodule unclean, you may see 404s on static/components")
670 self.log.warn("components submodule unclean, you may see 404s on static/components")
668 self.log.warn("run `setup.py submodule` or `git submodule update` to update")
671 self.log.warn("run `setup.py submodule` or `git submodule update` to update")
669
672
670
673
671 @catch_config_error
674 @catch_config_error
672 def initialize(self, argv=None):
675 def initialize(self, argv=None):
673 super(NotebookApp, self).initialize(argv)
676 super(NotebookApp, self).initialize(argv)
674 self.init_logging()
677 self.init_logging()
675 self.init_kernel_argv()
678 self.init_kernel_argv()
676 self.init_configurables()
679 self.init_configurables()
677 self.init_components()
680 self.init_components()
678 self.init_webapp()
681 self.init_webapp()
679 self.init_signal()
682 self.init_signal()
680
683
681 def cleanup_kernels(self):
684 def cleanup_kernels(self):
682 """Shutdown all kernels.
685 """Shutdown all kernels.
683
686
684 The kernels will shutdown themselves when this process no longer exists,
687 The kernels will shutdown themselves when this process no longer exists,
685 but explicit shutdown allows the KernelManagers to cleanup the connection files.
688 but explicit shutdown allows the KernelManagers to cleanup the connection files.
686 """
689 """
687 self.log.info('Shutting down kernels')
690 self.log.info('Shutting down kernels')
688 self.kernel_manager.shutdown_all()
691 self.kernel_manager.shutdown_all()
689
692
690 def notebook_info(self):
693 def notebook_info(self):
691 "Return the current working directory and the server url information"
694 "Return the current working directory and the server url information"
692 info = self.notebook_manager.info_string() + "\n"
695 info = self.notebook_manager.info_string() + "\n"
693 info += "%d active kernels \n" % len(self.kernel_manager._kernels)
696 info += "%d active kernels \n" % len(self.kernel_manager._kernels)
694 return info + "The IPython Notebook is running at: %s" % self._url
697 return info + "The IPython Notebook is running at: %s" % self._url
695
698
696 def start(self):
699 def start(self):
697 """ Start the IPython Notebook server app, after initialization
700 """ Start the IPython Notebook server app, after initialization
698
701
699 This method takes no arguments so all configuration and initialization
702 This method takes no arguments so all configuration and initialization
700 must be done prior to calling this method."""
703 must be done prior to calling this method."""
701 ip = self.ip if self.ip else '[all ip addresses on your system]'
704 ip = self.ip if self.ip else '[all ip addresses on your system]'
702 proto = 'https' if self.certfile else 'http'
705 proto = 'https' if self.certfile else 'http'
703 info = self.log.info
706 info = self.log.info
704 self._url = "%s://%s:%i%s" % (proto, ip, self.port,
707 self._url = "%s://%s:%i%s" % (proto, ip, self.port,
705 self.base_project_url)
708 self.base_project_url)
706 for line in self.notebook_info().split("\n"):
709 for line in self.notebook_info().split("\n"):
707 info(line)
710 info(line)
708 info("Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).")
711 info("Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).")
709
712
710 if self.open_browser or self.file_to_run:
713 if self.open_browser or self.file_to_run:
711 ip = self.ip or localhost()
714 ip = self.ip or localhost()
712 try:
715 try:
713 browser = webbrowser.get(self.browser or None)
716 browser = webbrowser.get(self.browser or None)
714 except webbrowser.Error as e:
717 except webbrowser.Error as e:
715 self.log.warn('No web browser found: %s.' % e)
718 self.log.warn('No web browser found: %s.' % e)
716 browser = None
719 browser = None
717
720
718 nbdir = os.path.abspath(self.notebook_manager.notebook_dir)
721 nbdir = os.path.abspath(self.notebook_manager.notebook_dir)
719 f = self.file_to_run
722 f = self.file_to_run
720 if f:
723 if f:
721 if f.startswith(nbdir):
724 if f.startswith(nbdir):
722 f = f[len(nbdir):]
725 f = f[len(nbdir):]
723 else:
726 else:
724 self.log.warn(
727 self.log.warn(
725 "Probably won't be able to open notebook %s "
728 "Probably won't be able to open notebook %s "
726 "because it is not in notebook_dir %s",
729 "because it is not in notebook_dir %s",
727 f, nbdir,
730 f, nbdir,
728 )
731 )
729
732
730 if os.path.isfile(self.file_to_run):
733 if os.path.isfile(self.file_to_run):
731 url = url_path_join('notebooks', f)
734 url = url_path_join('notebooks', f)
732 else:
735 else:
733 url = url_path_join('tree', f)
736 url = url_path_join('tree', f)
734 if browser:
737 if browser:
735 b = lambda : browser.open("%s://%s:%i%s%s" % (proto, ip,
738 b = lambda : browser.open("%s://%s:%i%s%s" % (proto, ip,
736 self.port, self.base_project_url, url), new=2)
739 self.port, self.base_project_url, url), new=2)
737 threading.Thread(target=b).start()
740 threading.Thread(target=b).start()
738 try:
741 try:
739 ioloop.IOLoop.instance().start()
742 ioloop.IOLoop.instance().start()
740 except KeyboardInterrupt:
743 except KeyboardInterrupt:
741 info("Interrupted...")
744 info("Interrupted...")
742 finally:
745 finally:
743 self.cleanup_kernels()
746 self.cleanup_kernels()
744
747
745
748
746 #-----------------------------------------------------------------------------
749 #-----------------------------------------------------------------------------
747 # Main entry point
750 # Main entry point
748 #-----------------------------------------------------------------------------
751 #-----------------------------------------------------------------------------
749
752
750 launch_new_instance = NotebookApp.launch_instance
753 launch_new_instance = NotebookApp.launch_instance
751
754
@@ -1,23 +1,26 b''
1 import json
1 import json
2
2
3 from tornado import web
3 from tornado import web
4
4
5 from ...base.handlers import IPythonHandler, json_errors
5 from ...base.handlers import IPythonHandler, json_errors
6 from IPython.nbconvert.exporters.export import exporter_map
7
6
8 class NbconvertRootHandler(IPythonHandler):
7 class NbconvertRootHandler(IPythonHandler):
9 SUPPORTED_METHODS = ('GET',)
8 SUPPORTED_METHODS = ('GET',)
10
9
11 @web.authenticated
10 @web.authenticated
12 @json_errors
11 @json_errors
13 def get(self):
12 def get(self):
13 try:
14 from IPython.nbconvert.exporters.export import exporter_map
15 except ImportError as e:
16 raise web.HTTPError(500, "Could not import nbconvert: %s" % e)
14 res = {}
17 res = {}
15 for format, exporter in exporter_map.items():
18 for format, exporter in exporter_map.items():
16 res[format] = info = {}
19 res[format] = info = {}
17 info['output_mimetype'] = exporter.output_mimetype
20 info['output_mimetype'] = exporter.output_mimetype
18
21
19 self.finish(json.dumps(res))
22 self.finish(json.dumps(res))
20
23
21 default_handlers = [
24 default_handlers = [
22 (r"/api/nbconvert", NbconvertRootHandler),
25 (r"/api/nbconvert", NbconvertRootHandler),
23 ] No newline at end of file
26 ]
@@ -1,4 +1,4 b''
1 @import "variables.less";
1 @import "variables.less";
2 @import "mixins.less";
2 @import "mixins.less";
3 @import "flexbox.less";
3 @import "flexbox.less";
4
4 @import "error.less";
@@ -1,148 +1,152 b''
1 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
1 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 .clearfix:after{clear:both;}
2 .clearfix:after{clear:both;}
3 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
3 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
4 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 .border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
5 .border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
6 .corner-all{border-radius:4px;}
6 .corner-all{border-radius:4px;}
7 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
7 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
8 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
8 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
9 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
9 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
10 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
10 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
11 .reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
11 .reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
12 .box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
12 .box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
13 .box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
13 .box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
14 .box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
14 .box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
15 .box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;}
15 .box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;}
16 .box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1;}
16 .box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1;}
17 .box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2;}
17 .box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2;}
18 .start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}
18 .start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}
19 .end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;}
19 .end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;}
20 .center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;}
20 .center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;}
21 div.error{margin:2em;text-align:center;}
22 div.error>h1{font-size:500%;line-height:normal;}
23 div.error>p{font-size:200%;line-height:normal;}
24 div.traceback-wrapper{text-align:left;max-width:800px;margin:auto;}
21 .center-nav{display:inline-block;margin-bottom:-4px;}
25 .center-nav{display:inline-block;margin-bottom:-4px;}
22 .alternate_upload{background-color:none;display:inline;}
26 .alternate_upload{background-color:none;display:inline;}
23 .alternate_upload.form{padding:0;margin:0;}
27 .alternate_upload.form{padding:0;margin:0;}
24 .alternate_upload input.fileinput{background-color:red;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;}
28 .alternate_upload input.fileinput{background-color:red;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;}
25 .list_toolbar{padding:5px;height:25px;line-height:25px;}
29 .list_toolbar{padding:5px;height:25px;line-height:25px;}
26 .toolbar_info{float:left;}
30 .toolbar_info{float:left;}
27 .toolbar_buttons{float:right;}
31 .toolbar_buttons{float:right;}
28 .list_header{font-weight:bold;}
32 .list_header{font-weight:bold;}
29 .list_container{margin-top:16px;margin-bottom:16px;border:1px solid #ababab;border-radius:4px;}
33 .list_container{margin-top:16px;margin-bottom:16px;border:1px solid #ababab;border-radius:4px;}
30 .list_container>div{border-bottom:1px solid #ababab;}.list_container>div:hover .list-item{background-color:red;}
34 .list_container>div{border-bottom:1px solid #ababab;}.list_container>div:hover .list-item{background-color:red;}
31 .list_container>div:last-child{border:none;}
35 .list_container>div:last-child{border:none;}
32 .list_item:hover .list_item{background-color:#ddd;}
36 .list_item:hover .list_item{background-color:#ddd;}
33 .item_name{line-height:24px;}
37 .item_name{line-height:24px;}
34 .list_container>div>span,.list_container>div>div{padding:8px;}
38 .list_container>div>span,.list_container>div>div{padding:8px;}
35 .list_item a{text-decoration:none;}
39 .list_item a{text-decoration:none;}
36 input.nbname_input{height:15px;}
40 input.nbname_input{height:15px;}
37 .highlight_text{color:blue;}
41 .highlight_text{color:blue;}
38 #project_name>.breadcrumb{padding:0px;margin-bottom:0px;background-color:transparent;font-weight:bold;}
42 #project_name>.breadcrumb{padding:0px;margin-bottom:0px;background-color:transparent;font-weight:bold;}
39 input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-bottom:0;width:60px;}
43 input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-bottom:0;width:60px;}
40 .ansibold{font-weight:bold;}
44 .ansibold{font-weight:bold;}
41 .ansiblack{color:black;}
45 .ansiblack{color:black;}
42 .ansired{color:darkred;}
46 .ansired{color:darkred;}
43 .ansigreen{color:darkgreen;}
47 .ansigreen{color:darkgreen;}
44 .ansiyellow{color:brown;}
48 .ansiyellow{color:brown;}
45 .ansiblue{color:darkblue;}
49 .ansiblue{color:darkblue;}
46 .ansipurple{color:darkviolet;}
50 .ansipurple{color:darkviolet;}
47 .ansicyan{color:steelblue;}
51 .ansicyan{color:steelblue;}
48 .ansigray{color:gray;}
52 .ansigray{color:gray;}
49 .ansibgblack{background-color:black;}
53 .ansibgblack{background-color:black;}
50 .ansibgred{background-color:red;}
54 .ansibgred{background-color:red;}
51 .ansibggreen{background-color:green;}
55 .ansibggreen{background-color:green;}
52 .ansibgyellow{background-color:yellow;}
56 .ansibgyellow{background-color:yellow;}
53 .ansibgblue{background-color:blue;}
57 .ansibgblue{background-color:blue;}
54 .ansibgpurple{background-color:magenta;}
58 .ansibgpurple{background-color:magenta;}
55 .ansibgcyan{background-color:cyan;}
59 .ansibgcyan{background-color:cyan;}
56 .ansibggray{background-color:gray;}
60 .ansibggray{background-color:gray;}
57 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
61 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
58 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
62 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
59 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
63 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
60 div.prompt:empty{padding-top:0;padding-bottom:0;}
64 div.prompt:empty{padding-top:0;padding-bottom:0;}
61 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
65 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
62 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
66 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
63 div.input_prompt{color:navy;border-top:1px solid transparent;}
67 div.input_prompt{color:navy;border-top:1px solid transparent;}
64 .CodeMirror{line-height:1.231em;height:auto;background:none;}
68 .CodeMirror{line-height:1.231em;height:auto;background:none;}
65 .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto;}
69 .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto;}
66 @-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden;}}.CodeMirror-lines{padding:0.4em;}
70 @-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden;}}.CodeMirror-lines{padding:0.4em;}
67 .CodeMirror-linenumber{padding:0 8px 0 4px;}
71 .CodeMirror-linenumber{padding:0 8px 0 4px;}
68 .CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px;}
72 .CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px;}
69 .CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
73 .CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
70 pre code{display:block;padding:0.5em;}
74 pre code{display:block;padding:0.5em;}
71 .highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black;}
75 .highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black;}
72 .highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#BA2121;}
76 .highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#BA2121;}
73 .highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic;}
77 .highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic;}
74 .highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080;}
78 .highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080;}
75 pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#8888ff;}
79 pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#8888ff;}
76 .highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold;}
80 .highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold;}
77 .highlight-builtin,pre .built_in{color:#008000;}
81 .highlight-builtin,pre .built_in{color:#008000;}
78 pre .markdown .emphasis{font-style:italic;}
82 pre .markdown .emphasis{font-style:italic;}
79 pre .nginx .built_in{font-weight:normal;}
83 pre .nginx .built_in{font-weight:normal;}
80 pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:0.5;}
84 pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:0.5;}
81 .cm-s-ipython span.cm-variable{color:black;}
85 .cm-s-ipython span.cm-variable{color:black;}
82 .cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold;}
86 .cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold;}
83 .cm-s-ipython span.cm-number{color:#080;}
87 .cm-s-ipython span.cm-number{color:#080;}
84 .cm-s-ipython span.cm-comment{color:#408080;font-style:italic;}
88 .cm-s-ipython span.cm-comment{color:#408080;font-style:italic;}
85 .cm-s-ipython span.cm-string{color:#BA2121;}
89 .cm-s-ipython span.cm-string{color:#BA2121;}
86 .cm-s-ipython span.cm-builtin{color:#008000;}
90 .cm-s-ipython span.cm-builtin{color:#008000;}
87 .cm-s-ipython span.cm-error{color:#f00;}
91 .cm-s-ipython span.cm-error{color:#f00;}
88 .cm-s-ipython span.cm-operator{color:#AA22FF;font-weight:bold;}
92 .cm-s-ipython span.cm-operator{color:#AA22FF;font-weight:bold;}
89 .cm-s-ipython span.cm-meta{color:#AA22FF;}
93 .cm-s-ipython span.cm-meta{color:#AA22FF;}
90 .cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat;}
94 .cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat;}
91 div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
95 div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
92 div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
96 div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
93 div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
97 div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
94 div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
98 div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
95 div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
99 div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
96 div.output_prompt{color:darkred;}
100 div.output_prompt{color:darkred;}
97 div.output_area{padding:0px;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}div.output_area .MathJax_Display{text-align:left !important;}
101 div.output_area{padding:0px;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}div.output_area .MathJax_Display{text-align:left !important;}
98 div.output_area .rendered_html table{margin-left:0;margin-right:0;}
102 div.output_area .rendered_html table{margin-left:0;margin-right:0;}
99 div.output_area .rendered_html img{margin-left:0;margin-right:0;}
103 div.output_area .rendered_html img{margin-left:0;margin-right:0;}
100 .output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
104 .output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
101 div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:black;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit;}
105 div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:black;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit;}
102 div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
106 div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
103 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
107 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
104 div.output_stderr{background:#fdd;}
108 div.output_stderr{background:#fdd;}
105 div.output_latex{text-align:left;}
109 div.output_latex{text-align:left;}
106 div.output_javascript:empty{padding:0;}
110 div.output_javascript:empty{padding:0;}
107 .js-error{color:darkred;}
111 .js-error{color:darkred;}
108 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
112 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
109 span.input_prompt{font-family:inherit;}
113 span.input_prompt{font-family:inherit;}
110 input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0px 0px 1px;padding-left:1px;padding-top:2px;height:1em;}
114 input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0px 0px 1px;padding-left:1px;padding-top:2px;height:1em;}
111 p.p-space{margin-bottom:10px;}
115 p.p-space{margin-bottom:10px;}
112 .rendered_html{color:black;}.rendered_html em{font-style:italic;}
116 .rendered_html{color:black;}.rendered_html em{font-style:italic;}
113 .rendered_html strong{font-weight:bold;}
117 .rendered_html strong{font-weight:bold;}
114 .rendered_html u{text-decoration:underline;}
118 .rendered_html u{text-decoration:underline;}
115 .rendered_html :link{text-decoration:underline;}
119 .rendered_html :link{text-decoration:underline;}
116 .rendered_html :visited{text-decoration:underline;}
120 .rendered_html :visited{text-decoration:underline;}
117 .rendered_html h1{font-size:197%;margin:.65em 0;font-weight:bold;}
121 .rendered_html h1{font-size:197%;margin:.65em 0;font-weight:bold;}
118 .rendered_html h2{font-size:153.9%;margin:.75em 0;font-weight:bold;}
122 .rendered_html h2{font-size:153.9%;margin:.75em 0;font-weight:bold;}
119 .rendered_html h3{font-size:123.1%;margin:.85em 0;font-weight:bold;}
123 .rendered_html h3{font-size:123.1%;margin:.85em 0;font-weight:bold;}
120 .rendered_html h4{font-size:100%;margin:0.95em 0;font-weight:bold;}
124 .rendered_html h4{font-size:100%;margin:0.95em 0;font-weight:bold;}
121 .rendered_html h5{font-size:85%;margin:1.5em 0;font-weight:bold;}
125 .rendered_html h5{font-size:85%;margin:1.5em 0;font-weight:bold;}
122 .rendered_html h6{font-size:77%;margin:1.65em 0;font-weight:bold;}
126 .rendered_html h6{font-size:77%;margin:1.65em 0;font-weight:bold;}
123 .rendered_html ul{list-style:disc;margin:1em 2em;}
127 .rendered_html ul{list-style:disc;margin:1em 2em;}
124 .rendered_html ul ul{list-style:square;margin:0em 2em;}
128 .rendered_html ul ul{list-style:square;margin:0em 2em;}
125 .rendered_html ul ul ul{list-style:circle;margin:0em 2em;}
129 .rendered_html ul ul ul{list-style:circle;margin:0em 2em;}
126 .rendered_html ol{list-style:decimal;margin:1em 2em;}
130 .rendered_html ol{list-style:decimal;margin:1em 2em;}
127 .rendered_html ol ol{list-style:upper-alpha;margin:0em 2em;}
131 .rendered_html ol ol{list-style:upper-alpha;margin:0em 2em;}
128 .rendered_html ol ol ol{list-style:lower-alpha;margin:0em 2em;}
132 .rendered_html ol ol ol{list-style:lower-alpha;margin:0em 2em;}
129 .rendered_html ol ol ol ol{list-style:lower-roman;margin:0em 2em;}
133 .rendered_html ol ol ol ol{list-style:lower-roman;margin:0em 2em;}
130 .rendered_html ol ol ol ol ol{list-style:decimal;margin:0em 2em;}
134 .rendered_html ol ol ol ol ol{list-style:decimal;margin:0em 2em;}
131 .rendered_html hr{color:black;background-color:black;}
135 .rendered_html hr{color:black;background-color:black;}
132 .rendered_html pre{margin:1em 2em;}
136 .rendered_html pre{margin:1em 2em;}
133 .rendered_html pre,.rendered_html code{border:0;background-color:#ffffff;color:#000000;font-size:100%;padding:0px;}
137 .rendered_html pre,.rendered_html code{border:0;background-color:#ffffff;color:#000000;font-size:100%;padding:0px;}
134 .rendered_html blockquote{margin:1em 2em;}
138 .rendered_html blockquote{margin:1em 2em;}
135 .rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse;}
139 .rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse;}
136 .rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em;}
140 .rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em;}
137 .rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px;}
141 .rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px;}
138 .rendered_html th{font-weight:bold;}
142 .rendered_html th{font-weight:bold;}
139 .rendered_html p{text-align:justify;}
143 .rendered_html p{text-align:justify;}
140 .rendered_html img{display:block;margin-left:auto;margin-right:auto;}
144 .rendered_html img{display:block;margin-left:auto;margin-right:auto;}
141 .rendered_html *+p{margin-top:1em;}
145 .rendered_html *+p{margin-top:1em;}
142 .rendered_html *+table{margin-top:1em;}
146 .rendered_html *+table{margin-top:1em;}
143 .rendered_html *+img{margin-top:1em;}
147 .rendered_html *+img{margin-top:1em;}
144 div.text_cell{padding:5px 5px 5px 0px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
148 div.text_cell{padding:5px 5px 5px 0px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
145 div.text_cell_input{color:#000000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
149 div.text_cell_input{color:#000000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
146 div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:5px;color:#000000;}
150 div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:5px;color:#000000;}
147 a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
151 a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
148 h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
152 h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
@@ -1,1581 +1,1585 b''
1 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
1 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 .clearfix:after{clear:both;}
2 .clearfix:after{clear:both;}
3 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
3 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
4 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
5 article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
6 audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
6 audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
7 audio:not([controls]){display:none;}
7 audio:not([controls]){display:none;}
8 html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
8 html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
9 a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
9 a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
10 a:hover,a:active{outline:0;}
10 a:hover,a:active{outline:0;}
11 sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
11 sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
12 sup{top:-0.5em;}
12 sup{top:-0.5em;}
13 sub{bottom:-0.25em;}
13 sub{bottom:-0.25em;}
14 img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
14 img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
15 #map_canvas img,.google-maps img{max-width:none;}
15 #map_canvas img,.google-maps img{max-width:none;}
16 button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
16 button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
17 button,input{*overflow:visible;line-height:normal;}
17 button,input{*overflow:visible;line-height:normal;}
18 button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
18 button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
19 button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
19 button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
20 label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
20 label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
21 input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
21 input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
22 input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
22 input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
23 textarea{overflow:auto;vertical-align:top;}
23 textarea{overflow:auto;vertical-align:top;}
24 @media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:20px;color:#000000;background-color:#ffffff;}
24 @media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:20px;color:#000000;background-color:#ffffff;}
25 a{color:#0088cc;text-decoration:none;}
25 a{color:#0088cc;text-decoration:none;}
26 a:hover,a:focus{color:#005580;text-decoration:underline;}
26 a:hover,a:focus{color:#005580;text-decoration:underline;}
27 .img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
27 .img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
28 .img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
28 .img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
29 .img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
29 .img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
30 .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
30 .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
31 .row:after{clear:both;}
31 .row:after{clear:both;}
32 .row:before,.row:after{display:table;content:"";line-height:0;}
32 .row:before,.row:after{display:table;content:"";line-height:0;}
33 .row:after{clear:both;}
33 .row:after{clear:both;}
34 [class*="span"]{float:left;min-height:1px;margin-left:20px;}
34 [class*="span"]{float:left;min-height:1px;margin-left:20px;}
35 .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
35 .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
36 .span12{width:940px;}
36 .span12{width:940px;}
37 .span11{width:860px;}
37 .span11{width:860px;}
38 .span10{width:780px;}
38 .span10{width:780px;}
39 .span9{width:700px;}
39 .span9{width:700px;}
40 .span8{width:620px;}
40 .span8{width:620px;}
41 .span7{width:540px;}
41 .span7{width:540px;}
42 .span6{width:460px;}
42 .span6{width:460px;}
43 .span5{width:380px;}
43 .span5{width:380px;}
44 .span4{width:300px;}
44 .span4{width:300px;}
45 .span3{width:220px;}
45 .span3{width:220px;}
46 .span2{width:140px;}
46 .span2{width:140px;}
47 .span1{width:60px;}
47 .span1{width:60px;}
48 .offset12{margin-left:980px;}
48 .offset12{margin-left:980px;}
49 .offset11{margin-left:900px;}
49 .offset11{margin-left:900px;}
50 .offset10{margin-left:820px;}
50 .offset10{margin-left:820px;}
51 .offset9{margin-left:740px;}
51 .offset9{margin-left:740px;}
52 .offset8{margin-left:660px;}
52 .offset8{margin-left:660px;}
53 .offset7{margin-left:580px;}
53 .offset7{margin-left:580px;}
54 .offset6{margin-left:500px;}
54 .offset6{margin-left:500px;}
55 .offset5{margin-left:420px;}
55 .offset5{margin-left:420px;}
56 .offset4{margin-left:340px;}
56 .offset4{margin-left:340px;}
57 .offset3{margin-left:260px;}
57 .offset3{margin-left:260px;}
58 .offset2{margin-left:180px;}
58 .offset2{margin-left:180px;}
59 .offset1{margin-left:100px;}
59 .offset1{margin-left:100px;}
60 .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
60 .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
61 .row:after{clear:both;}
61 .row:after{clear:both;}
62 .row:before,.row:after{display:table;content:"";line-height:0;}
62 .row:before,.row:after{display:table;content:"";line-height:0;}
63 .row:after{clear:both;}
63 .row:after{clear:both;}
64 [class*="span"]{float:left;min-height:1px;margin-left:20px;}
64 [class*="span"]{float:left;min-height:1px;margin-left:20px;}
65 .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
65 .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
66 .span12{width:940px;}
66 .span12{width:940px;}
67 .span11{width:860px;}
67 .span11{width:860px;}
68 .span10{width:780px;}
68 .span10{width:780px;}
69 .span9{width:700px;}
69 .span9{width:700px;}
70 .span8{width:620px;}
70 .span8{width:620px;}
71 .span7{width:540px;}
71 .span7{width:540px;}
72 .span6{width:460px;}
72 .span6{width:460px;}
73 .span5{width:380px;}
73 .span5{width:380px;}
74 .span4{width:300px;}
74 .span4{width:300px;}
75 .span3{width:220px;}
75 .span3{width:220px;}
76 .span2{width:140px;}
76 .span2{width:140px;}
77 .span1{width:60px;}
77 .span1{width:60px;}
78 .offset12{margin-left:980px;}
78 .offset12{margin-left:980px;}
79 .offset11{margin-left:900px;}
79 .offset11{margin-left:900px;}
80 .offset10{margin-left:820px;}
80 .offset10{margin-left:820px;}
81 .offset9{margin-left:740px;}
81 .offset9{margin-left:740px;}
82 .offset8{margin-left:660px;}
82 .offset8{margin-left:660px;}
83 .offset7{margin-left:580px;}
83 .offset7{margin-left:580px;}
84 .offset6{margin-left:500px;}
84 .offset6{margin-left:500px;}
85 .offset5{margin-left:420px;}
85 .offset5{margin-left:420px;}
86 .offset4{margin-left:340px;}
86 .offset4{margin-left:340px;}
87 .offset3{margin-left:260px;}
87 .offset3{margin-left:260px;}
88 .offset2{margin-left:180px;}
88 .offset2{margin-left:180px;}
89 .offset1{margin-left:100px;}
89 .offset1{margin-left:100px;}
90 .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
90 .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
91 .row-fluid:after{clear:both;}
91 .row-fluid:after{clear:both;}
92 .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
92 .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
93 .row-fluid:after{clear:both;}
93 .row-fluid:after{clear:both;}
94 .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
94 .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
95 .row-fluid [class*="span"]:first-child{margin-left:0;}
95 .row-fluid [class*="span"]:first-child{margin-left:0;}
96 .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
96 .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
97 .row-fluid .span12{width:100%;*width:99.94680851063829%;}
97 .row-fluid .span12{width:100%;*width:99.94680851063829%;}
98 .row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
98 .row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
99 .row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
99 .row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
100 .row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
100 .row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
101 .row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
101 .row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
102 .row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
102 .row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
103 .row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
103 .row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
104 .row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
104 .row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
105 .row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
105 .row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
106 .row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
106 .row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
107 .row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
107 .row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
108 .row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
108 .row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
109 .row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
109 .row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
110 .row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
110 .row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
111 .row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
111 .row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
112 .row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
112 .row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
113 .row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
113 .row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
114 .row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
114 .row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
115 .row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
115 .row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
116 .row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
116 .row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
117 .row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
117 .row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
118 .row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
118 .row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
119 .row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
119 .row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
120 .row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
120 .row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
121 .row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
121 .row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
122 .row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
122 .row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
123 .row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
123 .row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
124 .row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
124 .row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
125 .row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
125 .row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
126 .row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
126 .row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
127 .row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
127 .row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
128 .row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
128 .row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
129 .row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
129 .row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
130 .row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
130 .row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
131 .row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
131 .row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
132 .row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
132 .row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
133 .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
133 .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
134 .row-fluid:after{clear:both;}
134 .row-fluid:after{clear:both;}
135 .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
135 .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
136 .row-fluid:after{clear:both;}
136 .row-fluid:after{clear:both;}
137 .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
137 .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
138 .row-fluid [class*="span"]:first-child{margin-left:0;}
138 .row-fluid [class*="span"]:first-child{margin-left:0;}
139 .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
139 .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
140 .row-fluid .span12{width:100%;*width:99.94680851063829%;}
140 .row-fluid .span12{width:100%;*width:99.94680851063829%;}
141 .row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
141 .row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
142 .row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
142 .row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
143 .row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
143 .row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
144 .row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
144 .row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
145 .row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
145 .row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
146 .row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
146 .row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
147 .row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
147 .row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
148 .row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
148 .row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
149 .row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
149 .row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
150 .row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
150 .row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
151 .row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
151 .row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
152 .row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
152 .row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
153 .row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
153 .row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
154 .row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
154 .row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
155 .row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
155 .row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
156 .row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
156 .row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
157 .row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
157 .row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
158 .row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
158 .row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
159 .row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
159 .row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
160 .row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
160 .row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
161 .row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
161 .row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
162 .row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
162 .row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
163 .row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
163 .row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
164 .row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
164 .row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
165 .row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
165 .row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
166 .row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
166 .row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
167 .row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
167 .row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
168 .row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
168 .row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
169 .row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
169 .row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
170 .row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
170 .row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
171 .row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
171 .row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
172 .row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
172 .row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
173 .row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
173 .row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
174 .row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
174 .row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
175 .row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
175 .row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
176 [class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
176 [class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
177 [class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
177 [class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
178 .container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
178 .container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
179 .container:after{clear:both;}
179 .container:after{clear:both;}
180 .container:before,.container:after{display:table;content:"";line-height:0;}
180 .container:before,.container:after{display:table;content:"";line-height:0;}
181 .container:after{clear:both;}
181 .container:after{clear:both;}
182 .container:before,.container:after{display:table;content:"";line-height:0;}
182 .container:before,.container:after{display:table;content:"";line-height:0;}
183 .container:after{clear:both;}
183 .container:after{clear:both;}
184 .container:before,.container:after{display:table;content:"";line-height:0;}
184 .container:before,.container:after{display:table;content:"";line-height:0;}
185 .container:after{clear:both;}
185 .container:after{clear:both;}
186 .container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
186 .container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
187 .container-fluid:after{clear:both;}
187 .container-fluid:after{clear:both;}
188 .container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
188 .container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
189 .container-fluid:after{clear:both;}
189 .container-fluid:after{clear:both;}
190 p{margin:0 0 10px;}
190 p{margin:0 0 10px;}
191 .lead{margin-bottom:20px;font-size:19.5px;font-weight:200;line-height:30px;}
191 .lead{margin-bottom:20px;font-size:19.5px;font-weight:200;line-height:30px;}
192 small{font-size:85%;}
192 small{font-size:85%;}
193 strong{font-weight:bold;}
193 strong{font-weight:bold;}
194 em{font-style:italic;}
194 em{font-style:italic;}
195 cite{font-style:normal;}
195 cite{font-style:normal;}
196 .muted{color:#999999;}
196 .muted{color:#999999;}
197 a.muted:hover,a.muted:focus{color:#808080;}
197 a.muted:hover,a.muted:focus{color:#808080;}
198 .text-warning{color:#c09853;}
198 .text-warning{color:#c09853;}
199 a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}
199 a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}
200 .text-error{color:#b94a48;}
200 .text-error{color:#b94a48;}
201 a.text-error:hover,a.text-error:focus{color:#953b39;}
201 a.text-error:hover,a.text-error:focus{color:#953b39;}
202 .text-info{color:#3a87ad;}
202 .text-info{color:#3a87ad;}
203 a.text-info:hover,a.text-info:focus{color:#2d6987;}
203 a.text-info:hover,a.text-info:focus{color:#2d6987;}
204 .text-success{color:#468847;}
204 .text-success{color:#468847;}
205 a.text-success:hover,a.text-success:focus{color:#356635;}
205 a.text-success:hover,a.text-success:focus{color:#356635;}
206 .text-left{text-align:left;}
206 .text-left{text-align:left;}
207 .text-right{text-align:right;}
207 .text-right{text-align:right;}
208 .text-center{text-align:center;}
208 .text-center{text-align:center;}
209 h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
209 h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
210 h1,h2,h3{line-height:40px;}
210 h1,h2,h3{line-height:40px;}
211 h1{font-size:35.75px;}
211 h1{font-size:35.75px;}
212 h2{font-size:29.25px;}
212 h2{font-size:29.25px;}
213 h3{font-size:22.75px;}
213 h3{font-size:22.75px;}
214 h4{font-size:16.25px;}
214 h4{font-size:16.25px;}
215 h5{font-size:13px;}
215 h5{font-size:13px;}
216 h6{font-size:11.049999999999999px;}
216 h6{font-size:11.049999999999999px;}
217 h1 small{font-size:22.75px;}
217 h1 small{font-size:22.75px;}
218 h2 small{font-size:16.25px;}
218 h2 small{font-size:16.25px;}
219 h3 small{font-size:13px;}
219 h3 small{font-size:13px;}
220 h4 small{font-size:13px;}
220 h4 small{font-size:13px;}
221 .page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
221 .page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
222 ul,ol{padding:0;margin:0 0 10px 25px;}
222 ul,ol{padding:0;margin:0 0 10px 25px;}
223 ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
223 ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
224 li{line-height:20px;}
224 li{line-height:20px;}
225 ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
225 ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
226 ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;}
226 ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;}
227 dl{margin-bottom:20px;}
227 dl{margin-bottom:20px;}
228 dt,dd{line-height:20px;}
228 dt,dd{line-height:20px;}
229 dt{font-weight:bold;}
229 dt{font-weight:bold;}
230 dd{margin-left:10px;}
230 dd{margin-left:10px;}
231 .dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
231 .dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
232 .dl-horizontal:after{clear:both;}
232 .dl-horizontal:after{clear:both;}
233 .dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
233 .dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
234 .dl-horizontal:after{clear:both;}
234 .dl-horizontal:after{clear:both;}
235 .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
235 .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
236 .dl-horizontal dd{margin-left:180px;}
236 .dl-horizontal dd{margin-left:180px;}
237 hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
237 hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
238 abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
238 abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
239 abbr.initialism{font-size:90%;text-transform:uppercase;}
239 abbr.initialism{font-size:90%;text-transform:uppercase;}
240 blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16.25px;font-weight:300;line-height:1.25;}
240 blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16.25px;font-weight:300;line-height:1.25;}
241 blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
241 blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
242 blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
242 blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
243 blockquote.pull-right small:before{content:'';}
243 blockquote.pull-right small:before{content:'';}
244 blockquote.pull-right small:after{content:'\00A0 \2014';}
244 blockquote.pull-right small:after{content:'\00A0 \2014';}
245 q:before,q:after,blockquote:before,blockquote:after{content:"";}
245 q:before,q:after,blockquote:before,blockquote:after{content:"";}
246 address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
246 address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
247 code,pre{padding:0 3px 2px;font-family:monospace;font-size:11px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
247 code,pre{padding:0 3px 2px;font-family:monospace;font-size:11px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
248 code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
248 code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
249 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:12px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
249 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:12px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
250 pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
250 pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
251 .pre-scrollable{max-height:340px;overflow-y:scroll;}
251 .pre-scrollable{max-height:340px;overflow-y:scroll;}
252 form{margin:0 0 20px;}
252 form{margin:0 0 20px;}
253 fieldset{padding:0;margin:0;border:0;}
253 fieldset{padding:0;margin:0;border:0;}
254 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:19.5px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
254 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:19.5px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
255 label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:20px;}
255 label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:20px;}
256 input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
256 input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
257 label{display:block;margin-bottom:5px;}
257 label{display:block;margin-bottom:5px;}
258 select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:13px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
258 select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:13px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
259 input,textarea,.uneditable-input{width:206px;}
259 input,textarea,.uneditable-input{width:206px;}
260 textarea{height:auto;}
260 textarea{height:auto;}
261 textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
261 textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
262 input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
262 input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
263 input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
263 input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
264 select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
264 select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
265 select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
265 select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
266 select[multiple],select[size]{height:auto;}
266 select[multiple],select[size]{height:auto;}
267 select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
267 select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
268 .uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
268 .uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
269 .uneditable-input{overflow:hidden;white-space:nowrap;}
269 .uneditable-input{overflow:hidden;white-space:nowrap;}
270 .uneditable-textarea{width:auto;height:auto;}
270 .uneditable-textarea{width:auto;height:auto;}
271 input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
271 input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
272 input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
272 input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
273 input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
273 input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
274 input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
274 input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
275 input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
275 input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
276 input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
276 input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
277 .radio,.checkbox{min-height:20px;padding-left:20px;}
277 .radio,.checkbox{min-height:20px;padding-left:20px;}
278 .radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
278 .radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
279 .controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
279 .controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
280 .radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
280 .radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
281 .radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
281 .radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
282 .input-mini{width:60px;}
282 .input-mini{width:60px;}
283 .input-small{width:90px;}
283 .input-small{width:90px;}
284 .input-medium{width:150px;}
284 .input-medium{width:150px;}
285 .input-large{width:210px;}
285 .input-large{width:210px;}
286 .input-xlarge{width:270px;}
286 .input-xlarge{width:270px;}
287 .input-xxlarge{width:530px;}
287 .input-xxlarge{width:530px;}
288 input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
288 input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
289 .input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
289 .input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
290 input,textarea,.uneditable-input{margin-left:0;}
290 input,textarea,.uneditable-input{margin-left:0;}
291 .controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
291 .controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
292 input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
292 input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
293 input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
293 input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
294 input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
294 input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
295 input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
295 input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
296 input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
296 input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
297 input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
297 input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
298 input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
298 input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
299 input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
299 input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
300 input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
300 input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
301 input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
301 input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
302 input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
302 input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
303 input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
303 input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
304 input,textarea,.uneditable-input{margin-left:0;}
304 input,textarea,.uneditable-input{margin-left:0;}
305 .controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
305 .controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
306 input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
306 input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
307 input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
307 input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
308 input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
308 input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
309 input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
309 input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
310 input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
310 input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
311 input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
311 input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
312 input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
312 input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
313 input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
313 input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
314 input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
314 input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
315 input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
315 input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
316 input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
316 input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
317 input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
317 input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
318 .controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
318 .controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
319 .controls-row:after{clear:both;}
319 .controls-row:after{clear:both;}
320 .controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
320 .controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
321 .controls-row:after{clear:both;}
321 .controls-row:after{clear:both;}
322 .controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
322 .controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
323 .controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
323 .controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
324 input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
324 input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
325 input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
325 input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
326 .control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
326 .control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
327 .control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
327 .control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
328 .control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
328 .control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
329 .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
329 .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
330 .control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
330 .control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
331 .control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
331 .control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
332 .control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
332 .control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
333 .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
333 .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
334 .control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
334 .control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
335 .control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
335 .control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
336 .control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
336 .control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
337 .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
337 .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
338 .control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
338 .control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
339 .control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
339 .control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
340 .control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
340 .control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
341 .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
341 .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
342 .control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
342 .control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
343 .control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
343 .control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
344 .control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
344 .control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
345 .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
345 .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
346 .control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
346 .control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
347 .control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
347 .control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
348 .control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
348 .control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
349 .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
349 .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
350 .control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
350 .control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
351 .control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
351 .control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
352 .control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
352 .control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
353 .control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
353 .control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
354 .control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
354 .control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
355 .control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
355 .control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
356 .control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
356 .control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
357 .control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
357 .control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
358 input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
358 input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
359 .form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
359 .form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
360 .form-actions:after{clear:both;}
360 .form-actions:after{clear:both;}
361 .form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
361 .form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
362 .form-actions:after{clear:both;}
362 .form-actions:after{clear:both;}
363 .help-block,.help-inline{color:#262626;}
363 .help-block,.help-inline{color:#262626;}
364 .help-block{display:block;margin-bottom:10px;}
364 .help-block{display:block;margin-bottom:10px;}
365 .help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
365 .help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
366 .input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:13px;}
366 .input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:13px;}
367 .input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
367 .input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
368 .input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:13px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
368 .input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:13px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
369 .input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
369 .input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
370 .input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
370 .input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
371 .input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
371 .input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
372 .input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
372 .input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
373 .input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
373 .input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
374 .input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
374 .input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
375 .input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
375 .input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
376 .input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
376 .input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
377 .input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
377 .input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
378 .input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
378 .input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
379 .input-prepend.input-append .btn-group:first-child{margin-left:0;}
379 .input-prepend.input-append .btn-group:first-child{margin-left:0;}
380 input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
380 input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
381 .form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
381 .form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
382 .form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
382 .form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
383 .form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
383 .form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
384 .form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
384 .form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
385 .form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
385 .form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
386 .form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
386 .form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
387 .form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
387 .form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
388 .form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
388 .form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
389 .form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
389 .form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
390 .form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
390 .form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
391 .form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
391 .form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
392 .control-group{margin-bottom:10px;}
392 .control-group{margin-bottom:10px;}
393 legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
393 legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
394 .form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
394 .form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
395 .form-horizontal .control-group:after{clear:both;}
395 .form-horizontal .control-group:after{clear:both;}
396 .form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
396 .form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
397 .form-horizontal .control-group:after{clear:both;}
397 .form-horizontal .control-group:after{clear:both;}
398 .form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
398 .form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
399 .form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
399 .form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
400 .form-horizontal .help-block{margin-bottom:0;}
400 .form-horizontal .help-block{margin-bottom:0;}
401 .form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
401 .form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
402 .form-horizontal .form-actions{padding-left:180px;}
402 .form-horizontal .form-actions{padding-left:180px;}
403 table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
403 table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
404 .table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
404 .table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
405 .table th{font-weight:bold;}
405 .table th{font-weight:bold;}
406 .table thead th{vertical-align:bottom;}
406 .table thead th{vertical-align:bottom;}
407 .table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
407 .table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
408 .table tbody+tbody{border-top:2px solid #dddddd;}
408 .table tbody+tbody{border-top:2px solid #dddddd;}
409 .table .table{background-color:#ffffff;}
409 .table .table{background-color:#ffffff;}
410 .table-condensed th,.table-condensed td{padding:4px 5px;}
410 .table-condensed th,.table-condensed td{padding:4px 5px;}
411 .table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
411 .table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
412 .table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
412 .table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
413 .table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
413 .table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
414 .table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
414 .table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
415 .table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
415 .table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
416 .table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
416 .table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
417 .table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
417 .table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
418 .table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
418 .table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
419 .table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
419 .table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
420 .table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
420 .table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
421 .table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
421 .table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
422 .table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;}
422 .table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;}
423 table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
423 table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
424 .table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
424 .table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
425 .table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
425 .table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
426 .table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
426 .table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
427 .table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
427 .table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
428 .table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
428 .table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
429 .table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
429 .table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
430 .table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
430 .table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
431 .table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
431 .table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
432 .table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
432 .table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
433 .table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
433 .table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
434 .table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
434 .table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
435 .table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
435 .table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
436 .table tbody tr.success>td{background-color:#dff0d8;}
436 .table tbody tr.success>td{background-color:#dff0d8;}
437 .table tbody tr.error>td{background-color:#f2dede;}
437 .table tbody tr.error>td{background-color:#f2dede;}
438 .table tbody tr.warning>td{background-color:#fcf8e3;}
438 .table tbody tr.warning>td{background-color:#fcf8e3;}
439 .table tbody tr.info>td{background-color:#d9edf7;}
439 .table tbody tr.info>td{background-color:#d9edf7;}
440 .table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}
440 .table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}
441 .table-hover tbody tr.error:hover>td{background-color:#ebcccc;}
441 .table-hover tbody tr.error:hover>td{background-color:#ebcccc;}
442 .table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}
442 .table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}
443 .table-hover tbody tr.info:hover>td{background-color:#c4e3f3;}
443 .table-hover tbody tr.info:hover>td{background-color:#c4e3f3;}
444 [class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
444 [class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
445 .icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
445 .icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
446 .icon-glass{background-position:0 0;}
446 .icon-glass{background-position:0 0;}
447 .icon-music{background-position:-24px 0;}
447 .icon-music{background-position:-24px 0;}
448 .icon-search{background-position:-48px 0;}
448 .icon-search{background-position:-48px 0;}
449 .icon-envelope{background-position:-72px 0;}
449 .icon-envelope{background-position:-72px 0;}
450 .icon-heart{background-position:-96px 0;}
450 .icon-heart{background-position:-96px 0;}
451 .icon-star{background-position:-120px 0;}
451 .icon-star{background-position:-120px 0;}
452 .icon-star-empty{background-position:-144px 0;}
452 .icon-star-empty{background-position:-144px 0;}
453 .icon-user{background-position:-168px 0;}
453 .icon-user{background-position:-168px 0;}
454 .icon-film{background-position:-192px 0;}
454 .icon-film{background-position:-192px 0;}
455 .icon-th-large{background-position:-216px 0;}
455 .icon-th-large{background-position:-216px 0;}
456 .icon-th{background-position:-240px 0;}
456 .icon-th{background-position:-240px 0;}
457 .icon-th-list{background-position:-264px 0;}
457 .icon-th-list{background-position:-264px 0;}
458 .icon-ok{background-position:-288px 0;}
458 .icon-ok{background-position:-288px 0;}
459 .icon-remove{background-position:-312px 0;}
459 .icon-remove{background-position:-312px 0;}
460 .icon-zoom-in{background-position:-336px 0;}
460 .icon-zoom-in{background-position:-336px 0;}
461 .icon-zoom-out{background-position:-360px 0;}
461 .icon-zoom-out{background-position:-360px 0;}
462 .icon-off{background-position:-384px 0;}
462 .icon-off{background-position:-384px 0;}
463 .icon-signal{background-position:-408px 0;}
463 .icon-signal{background-position:-408px 0;}
464 .icon-cog{background-position:-432px 0;}
464 .icon-cog{background-position:-432px 0;}
465 .icon-trash{background-position:-456px 0;}
465 .icon-trash{background-position:-456px 0;}
466 .icon-home{background-position:0 -24px;}
466 .icon-home{background-position:0 -24px;}
467 .icon-file{background-position:-24px -24px;}
467 .icon-file{background-position:-24px -24px;}
468 .icon-time{background-position:-48px -24px;}
468 .icon-time{background-position:-48px -24px;}
469 .icon-road{background-position:-72px -24px;}
469 .icon-road{background-position:-72px -24px;}
470 .icon-download-alt{background-position:-96px -24px;}
470 .icon-download-alt{background-position:-96px -24px;}
471 .icon-download{background-position:-120px -24px;}
471 .icon-download{background-position:-120px -24px;}
472 .icon-upload{background-position:-144px -24px;}
472 .icon-upload{background-position:-144px -24px;}
473 .icon-inbox{background-position:-168px -24px;}
473 .icon-inbox{background-position:-168px -24px;}
474 .icon-play-circle{background-position:-192px -24px;}
474 .icon-play-circle{background-position:-192px -24px;}
475 .icon-repeat{background-position:-216px -24px;}
475 .icon-repeat{background-position:-216px -24px;}
476 .icon-refresh{background-position:-240px -24px;}
476 .icon-refresh{background-position:-240px -24px;}
477 .icon-list-alt{background-position:-264px -24px;}
477 .icon-list-alt{background-position:-264px -24px;}
478 .icon-lock{background-position:-287px -24px;}
478 .icon-lock{background-position:-287px -24px;}
479 .icon-flag{background-position:-312px -24px;}
479 .icon-flag{background-position:-312px -24px;}
480 .icon-headphones{background-position:-336px -24px;}
480 .icon-headphones{background-position:-336px -24px;}
481 .icon-volume-off{background-position:-360px -24px;}
481 .icon-volume-off{background-position:-360px -24px;}
482 .icon-volume-down{background-position:-384px -24px;}
482 .icon-volume-down{background-position:-384px -24px;}
483 .icon-volume-up{background-position:-408px -24px;}
483 .icon-volume-up{background-position:-408px -24px;}
484 .icon-qrcode{background-position:-432px -24px;}
484 .icon-qrcode{background-position:-432px -24px;}
485 .icon-barcode{background-position:-456px -24px;}
485 .icon-barcode{background-position:-456px -24px;}
486 .icon-tag{background-position:0 -48px;}
486 .icon-tag{background-position:0 -48px;}
487 .icon-tags{background-position:-25px -48px;}
487 .icon-tags{background-position:-25px -48px;}
488 .icon-book{background-position:-48px -48px;}
488 .icon-book{background-position:-48px -48px;}
489 .icon-bookmark{background-position:-72px -48px;}
489 .icon-bookmark{background-position:-72px -48px;}
490 .icon-print{background-position:-96px -48px;}
490 .icon-print{background-position:-96px -48px;}
491 .icon-camera{background-position:-120px -48px;}
491 .icon-camera{background-position:-120px -48px;}
492 .icon-font{background-position:-144px -48px;}
492 .icon-font{background-position:-144px -48px;}
493 .icon-bold{background-position:-167px -48px;}
493 .icon-bold{background-position:-167px -48px;}
494 .icon-italic{background-position:-192px -48px;}
494 .icon-italic{background-position:-192px -48px;}
495 .icon-text-height{background-position:-216px -48px;}
495 .icon-text-height{background-position:-216px -48px;}
496 .icon-text-width{background-position:-240px -48px;}
496 .icon-text-width{background-position:-240px -48px;}
497 .icon-align-left{background-position:-264px -48px;}
497 .icon-align-left{background-position:-264px -48px;}
498 .icon-align-center{background-position:-288px -48px;}
498 .icon-align-center{background-position:-288px -48px;}
499 .icon-align-right{background-position:-312px -48px;}
499 .icon-align-right{background-position:-312px -48px;}
500 .icon-align-justify{background-position:-336px -48px;}
500 .icon-align-justify{background-position:-336px -48px;}
501 .icon-list{background-position:-360px -48px;}
501 .icon-list{background-position:-360px -48px;}
502 .icon-indent-left{background-position:-384px -48px;}
502 .icon-indent-left{background-position:-384px -48px;}
503 .icon-indent-right{background-position:-408px -48px;}
503 .icon-indent-right{background-position:-408px -48px;}
504 .icon-facetime-video{background-position:-432px -48px;}
504 .icon-facetime-video{background-position:-432px -48px;}
505 .icon-picture{background-position:-456px -48px;}
505 .icon-picture{background-position:-456px -48px;}
506 .icon-pencil{background-position:0 -72px;}
506 .icon-pencil{background-position:0 -72px;}
507 .icon-map-marker{background-position:-24px -72px;}
507 .icon-map-marker{background-position:-24px -72px;}
508 .icon-adjust{background-position:-48px -72px;}
508 .icon-adjust{background-position:-48px -72px;}
509 .icon-tint{background-position:-72px -72px;}
509 .icon-tint{background-position:-72px -72px;}
510 .icon-edit{background-position:-96px -72px;}
510 .icon-edit{background-position:-96px -72px;}
511 .icon-share{background-position:-120px -72px;}
511 .icon-share{background-position:-120px -72px;}
512 .icon-check{background-position:-144px -72px;}
512 .icon-check{background-position:-144px -72px;}
513 .icon-move{background-position:-168px -72px;}
513 .icon-move{background-position:-168px -72px;}
514 .icon-step-backward{background-position:-192px -72px;}
514 .icon-step-backward{background-position:-192px -72px;}
515 .icon-fast-backward{background-position:-216px -72px;}
515 .icon-fast-backward{background-position:-216px -72px;}
516 .icon-backward{background-position:-240px -72px;}
516 .icon-backward{background-position:-240px -72px;}
517 .icon-play{background-position:-264px -72px;}
517 .icon-play{background-position:-264px -72px;}
518 .icon-pause{background-position:-288px -72px;}
518 .icon-pause{background-position:-288px -72px;}
519 .icon-stop{background-position:-312px -72px;}
519 .icon-stop{background-position:-312px -72px;}
520 .icon-forward{background-position:-336px -72px;}
520 .icon-forward{background-position:-336px -72px;}
521 .icon-fast-forward{background-position:-360px -72px;}
521 .icon-fast-forward{background-position:-360px -72px;}
522 .icon-step-forward{background-position:-384px -72px;}
522 .icon-step-forward{background-position:-384px -72px;}
523 .icon-eject{background-position:-408px -72px;}
523 .icon-eject{background-position:-408px -72px;}
524 .icon-chevron-left{background-position:-432px -72px;}
524 .icon-chevron-left{background-position:-432px -72px;}
525 .icon-chevron-right{background-position:-456px -72px;}
525 .icon-chevron-right{background-position:-456px -72px;}
526 .icon-plus-sign{background-position:0 -96px;}
526 .icon-plus-sign{background-position:0 -96px;}
527 .icon-minus-sign{background-position:-24px -96px;}
527 .icon-minus-sign{background-position:-24px -96px;}
528 .icon-remove-sign{background-position:-48px -96px;}
528 .icon-remove-sign{background-position:-48px -96px;}
529 .icon-ok-sign{background-position:-72px -96px;}
529 .icon-ok-sign{background-position:-72px -96px;}
530 .icon-question-sign{background-position:-96px -96px;}
530 .icon-question-sign{background-position:-96px -96px;}
531 .icon-info-sign{background-position:-120px -96px;}
531 .icon-info-sign{background-position:-120px -96px;}
532 .icon-screenshot{background-position:-144px -96px;}
532 .icon-screenshot{background-position:-144px -96px;}
533 .icon-remove-circle{background-position:-168px -96px;}
533 .icon-remove-circle{background-position:-168px -96px;}
534 .icon-ok-circle{background-position:-192px -96px;}
534 .icon-ok-circle{background-position:-192px -96px;}
535 .icon-ban-circle{background-position:-216px -96px;}
535 .icon-ban-circle{background-position:-216px -96px;}
536 .icon-arrow-left{background-position:-240px -96px;}
536 .icon-arrow-left{background-position:-240px -96px;}
537 .icon-arrow-right{background-position:-264px -96px;}
537 .icon-arrow-right{background-position:-264px -96px;}
538 .icon-arrow-up{background-position:-289px -96px;}
538 .icon-arrow-up{background-position:-289px -96px;}
539 .icon-arrow-down{background-position:-312px -96px;}
539 .icon-arrow-down{background-position:-312px -96px;}
540 .icon-share-alt{background-position:-336px -96px;}
540 .icon-share-alt{background-position:-336px -96px;}
541 .icon-resize-full{background-position:-360px -96px;}
541 .icon-resize-full{background-position:-360px -96px;}
542 .icon-resize-small{background-position:-384px -96px;}
542 .icon-resize-small{background-position:-384px -96px;}
543 .icon-plus{background-position:-408px -96px;}
543 .icon-plus{background-position:-408px -96px;}
544 .icon-minus{background-position:-433px -96px;}
544 .icon-minus{background-position:-433px -96px;}
545 .icon-asterisk{background-position:-456px -96px;}
545 .icon-asterisk{background-position:-456px -96px;}
546 .icon-exclamation-sign{background-position:0 -120px;}
546 .icon-exclamation-sign{background-position:0 -120px;}
547 .icon-gift{background-position:-24px -120px;}
547 .icon-gift{background-position:-24px -120px;}
548 .icon-leaf{background-position:-48px -120px;}
548 .icon-leaf{background-position:-48px -120px;}
549 .icon-fire{background-position:-72px -120px;}
549 .icon-fire{background-position:-72px -120px;}
550 .icon-eye-open{background-position:-96px -120px;}
550 .icon-eye-open{background-position:-96px -120px;}
551 .icon-eye-close{background-position:-120px -120px;}
551 .icon-eye-close{background-position:-120px -120px;}
552 .icon-warning-sign{background-position:-144px -120px;}
552 .icon-warning-sign{background-position:-144px -120px;}
553 .icon-plane{background-position:-168px -120px;}
553 .icon-plane{background-position:-168px -120px;}
554 .icon-calendar{background-position:-192px -120px;}
554 .icon-calendar{background-position:-192px -120px;}
555 .icon-random{background-position:-216px -120px;width:16px;}
555 .icon-random{background-position:-216px -120px;width:16px;}
556 .icon-comment{background-position:-240px -120px;}
556 .icon-comment{background-position:-240px -120px;}
557 .icon-magnet{background-position:-264px -120px;}
557 .icon-magnet{background-position:-264px -120px;}
558 .icon-chevron-up{background-position:-288px -120px;}
558 .icon-chevron-up{background-position:-288px -120px;}
559 .icon-chevron-down{background-position:-313px -119px;}
559 .icon-chevron-down{background-position:-313px -119px;}
560 .icon-retweet{background-position:-336px -120px;}
560 .icon-retweet{background-position:-336px -120px;}
561 .icon-shopping-cart{background-position:-360px -120px;}
561 .icon-shopping-cart{background-position:-360px -120px;}
562 .icon-folder-close{background-position:-384px -120px;width:16px;}
562 .icon-folder-close{background-position:-384px -120px;width:16px;}
563 .icon-folder-open{background-position:-408px -120px;width:16px;}
563 .icon-folder-open{background-position:-408px -120px;width:16px;}
564 .icon-resize-vertical{background-position:-432px -119px;}
564 .icon-resize-vertical{background-position:-432px -119px;}
565 .icon-resize-horizontal{background-position:-456px -118px;}
565 .icon-resize-horizontal{background-position:-456px -118px;}
566 .icon-hdd{background-position:0 -144px;}
566 .icon-hdd{background-position:0 -144px;}
567 .icon-bullhorn{background-position:-24px -144px;}
567 .icon-bullhorn{background-position:-24px -144px;}
568 .icon-bell{background-position:-48px -144px;}
568 .icon-bell{background-position:-48px -144px;}
569 .icon-certificate{background-position:-72px -144px;}
569 .icon-certificate{background-position:-72px -144px;}
570 .icon-thumbs-up{background-position:-96px -144px;}
570 .icon-thumbs-up{background-position:-96px -144px;}
571 .icon-thumbs-down{background-position:-120px -144px;}
571 .icon-thumbs-down{background-position:-120px -144px;}
572 .icon-hand-right{background-position:-144px -144px;}
572 .icon-hand-right{background-position:-144px -144px;}
573 .icon-hand-left{background-position:-168px -144px;}
573 .icon-hand-left{background-position:-168px -144px;}
574 .icon-hand-up{background-position:-192px -144px;}
574 .icon-hand-up{background-position:-192px -144px;}
575 .icon-hand-down{background-position:-216px -144px;}
575 .icon-hand-down{background-position:-216px -144px;}
576 .icon-circle-arrow-right{background-position:-240px -144px;}
576 .icon-circle-arrow-right{background-position:-240px -144px;}
577 .icon-circle-arrow-left{background-position:-264px -144px;}
577 .icon-circle-arrow-left{background-position:-264px -144px;}
578 .icon-circle-arrow-up{background-position:-288px -144px;}
578 .icon-circle-arrow-up{background-position:-288px -144px;}
579 .icon-circle-arrow-down{background-position:-312px -144px;}
579 .icon-circle-arrow-down{background-position:-312px -144px;}
580 .icon-globe{background-position:-336px -144px;}
580 .icon-globe{background-position:-336px -144px;}
581 .icon-wrench{background-position:-360px -144px;}
581 .icon-wrench{background-position:-360px -144px;}
582 .icon-tasks{background-position:-384px -144px;}
582 .icon-tasks{background-position:-384px -144px;}
583 .icon-filter{background-position:-408px -144px;}
583 .icon-filter{background-position:-408px -144px;}
584 .icon-briefcase{background-position:-432px -144px;}
584 .icon-briefcase{background-position:-432px -144px;}
585 .icon-fullscreen{background-position:-456px -144px;}
585 .icon-fullscreen{background-position:-456px -144px;}
586 .dropup,.dropdown{position:relative;}
586 .dropup,.dropdown{position:relative;}
587 .dropdown-toggle{*margin-bottom:-3px;}
587 .dropdown-toggle{*margin-bottom:-3px;}
588 .dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
588 .dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
589 .caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
589 .caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
590 .dropdown .caret{margin-top:8px;margin-left:2px;}
590 .dropdown .caret{margin-top:8px;margin-left:2px;}
591 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
591 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
592 .dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
592 .dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
593 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
593 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
594 .dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
594 .dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
595 .dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
595 .dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
596 .dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
596 .dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
597 .dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
597 .dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
598 .open{*z-index:1000;}.open>.dropdown-menu{display:block;}
598 .open{*z-index:1000;}.open>.dropdown-menu{display:block;}
599 .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
599 .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
600 .pull-right>.dropdown-menu{right:0;left:auto;}
600 .pull-right>.dropdown-menu{right:0;left:auto;}
601 .dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
601 .dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
602 .dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
602 .dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
603 .dropdown-submenu{position:relative;}
603 .dropdown-submenu{position:relative;}
604 .dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
604 .dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
605 .dropdown-submenu:hover>.dropdown-menu{display:block;}
605 .dropdown-submenu:hover>.dropdown-menu{display:block;}
606 .dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
606 .dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
607 .dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
607 .dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
608 .dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
608 .dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
609 .dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
609 .dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
610 .dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
610 .dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
611 .typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
611 .typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
612 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
612 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
613 .well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
613 .well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
614 .well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
614 .well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
615 .fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
615 .fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
616 .collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
616 .collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
617 .close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
617 .close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
618 button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
618 button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
619 .btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:13px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
619 .btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:13px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
620 .btn:active,.btn.active{background-color:#cccccc \9;}
620 .btn:active,.btn.active{background-color:#cccccc \9;}
621 .btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
621 .btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
622 .btn:active,.btn.active{background-color:#cccccc \9;}
622 .btn:active,.btn.active{background-color:#cccccc \9;}
623 .btn:first-child{*margin-left:0;}
623 .btn:first-child{*margin-left:0;}
624 .btn:first-child{*margin-left:0;}
624 .btn:first-child{*margin-left:0;}
625 .btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
625 .btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
626 .btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
626 .btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
627 .btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
627 .btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
628 .btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
628 .btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
629 .btn-large{padding:11px 19px;font-size:16.25px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
629 .btn-large{padding:11px 19px;font-size:16.25px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
630 .btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
630 .btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
631 .btn-small{padding:2px 10px;font-size:11.049999999999999px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
631 .btn-small{padding:2px 10px;font-size:11.049999999999999px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
632 .btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
632 .btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
633 .btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
633 .btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
634 .btn-mini{padding:0 6px;font-size:9.75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
634 .btn-mini{padding:0 6px;font-size:9.75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
635 .btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
635 .btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
636 .btn-block+.btn-block{margin-top:5px;}
636 .btn-block+.btn-block{margin-top:5px;}
637 input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
637 input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
638 .btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
638 .btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
639 .btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
639 .btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
640 .btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
640 .btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
641 .btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
641 .btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
642 .btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
642 .btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
643 .btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
643 .btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
644 .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
644 .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
645 .btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
645 .btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
646 .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
646 .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
647 .btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
647 .btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
648 .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
648 .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
649 .btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
649 .btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
650 .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
650 .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
651 .btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
651 .btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
652 .btn-success:active,.btn-success.active{background-color:#408140 \9;}
652 .btn-success:active,.btn-success.active{background-color:#408140 \9;}
653 .btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
653 .btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
654 .btn-success:active,.btn-success.active{background-color:#408140 \9;}
654 .btn-success:active,.btn-success.active{background-color:#408140 \9;}
655 .btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
655 .btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
656 .btn-info:active,.btn-info.active{background-color:#24748c \9;}
656 .btn-info:active,.btn-info.active{background-color:#24748c \9;}
657 .btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
657 .btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
658 .btn-info:active,.btn-info.active{background-color:#24748c \9;}
658 .btn-info:active,.btn-info.active{background-color:#24748c \9;}
659 .btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
659 .btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
660 .btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
660 .btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
661 .btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
661 .btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
662 .btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
662 .btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
663 button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
663 button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
664 button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
664 button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
665 button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
665 button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
666 button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
666 button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
667 .btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
667 .btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
668 .btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
668 .btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
669 .btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;}
669 .btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;}
670 .btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;}
670 .btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;}
671 .btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
671 .btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
672 .btn-group:first-child{*margin-left:0;}
672 .btn-group:first-child{*margin-left:0;}
673 .btn-group+.btn-group{margin-left:5px;}
673 .btn-group+.btn-group{margin-left:5px;}
674 .btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
674 .btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
675 .btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
675 .btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
676 .btn-group>.btn+.btn{margin-left:-1px;}
676 .btn-group>.btn+.btn{margin-left:-1px;}
677 .btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:13px;}
677 .btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:13px;}
678 .btn-group>.btn-mini{font-size:9.75px;}
678 .btn-group>.btn-mini{font-size:9.75px;}
679 .btn-group>.btn-small{font-size:11.049999999999999px;}
679 .btn-group>.btn-small{font-size:11.049999999999999px;}
680 .btn-group>.btn-large{font-size:16.25px;}
680 .btn-group>.btn-large{font-size:16.25px;}
681 .btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
681 .btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
682 .btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
682 .btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
683 .btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
683 .btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
684 .btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
684 .btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
685 .btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
685 .btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
686 .btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
686 .btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
687 .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
687 .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
688 .btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
688 .btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
689 .btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
689 .btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
690 .btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
690 .btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
691 .btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
691 .btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
692 .btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
692 .btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
693 .btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;}
693 .btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;}
694 .btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
694 .btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
695 .btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
695 .btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
696 .btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
696 .btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
697 .btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
697 .btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
698 .btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
698 .btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
699 .btn .caret{margin-top:8px;margin-left:0;}
699 .btn .caret{margin-top:8px;margin-left:0;}
700 .btn-large .caret{margin-top:6px;}
700 .btn-large .caret{margin-top:6px;}
701 .btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
701 .btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
702 .btn-mini .caret,.btn-small .caret{margin-top:8px;}
702 .btn-mini .caret,.btn-small .caret{margin-top:8px;}
703 .dropup .btn-large .caret{border-bottom-width:5px;}
703 .dropup .btn-large .caret{border-bottom-width:5px;}
704 .btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
704 .btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
705 .btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
705 .btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
706 .btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
706 .btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
707 .btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
707 .btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
708 .btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
708 .btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
709 .btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
709 .btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
710 .btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
710 .btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
711 .btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
711 .btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
712 .alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
712 .alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
713 .alert,.alert h4{color:#c09853;}
713 .alert,.alert h4{color:#c09853;}
714 .alert h4{margin:0;}
714 .alert h4{margin:0;}
715 .alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
715 .alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
716 .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
716 .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
717 .alert-success h4{color:#468847;}
717 .alert-success h4{color:#468847;}
718 .alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
718 .alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
719 .alert-danger h4,.alert-error h4{color:#b94a48;}
719 .alert-danger h4,.alert-error h4{color:#b94a48;}
720 .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
720 .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
721 .alert-info h4{color:#3a87ad;}
721 .alert-info h4{color:#3a87ad;}
722 .alert-block{padding-top:14px;padding-bottom:14px;}
722 .alert-block{padding-top:14px;padding-bottom:14px;}
723 .alert-block>p,.alert-block>ul{margin-bottom:0;}
723 .alert-block>p,.alert-block>ul{margin-bottom:0;}
724 .alert-block p+p{margin-top:5px;}
724 .alert-block p+p{margin-top:5px;}
725 .nav{margin-left:0;margin-bottom:20px;list-style:none;}
725 .nav{margin-left:0;margin-bottom:20px;list-style:none;}
726 .nav>li>a{display:block;}
726 .nav>li>a{display:block;}
727 .nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
727 .nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
728 .nav>li>a>img{max-width:none;}
728 .nav>li>a>img{max-width:none;}
729 .nav>.pull-right{float:right;}
729 .nav>.pull-right{float:right;}
730 .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
730 .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
731 .nav li+.nav-header{margin-top:9px;}
731 .nav li+.nav-header{margin-top:9px;}
732 .nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
732 .nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
733 .nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
733 .nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
734 .nav-list>li>a{padding:3px 15px;}
734 .nav-list>li>a{padding:3px 15px;}
735 .nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
735 .nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
736 .nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
736 .nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
737 .nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
737 .nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
738 .nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
738 .nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
739 .nav-tabs:after,.nav-pills:after{clear:both;}
739 .nav-tabs:after,.nav-pills:after{clear:both;}
740 .nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
740 .nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
741 .nav-tabs:after,.nav-pills:after{clear:both;}
741 .nav-tabs:after,.nav-pills:after{clear:both;}
742 .nav-tabs>li,.nav-pills>li{float:left;}
742 .nav-tabs>li,.nav-pills>li{float:left;}
743 .nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
743 .nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
744 .nav-tabs{border-bottom:1px solid #ddd;}
744 .nav-tabs{border-bottom:1px solid #ddd;}
745 .nav-tabs>li{margin-bottom:-1px;}
745 .nav-tabs>li{margin-bottom:-1px;}
746 .nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
746 .nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
747 .nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
747 .nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
748 .nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
748 .nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
749 .nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;}
749 .nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;}
750 .nav-stacked>li{float:none;}
750 .nav-stacked>li{float:none;}
751 .nav-stacked>li>a{margin-right:0;}
751 .nav-stacked>li>a{margin-right:0;}
752 .nav-tabs.nav-stacked{border-bottom:0;}
752 .nav-tabs.nav-stacked{border-bottom:0;}
753 .nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
753 .nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
754 .nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
754 .nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
755 .nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
755 .nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
756 .nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
756 .nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
757 .nav-pills.nav-stacked>li>a{margin-bottom:3px;}
757 .nav-pills.nav-stacked>li>a{margin-bottom:3px;}
758 .nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
758 .nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
759 .nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
759 .nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
760 .nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
760 .nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
761 .nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
761 .nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
762 .nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;}
762 .nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;}
763 .nav-tabs .dropdown-toggle .caret{margin-top:8px;}
763 .nav-tabs .dropdown-toggle .caret{margin-top:8px;}
764 .nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
764 .nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
765 .nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
765 .nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
766 .nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
766 .nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
767 .nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
767 .nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
768 .nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
768 .nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
769 .tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
769 .tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
770 .tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
770 .tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
771 .tabbable:after{clear:both;}
771 .tabbable:after{clear:both;}
772 .tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
772 .tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
773 .tabbable:after{clear:both;}
773 .tabbable:after{clear:both;}
774 .tab-content{overflow:auto;}
774 .tab-content{overflow:auto;}
775 .tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
775 .tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
776 .tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
776 .tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
777 .tab-content>.active,.pill-content>.active{display:block;}
777 .tab-content>.active,.pill-content>.active{display:block;}
778 .tabs-below>.nav-tabs{border-top:1px solid #ddd;}
778 .tabs-below>.nav-tabs{border-top:1px solid #ddd;}
779 .tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
779 .tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
780 .tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
780 .tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
781 .tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
781 .tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
782 .tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
782 .tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
783 .tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
783 .tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
784 .tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
784 .tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
785 .tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
785 .tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
786 .tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
786 .tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
787 .tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
787 .tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
788 .tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
788 .tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
789 .tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
789 .tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
790 .tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
790 .tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
791 .tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
791 .tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
792 .nav>.disabled>a{color:#999999;}
792 .nav>.disabled>a{color:#999999;}
793 .nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
793 .nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
794 .navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
794 .navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
795 .navbar-inner{min-height:36px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
795 .navbar-inner{min-height:36px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
796 .navbar-inner:after{clear:both;}
796 .navbar-inner:after{clear:both;}
797 .navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
797 .navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
798 .navbar-inner:after{clear:both;}
798 .navbar-inner:after{clear:both;}
799 .navbar .container{width:auto;}
799 .navbar .container{width:auto;}
800 .nav-collapse.collapse{height:auto;overflow:visible;}
800 .nav-collapse.collapse{height:auto;overflow:visible;}
801 .navbar .brand{float:left;display:block;padding:8px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
801 .navbar .brand{float:left;display:block;padding:8px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
802 .navbar-text{margin-bottom:0;line-height:36px;color:#777777;}
802 .navbar-text{margin-bottom:0;line-height:36px;color:#777777;}
803 .navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
803 .navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
804 .navbar .divider-vertical{height:36px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
804 .navbar .divider-vertical{height:36px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
805 .navbar .btn,.navbar .btn-group{margin-top:3px;}
805 .navbar .btn,.navbar .btn-group{margin-top:3px;}
806 .navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
806 .navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
807 .navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
807 .navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
808 .navbar-form:after{clear:both;}
808 .navbar-form:after{clear:both;}
809 .navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
809 .navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
810 .navbar-form:after{clear:both;}
810 .navbar-form:after{clear:both;}
811 .navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:3px;}
811 .navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:3px;}
812 .navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
812 .navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
813 .navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
813 .navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
814 .navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
814 .navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
815 .navbar-search{position:relative;float:left;margin-top:3px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
815 .navbar-search{position:relative;float:left;margin-top:3px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
816 .navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
816 .navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
817 .navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
817 .navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
818 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
818 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
819 .navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
819 .navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
820 .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
820 .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
821 .navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
821 .navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
822 .navbar-fixed-top{top:0;}
822 .navbar-fixed-top{top:0;}
823 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
823 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
824 .navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
824 .navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
825 .navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
825 .navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
826 .navbar .nav.pull-right{float:right;margin-right:0;}
826 .navbar .nav.pull-right{float:right;margin-right:0;}
827 .navbar .nav>li{float:left;}
827 .navbar .nav>li{float:left;}
828 .navbar .nav>li>a{float:none;padding:8px 15px 8px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
828 .navbar .nav>li>a{float:none;padding:8px 15px 8px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
829 .navbar .nav .dropdown-toggle .caret{margin-top:8px;}
829 .navbar .nav .dropdown-toggle .caret{margin-top:8px;}
830 .navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
830 .navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
831 .navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
831 .navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
832 .navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
832 .navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
833 .navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
833 .navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
834 .navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
834 .navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
835 .navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
835 .navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
836 .navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
836 .navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
837 .btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
837 .btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
838 .navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
838 .navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
839 .navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
839 .navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
840 .navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
840 .navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
841 .navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
841 .navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
842 .navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
842 .navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
843 .navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
843 .navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
844 .navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
844 .navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
845 .navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
845 .navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
846 .navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
846 .navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
847 .navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
847 .navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
848 .navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
848 .navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
849 .navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
849 .navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
850 .navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
850 .navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
851 .navbar-inverse .brand{color:#999999;}
851 .navbar-inverse .brand{color:#999999;}
852 .navbar-inverse .navbar-text{color:#999999;}
852 .navbar-inverse .navbar-text{color:#999999;}
853 .navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
853 .navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
854 .navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
854 .navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
855 .navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
855 .navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
856 .navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
856 .navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
857 .navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
857 .navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
858 .navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
858 .navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
859 .navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
859 .navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
860 .navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
860 .navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
861 .navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
861 .navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
862 .navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
862 .navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
863 .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
863 .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
864 .navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
864 .navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
865 .navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
865 .navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
866 .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
866 .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
867 .navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
867 .navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
868 .navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
868 .navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
869 .navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
869 .navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
870 .navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
870 .navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
871 .navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
871 .navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
872 .breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
872 .breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
873 .breadcrumb>.active{color:#999999;}
873 .breadcrumb>.active{color:#999999;}
874 .pagination{margin:20px 0;}
874 .pagination{margin:20px 0;}
875 .pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
875 .pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
876 .pagination ul>li{display:inline;}
876 .pagination ul>li{display:inline;}
877 .pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
877 .pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
878 .pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
878 .pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
879 .pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
879 .pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
880 .pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;}
880 .pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;}
881 .pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
881 .pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
882 .pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
882 .pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
883 .pagination-centered{text-align:center;}
883 .pagination-centered{text-align:center;}
884 .pagination-right{text-align:right;}
884 .pagination-right{text-align:right;}
885 .pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:16.25px;}
885 .pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:16.25px;}
886 .pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
886 .pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
887 .pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
887 .pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
888 .pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
888 .pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
889 .pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
889 .pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
890 .pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.049999999999999px;}
890 .pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.049999999999999px;}
891 .pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9.75px;}
891 .pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9.75px;}
892 .pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
892 .pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
893 .pager:after{clear:both;}
893 .pager:after{clear:both;}
894 .pager:before,.pager:after{display:table;content:"";line-height:0;}
894 .pager:before,.pager:after{display:table;content:"";line-height:0;}
895 .pager:after{clear:both;}
895 .pager:after{clear:both;}
896 .pager li{display:inline;}
896 .pager li{display:inline;}
897 .pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
897 .pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
898 .pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;}
898 .pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;}
899 .pager .next>a,.pager .next>span{float:right;}
899 .pager .next>a,.pager .next>span{float:right;}
900 .pager .previous>a,.pager .previous>span{float:left;}
900 .pager .previous>a,.pager .previous>span{float:left;}
901 .pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
901 .pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
902 .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
902 .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
903 .modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
903 .modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
904 .modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
904 .modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
905 .modal.fade.in{top:10%;}
905 .modal.fade.in{top:10%;}
906 .modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
906 .modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
907 .modal-header h3{margin:0;line-height:30px;}
907 .modal-header h3{margin:0;line-height:30px;}
908 .modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
908 .modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
909 .modal-form{margin-bottom:0;}
909 .modal-form{margin-bottom:0;}
910 .modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
910 .modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
911 .modal-footer:after{clear:both;}
911 .modal-footer:after{clear:both;}
912 .modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
912 .modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
913 .modal-footer:after{clear:both;}
913 .modal-footer:after{clear:both;}
914 .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
914 .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
915 .modal-footer .btn-group .btn+.btn{margin-left:-1px;}
915 .modal-footer .btn-group .btn+.btn{margin-left:-1px;}
916 .modal-footer .btn-block+.btn-block{margin-left:0;}
916 .modal-footer .btn-block+.btn-block{margin-left:0;}
917 .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
917 .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
918 .tooltip.top{margin-top:-3px;padding:5px 0;}
918 .tooltip.top{margin-top:-3px;padding:5px 0;}
919 .tooltip.right{margin-left:3px;padding:0 5px;}
919 .tooltip.right{margin-left:3px;padding:0 5px;}
920 .tooltip.bottom{margin-top:3px;padding:5px 0;}
920 .tooltip.bottom{margin-top:3px;padding:5px 0;}
921 .tooltip.left{margin-left:-3px;padding:0 5px;}
921 .tooltip.left{margin-left:-3px;padding:0 5px;}
922 .tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
922 .tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
923 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
923 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
924 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
924 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
925 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
925 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
926 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
926 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
927 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
927 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
928 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
928 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
929 .popover.right{margin-left:10px;}
929 .popover.right{margin-left:10px;}
930 .popover.bottom{margin-top:10px;}
930 .popover.bottom{margin-top:10px;}
931 .popover.left{margin-left:-10px;}
931 .popover.left{margin-left:-10px;}
932 .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
932 .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
933 .popover-content{padding:9px 14px;}
933 .popover-content{padding:9px 14px;}
934 .popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
934 .popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
935 .popover .arrow{border-width:11px;}
935 .popover .arrow{border-width:11px;}
936 .popover .arrow:after{border-width:10px;content:"";}
936 .popover .arrow:after{border-width:10px;content:"";}
937 .popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
937 .popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
938 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
938 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
939 .popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
939 .popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
940 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
940 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
941 .thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
941 .thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
942 .thumbnails:after{clear:both;}
942 .thumbnails:after{clear:both;}
943 .thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
943 .thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
944 .thumbnails:after{clear:both;}
944 .thumbnails:after{clear:both;}
945 .row-fluid .thumbnails{margin-left:0;}
945 .row-fluid .thumbnails{margin-left:0;}
946 .thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
946 .thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
947 .thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
947 .thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
948 a.thumbnail:hover,a.thumbnail:focus{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
948 a.thumbnail:hover,a.thumbnail:focus{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
949 .thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
949 .thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
950 .thumbnail .caption{padding:9px;color:#555555;}
950 .thumbnail .caption{padding:9px;color:#555555;}
951 .media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
951 .media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
952 .media,.media .media{margin-top:15px;}
952 .media,.media .media{margin-top:15px;}
953 .media:first-child{margin-top:0;}
953 .media:first-child{margin-top:0;}
954 .media-object{display:block;}
954 .media-object{display:block;}
955 .media-heading{margin:0 0 5px;}
955 .media-heading{margin:0 0 5px;}
956 .media>.pull-left{margin-right:10px;}
956 .media>.pull-left{margin-right:10px;}
957 .media>.pull-right{margin-left:10px;}
957 .media>.pull-right{margin-left:10px;}
958 .media-list{margin-left:0;list-style:none;}
958 .media-list{margin-left:0;list-style:none;}
959 .label,.badge{display:inline-block;padding:2px 4px;font-size:10.998px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
959 .label,.badge{display:inline-block;padding:2px 4px;font-size:10.998px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
960 .label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
960 .label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
961 .badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
961 .badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
962 .label:empty,.badge:empty{display:none;}
962 .label:empty,.badge:empty{display:none;}
963 a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
963 a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
964 .label-important,.badge-important{background-color:#b94a48;}
964 .label-important,.badge-important{background-color:#b94a48;}
965 .label-important[href],.badge-important[href]{background-color:#953b39;}
965 .label-important[href],.badge-important[href]{background-color:#953b39;}
966 .label-warning,.badge-warning{background-color:#f89406;}
966 .label-warning,.badge-warning{background-color:#f89406;}
967 .label-warning[href],.badge-warning[href]{background-color:#c67605;}
967 .label-warning[href],.badge-warning[href]{background-color:#c67605;}
968 .label-success,.badge-success{background-color:#468847;}
968 .label-success,.badge-success{background-color:#468847;}
969 .label-success[href],.badge-success[href]{background-color:#356635;}
969 .label-success[href],.badge-success[href]{background-color:#356635;}
970 .label-info,.badge-info{background-color:#3a87ad;}
970 .label-info,.badge-info{background-color:#3a87ad;}
971 .label-info[href],.badge-info[href]{background-color:#2d6987;}
971 .label-info[href],.badge-info[href]{background-color:#2d6987;}
972 .label-inverse,.badge-inverse{background-color:#333333;}
972 .label-inverse,.badge-inverse{background-color:#333333;}
973 .label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
973 .label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
974 .btn .label,.btn .badge{position:relative;top:-1px;}
974 .btn .label,.btn .badge{position:relative;top:-1px;}
975 .btn-mini .label,.btn-mini .badge{top:0;}
975 .btn-mini .label,.btn-mini .badge{top:0;}
976 @-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
976 @-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
977 .progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
977 .progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
978 .progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
978 .progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
979 .progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
979 .progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
980 .progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
980 .progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
981 .progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
981 .progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
982 .progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
982 .progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
983 .progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
983 .progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
984 .progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
984 .progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
985 .progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
985 .progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
986 .progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
986 .progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
987 .progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);}
987 .progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);}
988 .progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
988 .progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
989 .accordion{margin-bottom:20px;}
989 .accordion{margin-bottom:20px;}
990 .accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
990 .accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
991 .accordion-heading{border-bottom:0;}
991 .accordion-heading{border-bottom:0;}
992 .accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
992 .accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
993 .accordion-toggle{cursor:pointer;}
993 .accordion-toggle{cursor:pointer;}
994 .accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
994 .accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
995 .carousel{position:relative;margin-bottom:20px;line-height:1;}
995 .carousel{position:relative;margin-bottom:20px;line-height:1;}
996 .carousel-inner{overflow:hidden;width:100%;position:relative;}
996 .carousel-inner{overflow:hidden;width:100%;position:relative;}
997 .carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;}
997 .carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;}
998 .carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
998 .carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
999 .carousel-inner>.active{left:0;}
999 .carousel-inner>.active{left:0;}
1000 .carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
1000 .carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
1001 .carousel-inner>.next{left:100%;}
1001 .carousel-inner>.next{left:100%;}
1002 .carousel-inner>.prev{left:-100%;}
1002 .carousel-inner>.prev{left:-100%;}
1003 .carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
1003 .carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
1004 .carousel-inner>.active.left{left:-100%;}
1004 .carousel-inner>.active.left{left:-100%;}
1005 .carousel-inner>.active.right{left:100%;}
1005 .carousel-inner>.active.right{left:100%;}
1006 .carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
1006 .carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
1007 .carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
1007 .carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
1008 .carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255, 255, 255, 0.25);border-radius:5px;}
1008 .carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255, 255, 255, 0.25);border-radius:5px;}
1009 .carousel-indicators .active{background-color:#fff;}
1009 .carousel-indicators .active{background-color:#fff;}
1010 .carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);}
1010 .carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);}
1011 .carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;}
1011 .carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;}
1012 .carousel-caption h4{margin:0 0 5px;}
1012 .carousel-caption h4{margin:0 0 5px;}
1013 .carousel-caption p{margin-bottom:0;}
1013 .carousel-caption p{margin-bottom:0;}
1014 .hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
1014 .hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
1015 .hero-unit li{line-height:30px;}
1015 .hero-unit li{line-height:30px;}
1016 .pull-right{float:right;}
1016 .pull-right{float:right;}
1017 .pull-left{float:left;}
1017 .pull-left{float:left;}
1018 .hide{display:none;}
1018 .hide{display:none;}
1019 .show{display:block;}
1019 .show{display:block;}
1020 .invisible{visibility:hidden;}
1020 .invisible{visibility:hidden;}
1021 .affix{position:fixed;}
1021 .affix{position:fixed;}
1022 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
1022 .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
1023 .clearfix:after{clear:both;}
1023 .clearfix:after{clear:both;}
1024 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
1024 .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
1025 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
1025 .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
1026 @-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}
1026 @-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}
1027 .visible-phone{display:none !important;}
1027 .visible-phone{display:none !important;}
1028 .visible-tablet{display:none !important;}
1028 .visible-tablet{display:none !important;}
1029 .hidden-desktop{display:none !important;}
1029 .hidden-desktop{display:none !important;}
1030 .visible-desktop{display:inherit !important;}
1030 .visible-desktop{display:inherit !important;}
1031 @media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;}
1031 @media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;}
1032 @media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?v=3.1.0');src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.1.0') format('embedded-opentype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.woff?v=3.1.0') format('woff'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.ttf?v=3.1.0') format('truetype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.svg#fontawesomeregular?v=3.1.0') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
1032 @media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} .row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?v=3.1.0');src:url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.1.0') format('embedded-opentype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.woff?v=3.1.0') format('woff'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.ttf?v=3.1.0') format('truetype'),url('../components/font-awesome/build/assets/font-awesome/font/fontawesome-webfont.svg#fontawesomeregular?v=3.1.0') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
1033 [class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
1033 [class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
1034 .icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
1034 .icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
1035 a [class^="icon-"],a [class*=" icon-"],a [class^="icon-"]:before,a [class*=" icon-"]:before{display:inline;}
1035 a [class^="icon-"],a [class*=" icon-"],a [class^="icon-"]:before,a [class*=" icon-"]:before{display:inline;}
1036 [class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.2857142857142858em;text-align:center;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.5714285714285714em;}
1036 [class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.2857142857142858em;text-align:center;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.5714285714285714em;}
1037 ul.icons-ul{list-style-type:none;text-indent:-0.7142857142857143em;margin-left:2.142857142857143em;}ul.icons-ul>li .icon-li{width:0.7142857142857143em;display:inline-block;text-align:center;}
1037 ul.icons-ul{list-style-type:none;text-indent:-0.7142857142857143em;margin-left:2.142857142857143em;}ul.icons-ul>li .icon-li{width:0.7142857142857143em;display:inline-block;text-align:center;}
1038 [class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
1038 [class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
1039 .icon-muted{color:#eeeeee;}
1039 .icon-muted{color:#eeeeee;}
1040 .icon-light{color:#ffffff;}
1040 .icon-light{color:#ffffff;}
1041 .icon-dark{color:#333333;}
1041 .icon-dark{color:#333333;}
1042 .icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
1042 .icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
1043 .icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
1043 .icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
1044 .icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
1044 .icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
1045 .icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
1045 .icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
1046 .icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
1046 .icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
1047 .pull-right{float:right;}
1047 .pull-right{float:right;}
1048 .pull-left{float:left;}
1048 .pull-left{float:left;}
1049 [class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
1049 [class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
1050 [class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
1050 [class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
1051 [class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
1051 [class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
1052 .icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
1052 .icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
1053 .btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
1053 .btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
1054 .btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
1054 .btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
1055 .nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
1055 .nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
1056 .btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
1056 .btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
1057 .btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
1057 .btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
1058 .btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
1058 .btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
1059 .btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
1059 .btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
1060 .btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
1060 .btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
1061 .btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
1061 .btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
1062 .icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
1062 .icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
1063 .icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
1063 .icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
1064 .icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
1064 .icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
1065 @-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
1065 @-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
1066 .icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
1066 .icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
1067 .icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
1067 .icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
1068 .icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
1068 .icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
1069 .icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
1069 .icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
1070 .icon-glass:before{content:"\f000";}
1070 .icon-glass:before{content:"\f000";}
1071 .icon-music:before{content:"\f001";}
1071 .icon-music:before{content:"\f001";}
1072 .icon-search:before{content:"\f002";}
1072 .icon-search:before{content:"\f002";}
1073 .icon-envelope:before{content:"\f003";}
1073 .icon-envelope:before{content:"\f003";}
1074 .icon-heart:before{content:"\f004";}
1074 .icon-heart:before{content:"\f004";}
1075 .icon-star:before{content:"\f005";}
1075 .icon-star:before{content:"\f005";}
1076 .icon-star-empty:before{content:"\f006";}
1076 .icon-star-empty:before{content:"\f006";}
1077 .icon-user:before{content:"\f007";}
1077 .icon-user:before{content:"\f007";}
1078 .icon-film:before{content:"\f008";}
1078 .icon-film:before{content:"\f008";}
1079 .icon-th-large:before{content:"\f009";}
1079 .icon-th-large:before{content:"\f009";}
1080 .icon-th:before{content:"\f00a";}
1080 .icon-th:before{content:"\f00a";}
1081 .icon-th-list:before{content:"\f00b";}
1081 .icon-th-list:before{content:"\f00b";}
1082 .icon-ok:before{content:"\f00c";}
1082 .icon-ok:before{content:"\f00c";}
1083 .icon-remove:before{content:"\f00d";}
1083 .icon-remove:before{content:"\f00d";}
1084 .icon-zoom-in:before{content:"\f00e";}
1084 .icon-zoom-in:before{content:"\f00e";}
1085 .icon-zoom-out:before{content:"\f010";}
1085 .icon-zoom-out:before{content:"\f010";}
1086 .icon-off:before{content:"\f011";}
1086 .icon-off:before{content:"\f011";}
1087 .icon-signal:before{content:"\f012";}
1087 .icon-signal:before{content:"\f012";}
1088 .icon-cog:before{content:"\f013";}
1088 .icon-cog:before{content:"\f013";}
1089 .icon-trash:before{content:"\f014";}
1089 .icon-trash:before{content:"\f014";}
1090 .icon-home:before{content:"\f015";}
1090 .icon-home:before{content:"\f015";}
1091 .icon-file:before{content:"\f016";}
1091 .icon-file:before{content:"\f016";}
1092 .icon-time:before{content:"\f017";}
1092 .icon-time:before{content:"\f017";}
1093 .icon-road:before{content:"\f018";}
1093 .icon-road:before{content:"\f018";}
1094 .icon-download-alt:before{content:"\f019";}
1094 .icon-download-alt:before{content:"\f019";}
1095 .icon-download:before{content:"\f01a";}
1095 .icon-download:before{content:"\f01a";}
1096 .icon-upload:before{content:"\f01b";}
1096 .icon-upload:before{content:"\f01b";}
1097 .icon-inbox:before{content:"\f01c";}
1097 .icon-inbox:before{content:"\f01c";}
1098 .icon-play-circle:before{content:"\f01d";}
1098 .icon-play-circle:before{content:"\f01d";}
1099 .icon-repeat:before,.icon-rotate-right:before{content:"\f01e";}
1099 .icon-repeat:before,.icon-rotate-right:before{content:"\f01e";}
1100 .icon-refresh:before{content:"\f021";}
1100 .icon-refresh:before{content:"\f021";}
1101 .icon-list-alt:before{content:"\f022";}
1101 .icon-list-alt:before{content:"\f022";}
1102 .icon-lock:before{content:"\f023";}
1102 .icon-lock:before{content:"\f023";}
1103 .icon-flag:before{content:"\f024";}
1103 .icon-flag:before{content:"\f024";}
1104 .icon-headphones:before{content:"\f025";}
1104 .icon-headphones:before{content:"\f025";}
1105 .icon-volume-off:before{content:"\f026";}
1105 .icon-volume-off:before{content:"\f026";}
1106 .icon-volume-down:before{content:"\f027";}
1106 .icon-volume-down:before{content:"\f027";}
1107 .icon-volume-up:before{content:"\f028";}
1107 .icon-volume-up:before{content:"\f028";}
1108 .icon-qrcode:before{content:"\f029";}
1108 .icon-qrcode:before{content:"\f029";}
1109 .icon-barcode:before{content:"\f02a";}
1109 .icon-barcode:before{content:"\f02a";}
1110 .icon-tag:before{content:"\f02b";}
1110 .icon-tag:before{content:"\f02b";}
1111 .icon-tags:before{content:"\f02c";}
1111 .icon-tags:before{content:"\f02c";}
1112 .icon-book:before{content:"\f02d";}
1112 .icon-book:before{content:"\f02d";}
1113 .icon-bookmark:before{content:"\f02e";}
1113 .icon-bookmark:before{content:"\f02e";}
1114 .icon-print:before{content:"\f02f";}
1114 .icon-print:before{content:"\f02f";}
1115 .icon-camera:before{content:"\f030";}
1115 .icon-camera:before{content:"\f030";}
1116 .icon-font:before{content:"\f031";}
1116 .icon-font:before{content:"\f031";}
1117 .icon-bold:before{content:"\f032";}
1117 .icon-bold:before{content:"\f032";}
1118 .icon-italic:before{content:"\f033";}
1118 .icon-italic:before{content:"\f033";}
1119 .icon-text-height:before{content:"\f034";}
1119 .icon-text-height:before{content:"\f034";}
1120 .icon-text-width:before{content:"\f035";}
1120 .icon-text-width:before{content:"\f035";}
1121 .icon-align-left:before{content:"\f036";}
1121 .icon-align-left:before{content:"\f036";}
1122 .icon-align-center:before{content:"\f037";}
1122 .icon-align-center:before{content:"\f037";}
1123 .icon-align-right:before{content:"\f038";}
1123 .icon-align-right:before{content:"\f038";}
1124 .icon-align-justify:before{content:"\f039";}
1124 .icon-align-justify:before{content:"\f039";}
1125 .icon-list:before{content:"\f03a";}
1125 .icon-list:before{content:"\f03a";}
1126 .icon-indent-left:before{content:"\f03b";}
1126 .icon-indent-left:before{content:"\f03b";}
1127 .icon-indent-right:before{content:"\f03c";}
1127 .icon-indent-right:before{content:"\f03c";}
1128 .icon-facetime-video:before{content:"\f03d";}
1128 .icon-facetime-video:before{content:"\f03d";}
1129 .icon-picture:before{content:"\f03e";}
1129 .icon-picture:before{content:"\f03e";}
1130 .icon-pencil:before{content:"\f040";}
1130 .icon-pencil:before{content:"\f040";}
1131 .icon-map-marker:before{content:"\f041";}
1131 .icon-map-marker:before{content:"\f041";}
1132 .icon-adjust:before{content:"\f042";}
1132 .icon-adjust:before{content:"\f042";}
1133 .icon-tint:before{content:"\f043";}
1133 .icon-tint:before{content:"\f043";}
1134 .icon-edit:before{content:"\f044";}
1134 .icon-edit:before{content:"\f044";}
1135 .icon-share:before{content:"\f045";}
1135 .icon-share:before{content:"\f045";}
1136 .icon-check:before{content:"\f046";}
1136 .icon-check:before{content:"\f046";}
1137 .icon-move:before{content:"\f047";}
1137 .icon-move:before{content:"\f047";}
1138 .icon-step-backward:before{content:"\f048";}
1138 .icon-step-backward:before{content:"\f048";}
1139 .icon-fast-backward:before{content:"\f049";}
1139 .icon-fast-backward:before{content:"\f049";}
1140 .icon-backward:before{content:"\f04a";}
1140 .icon-backward:before{content:"\f04a";}
1141 .icon-play:before{content:"\f04b";}
1141 .icon-play:before{content:"\f04b";}
1142 .icon-pause:before{content:"\f04c";}
1142 .icon-pause:before{content:"\f04c";}
1143 .icon-stop:before{content:"\f04d";}
1143 .icon-stop:before{content:"\f04d";}
1144 .icon-forward:before{content:"\f04e";}
1144 .icon-forward:before{content:"\f04e";}
1145 .icon-fast-forward:before{content:"\f050";}
1145 .icon-fast-forward:before{content:"\f050";}
1146 .icon-step-forward:before{content:"\f051";}
1146 .icon-step-forward:before{content:"\f051";}
1147 .icon-eject:before{content:"\f052";}
1147 .icon-eject:before{content:"\f052";}
1148 .icon-chevron-left:before{content:"\f053";}
1148 .icon-chevron-left:before{content:"\f053";}
1149 .icon-chevron-right:before{content:"\f054";}
1149 .icon-chevron-right:before{content:"\f054";}
1150 .icon-plus-sign:before{content:"\f055";}
1150 .icon-plus-sign:before{content:"\f055";}
1151 .icon-minus-sign:before{content:"\f056";}
1151 .icon-minus-sign:before{content:"\f056";}
1152 .icon-remove-sign:before{content:"\f057";}
1152 .icon-remove-sign:before{content:"\f057";}
1153 .icon-ok-sign:before{content:"\f058";}
1153 .icon-ok-sign:before{content:"\f058";}
1154 .icon-question-sign:before{content:"\f059";}
1154 .icon-question-sign:before{content:"\f059";}
1155 .icon-info-sign:before{content:"\f05a";}
1155 .icon-info-sign:before{content:"\f05a";}
1156 .icon-screenshot:before{content:"\f05b";}
1156 .icon-screenshot:before{content:"\f05b";}
1157 .icon-remove-circle:before{content:"\f05c";}
1157 .icon-remove-circle:before{content:"\f05c";}
1158 .icon-ok-circle:before{content:"\f05d";}
1158 .icon-ok-circle:before{content:"\f05d";}
1159 .icon-ban-circle:before{content:"\f05e";}
1159 .icon-ban-circle:before{content:"\f05e";}
1160 .icon-arrow-left:before{content:"\f060";}
1160 .icon-arrow-left:before{content:"\f060";}
1161 .icon-arrow-right:before{content:"\f061";}
1161 .icon-arrow-right:before{content:"\f061";}
1162 .icon-arrow-up:before{content:"\f062";}
1162 .icon-arrow-up:before{content:"\f062";}
1163 .icon-arrow-down:before{content:"\f063";}
1163 .icon-arrow-down:before{content:"\f063";}
1164 .icon-share-alt:before,.icon-mail-forward:before{content:"\f064";}
1164 .icon-share-alt:before,.icon-mail-forward:before{content:"\f064";}
1165 .icon-resize-full:before{content:"\f065";}
1165 .icon-resize-full:before{content:"\f065";}
1166 .icon-resize-small:before{content:"\f066";}
1166 .icon-resize-small:before{content:"\f066";}
1167 .icon-plus:before{content:"\f067";}
1167 .icon-plus:before{content:"\f067";}
1168 .icon-minus:before{content:"\f068";}
1168 .icon-minus:before{content:"\f068";}
1169 .icon-asterisk:before{content:"\f069";}
1169 .icon-asterisk:before{content:"\f069";}
1170 .icon-exclamation-sign:before{content:"\f06a";}
1170 .icon-exclamation-sign:before{content:"\f06a";}
1171 .icon-gift:before{content:"\f06b";}
1171 .icon-gift:before{content:"\f06b";}
1172 .icon-leaf:before{content:"\f06c";}
1172 .icon-leaf:before{content:"\f06c";}
1173 .icon-fire:before{content:"\f06d";}
1173 .icon-fire:before{content:"\f06d";}
1174 .icon-eye-open:before{content:"\f06e";}
1174 .icon-eye-open:before{content:"\f06e";}
1175 .icon-eye-close:before{content:"\f070";}
1175 .icon-eye-close:before{content:"\f070";}
1176 .icon-warning-sign:before{content:"\f071";}
1176 .icon-warning-sign:before{content:"\f071";}
1177 .icon-plane:before{content:"\f072";}
1177 .icon-plane:before{content:"\f072";}
1178 .icon-calendar:before{content:"\f073";}
1178 .icon-calendar:before{content:"\f073";}
1179 .icon-random:before{content:"\f074";}
1179 .icon-random:before{content:"\f074";}
1180 .icon-comment:before{content:"\f075";}
1180 .icon-comment:before{content:"\f075";}
1181 .icon-magnet:before{content:"\f076";}
1181 .icon-magnet:before{content:"\f076";}
1182 .icon-chevron-up:before{content:"\f077";}
1182 .icon-chevron-up:before{content:"\f077";}
1183 .icon-chevron-down:before{content:"\f078";}
1183 .icon-chevron-down:before{content:"\f078";}
1184 .icon-retweet:before{content:"\f079";}
1184 .icon-retweet:before{content:"\f079";}
1185 .icon-shopping-cart:before{content:"\f07a";}
1185 .icon-shopping-cart:before{content:"\f07a";}
1186 .icon-folder-close:before{content:"\f07b";}
1186 .icon-folder-close:before{content:"\f07b";}
1187 .icon-folder-open:before{content:"\f07c";}
1187 .icon-folder-open:before{content:"\f07c";}
1188 .icon-resize-vertical:before{content:"\f07d";}
1188 .icon-resize-vertical:before{content:"\f07d";}
1189 .icon-resize-horizontal:before{content:"\f07e";}
1189 .icon-resize-horizontal:before{content:"\f07e";}
1190 .icon-bar-chart:before{content:"\f080";}
1190 .icon-bar-chart:before{content:"\f080";}
1191 .icon-twitter-sign:before{content:"\f081";}
1191 .icon-twitter-sign:before{content:"\f081";}
1192 .icon-facebook-sign:before{content:"\f082";}
1192 .icon-facebook-sign:before{content:"\f082";}
1193 .icon-camera-retro:before{content:"\f083";}
1193 .icon-camera-retro:before{content:"\f083";}
1194 .icon-key:before{content:"\f084";}
1194 .icon-key:before{content:"\f084";}
1195 .icon-cogs:before{content:"\f085";}
1195 .icon-cogs:before{content:"\f085";}
1196 .icon-comments:before{content:"\f086";}
1196 .icon-comments:before{content:"\f086";}
1197 .icon-thumbs-up:before{content:"\f087";}
1197 .icon-thumbs-up:before{content:"\f087";}
1198 .icon-thumbs-down:before{content:"\f088";}
1198 .icon-thumbs-down:before{content:"\f088";}
1199 .icon-star-half:before{content:"\f089";}
1199 .icon-star-half:before{content:"\f089";}
1200 .icon-heart-empty:before{content:"\f08a";}
1200 .icon-heart-empty:before{content:"\f08a";}
1201 .icon-signout:before{content:"\f08b";}
1201 .icon-signout:before{content:"\f08b";}
1202 .icon-linkedin-sign:before{content:"\f08c";}
1202 .icon-linkedin-sign:before{content:"\f08c";}
1203 .icon-pushpin:before{content:"\f08d";}
1203 .icon-pushpin:before{content:"\f08d";}
1204 .icon-external-link:before{content:"\f08e";}
1204 .icon-external-link:before{content:"\f08e";}
1205 .icon-signin:before{content:"\f090";}
1205 .icon-signin:before{content:"\f090";}
1206 .icon-trophy:before{content:"\f091";}
1206 .icon-trophy:before{content:"\f091";}
1207 .icon-github-sign:before{content:"\f092";}
1207 .icon-github-sign:before{content:"\f092";}
1208 .icon-upload-alt:before{content:"\f093";}
1208 .icon-upload-alt:before{content:"\f093";}
1209 .icon-lemon:before{content:"\f094";}
1209 .icon-lemon:before{content:"\f094";}
1210 .icon-phone:before{content:"\f095";}
1210 .icon-phone:before{content:"\f095";}
1211 .icon-check-empty:before{content:"\f096";}
1211 .icon-check-empty:before{content:"\f096";}
1212 .icon-bookmark-empty:before{content:"\f097";}
1212 .icon-bookmark-empty:before{content:"\f097";}
1213 .icon-phone-sign:before{content:"\f098";}
1213 .icon-phone-sign:before{content:"\f098";}
1214 .icon-twitter:before{content:"\f099";}
1214 .icon-twitter:before{content:"\f099";}
1215 .icon-facebook:before{content:"\f09a";}
1215 .icon-facebook:before{content:"\f09a";}
1216 .icon-github:before{content:"\f09b";}
1216 .icon-github:before{content:"\f09b";}
1217 .icon-unlock:before{content:"\f09c";}
1217 .icon-unlock:before{content:"\f09c";}
1218 .icon-credit-card:before{content:"\f09d";}
1218 .icon-credit-card:before{content:"\f09d";}
1219 .icon-rss:before{content:"\f09e";}
1219 .icon-rss:before{content:"\f09e";}
1220 .icon-hdd:before{content:"\f0a0";}
1220 .icon-hdd:before{content:"\f0a0";}
1221 .icon-bullhorn:before{content:"\f0a1";}
1221 .icon-bullhorn:before{content:"\f0a1";}
1222 .icon-bell:before{content:"\f0a2";}
1222 .icon-bell:before{content:"\f0a2";}
1223 .icon-certificate:before{content:"\f0a3";}
1223 .icon-certificate:before{content:"\f0a3";}
1224 .icon-hand-right:before{content:"\f0a4";}
1224 .icon-hand-right:before{content:"\f0a4";}
1225 .icon-hand-left:before{content:"\f0a5";}
1225 .icon-hand-left:before{content:"\f0a5";}
1226 .icon-hand-up:before{content:"\f0a6";}
1226 .icon-hand-up:before{content:"\f0a6";}
1227 .icon-hand-down:before{content:"\f0a7";}
1227 .icon-hand-down:before{content:"\f0a7";}
1228 .icon-circle-arrow-left:before{content:"\f0a8";}
1228 .icon-circle-arrow-left:before{content:"\f0a8";}
1229 .icon-circle-arrow-right:before{content:"\f0a9";}
1229 .icon-circle-arrow-right:before{content:"\f0a9";}
1230 .icon-circle-arrow-up:before{content:"\f0aa";}
1230 .icon-circle-arrow-up:before{content:"\f0aa";}
1231 .icon-circle-arrow-down:before{content:"\f0ab";}
1231 .icon-circle-arrow-down:before{content:"\f0ab";}
1232 .icon-globe:before{content:"\f0ac";}
1232 .icon-globe:before{content:"\f0ac";}
1233 .icon-wrench:before{content:"\f0ad";}
1233 .icon-wrench:before{content:"\f0ad";}
1234 .icon-tasks:before{content:"\f0ae";}
1234 .icon-tasks:before{content:"\f0ae";}
1235 .icon-filter:before{content:"\f0b0";}
1235 .icon-filter:before{content:"\f0b0";}
1236 .icon-briefcase:before{content:"\f0b1";}
1236 .icon-briefcase:before{content:"\f0b1";}
1237 .icon-fullscreen:before{content:"\f0b2";}
1237 .icon-fullscreen:before{content:"\f0b2";}
1238 .icon-group:before{content:"\f0c0";}
1238 .icon-group:before{content:"\f0c0";}
1239 .icon-link:before{content:"\f0c1";}
1239 .icon-link:before{content:"\f0c1";}
1240 .icon-cloud:before{content:"\f0c2";}
1240 .icon-cloud:before{content:"\f0c2";}
1241 .icon-beaker:before{content:"\f0c3";}
1241 .icon-beaker:before{content:"\f0c3";}
1242 .icon-cut:before{content:"\f0c4";}
1242 .icon-cut:before{content:"\f0c4";}
1243 .icon-copy:before{content:"\f0c5";}
1243 .icon-copy:before{content:"\f0c5";}
1244 .icon-paper-clip:before{content:"\f0c6";}
1244 .icon-paper-clip:before{content:"\f0c6";}
1245 .icon-save:before{content:"\f0c7";}
1245 .icon-save:before{content:"\f0c7";}
1246 .icon-sign-blank:before{content:"\f0c8";}
1246 .icon-sign-blank:before{content:"\f0c8";}
1247 .icon-reorder:before{content:"\f0c9";}
1247 .icon-reorder:before{content:"\f0c9";}
1248 .icon-list-ul:before{content:"\f0ca";}
1248 .icon-list-ul:before{content:"\f0ca";}
1249 .icon-list-ol:before{content:"\f0cb";}
1249 .icon-list-ol:before{content:"\f0cb";}
1250 .icon-strikethrough:before{content:"\f0cc";}
1250 .icon-strikethrough:before{content:"\f0cc";}
1251 .icon-underline:before{content:"\f0cd";}
1251 .icon-underline:before{content:"\f0cd";}
1252 .icon-table:before{content:"\f0ce";}
1252 .icon-table:before{content:"\f0ce";}
1253 .icon-magic:before{content:"\f0d0";}
1253 .icon-magic:before{content:"\f0d0";}
1254 .icon-truck:before{content:"\f0d1";}
1254 .icon-truck:before{content:"\f0d1";}
1255 .icon-pinterest:before{content:"\f0d2";}
1255 .icon-pinterest:before{content:"\f0d2";}
1256 .icon-pinterest-sign:before{content:"\f0d3";}
1256 .icon-pinterest-sign:before{content:"\f0d3";}
1257 .icon-google-plus-sign:before{content:"\f0d4";}
1257 .icon-google-plus-sign:before{content:"\f0d4";}
1258 .icon-google-plus:before{content:"\f0d5";}
1258 .icon-google-plus:before{content:"\f0d5";}
1259 .icon-money:before{content:"\f0d6";}
1259 .icon-money:before{content:"\f0d6";}
1260 .icon-caret-down:before{content:"\f0d7";}
1260 .icon-caret-down:before{content:"\f0d7";}
1261 .icon-caret-up:before{content:"\f0d8";}
1261 .icon-caret-up:before{content:"\f0d8";}
1262 .icon-caret-left:before{content:"\f0d9";}
1262 .icon-caret-left:before{content:"\f0d9";}
1263 .icon-caret-right:before{content:"\f0da";}
1263 .icon-caret-right:before{content:"\f0da";}
1264 .icon-columns:before{content:"\f0db";}
1264 .icon-columns:before{content:"\f0db";}
1265 .icon-sort:before{content:"\f0dc";}
1265 .icon-sort:before{content:"\f0dc";}
1266 .icon-sort-down:before{content:"\f0dd";}
1266 .icon-sort-down:before{content:"\f0dd";}
1267 .icon-sort-up:before{content:"\f0de";}
1267 .icon-sort-up:before{content:"\f0de";}
1268 .icon-envelope-alt:before{content:"\f0e0";}
1268 .icon-envelope-alt:before{content:"\f0e0";}
1269 .icon-linkedin:before{content:"\f0e1";}
1269 .icon-linkedin:before{content:"\f0e1";}
1270 .icon-undo:before,.icon-rotate-left:before{content:"\f0e2";}
1270 .icon-undo:before,.icon-rotate-left:before{content:"\f0e2";}
1271 .icon-legal:before{content:"\f0e3";}
1271 .icon-legal:before{content:"\f0e3";}
1272 .icon-dashboard:before{content:"\f0e4";}
1272 .icon-dashboard:before{content:"\f0e4";}
1273 .icon-comment-alt:before{content:"\f0e5";}
1273 .icon-comment-alt:before{content:"\f0e5";}
1274 .icon-comments-alt:before{content:"\f0e6";}
1274 .icon-comments-alt:before{content:"\f0e6";}
1275 .icon-bolt:before{content:"\f0e7";}
1275 .icon-bolt:before{content:"\f0e7";}
1276 .icon-sitemap:before{content:"\f0e8";}
1276 .icon-sitemap:before{content:"\f0e8";}
1277 .icon-umbrella:before{content:"\f0e9";}
1277 .icon-umbrella:before{content:"\f0e9";}
1278 .icon-paste:before{content:"\f0ea";}
1278 .icon-paste:before{content:"\f0ea";}
1279 .icon-lightbulb:before{content:"\f0eb";}
1279 .icon-lightbulb:before{content:"\f0eb";}
1280 .icon-exchange:before{content:"\f0ec";}
1280 .icon-exchange:before{content:"\f0ec";}
1281 .icon-cloud-download:before{content:"\f0ed";}
1281 .icon-cloud-download:before{content:"\f0ed";}
1282 .icon-cloud-upload:before{content:"\f0ee";}
1282 .icon-cloud-upload:before{content:"\f0ee";}
1283 .icon-user-md:before{content:"\f0f0";}
1283 .icon-user-md:before{content:"\f0f0";}
1284 .icon-stethoscope:before{content:"\f0f1";}
1284 .icon-stethoscope:before{content:"\f0f1";}
1285 .icon-suitcase:before{content:"\f0f2";}
1285 .icon-suitcase:before{content:"\f0f2";}
1286 .icon-bell-alt:before{content:"\f0f3";}
1286 .icon-bell-alt:before{content:"\f0f3";}
1287 .icon-coffee:before{content:"\f0f4";}
1287 .icon-coffee:before{content:"\f0f4";}
1288 .icon-food:before{content:"\f0f5";}
1288 .icon-food:before{content:"\f0f5";}
1289 .icon-file-alt:before{content:"\f0f6";}
1289 .icon-file-alt:before{content:"\f0f6";}
1290 .icon-building:before{content:"\f0f7";}
1290 .icon-building:before{content:"\f0f7";}
1291 .icon-hospital:before{content:"\f0f8";}
1291 .icon-hospital:before{content:"\f0f8";}
1292 .icon-ambulance:before{content:"\f0f9";}
1292 .icon-ambulance:before{content:"\f0f9";}
1293 .icon-medkit:before{content:"\f0fa";}
1293 .icon-medkit:before{content:"\f0fa";}
1294 .icon-fighter-jet:before{content:"\f0fb";}
1294 .icon-fighter-jet:before{content:"\f0fb";}
1295 .icon-beer:before{content:"\f0fc";}
1295 .icon-beer:before{content:"\f0fc";}
1296 .icon-h-sign:before{content:"\f0fd";}
1296 .icon-h-sign:before{content:"\f0fd";}
1297 .icon-plus-sign-alt:before{content:"\f0fe";}
1297 .icon-plus-sign-alt:before{content:"\f0fe";}
1298 .icon-double-angle-left:before{content:"\f100";}
1298 .icon-double-angle-left:before{content:"\f100";}
1299 .icon-double-angle-right:before{content:"\f101";}
1299 .icon-double-angle-right:before{content:"\f101";}
1300 .icon-double-angle-up:before{content:"\f102";}
1300 .icon-double-angle-up:before{content:"\f102";}
1301 .icon-double-angle-down:before{content:"\f103";}
1301 .icon-double-angle-down:before{content:"\f103";}
1302 .icon-angle-left:before{content:"\f104";}
1302 .icon-angle-left:before{content:"\f104";}
1303 .icon-angle-right:before{content:"\f105";}
1303 .icon-angle-right:before{content:"\f105";}
1304 .icon-angle-up:before{content:"\f106";}
1304 .icon-angle-up:before{content:"\f106";}
1305 .icon-angle-down:before{content:"\f107";}
1305 .icon-angle-down:before{content:"\f107";}
1306 .icon-desktop:before{content:"\f108";}
1306 .icon-desktop:before{content:"\f108";}
1307 .icon-laptop:before{content:"\f109";}
1307 .icon-laptop:before{content:"\f109";}
1308 .icon-tablet:before{content:"\f10a";}
1308 .icon-tablet:before{content:"\f10a";}
1309 .icon-mobile-phone:before{content:"\f10b";}
1309 .icon-mobile-phone:before{content:"\f10b";}
1310 .icon-circle-blank:before{content:"\f10c";}
1310 .icon-circle-blank:before{content:"\f10c";}
1311 .icon-quote-left:before{content:"\f10d";}
1311 .icon-quote-left:before{content:"\f10d";}
1312 .icon-quote-right:before{content:"\f10e";}
1312 .icon-quote-right:before{content:"\f10e";}
1313 .icon-spinner:before{content:"\f110";}
1313 .icon-spinner:before{content:"\f110";}
1314 .icon-circle:before{content:"\f111";}
1314 .icon-circle:before{content:"\f111";}
1315 .icon-reply:before,.icon-mail-reply:before{content:"\f112";}
1315 .icon-reply:before,.icon-mail-reply:before{content:"\f112";}
1316 .icon-folder-close-alt:before{content:"\f114";}
1316 .icon-folder-close-alt:before{content:"\f114";}
1317 .icon-folder-open-alt:before{content:"\f115";}
1317 .icon-folder-open-alt:before{content:"\f115";}
1318 .icon-expand-alt:before{content:"\f116";}
1318 .icon-expand-alt:before{content:"\f116";}
1319 .icon-collapse-alt:before{content:"\f117";}
1319 .icon-collapse-alt:before{content:"\f117";}
1320 .icon-smile:before{content:"\f118";}
1320 .icon-smile:before{content:"\f118";}
1321 .icon-frown:before{content:"\f119";}
1321 .icon-frown:before{content:"\f119";}
1322 .icon-meh:before{content:"\f11a";}
1322 .icon-meh:before{content:"\f11a";}
1323 .icon-gamepad:before{content:"\f11b";}
1323 .icon-gamepad:before{content:"\f11b";}
1324 .icon-keyboard:before{content:"\f11c";}
1324 .icon-keyboard:before{content:"\f11c";}
1325 .icon-flag-alt:before{content:"\f11d";}
1325 .icon-flag-alt:before{content:"\f11d";}
1326 .icon-flag-checkered:before{content:"\f11e";}
1326 .icon-flag-checkered:before{content:"\f11e";}
1327 .icon-terminal:before{content:"\f120";}
1327 .icon-terminal:before{content:"\f120";}
1328 .icon-code:before{content:"\f121";}
1328 .icon-code:before{content:"\f121";}
1329 .icon-reply-all:before{content:"\f122";}
1329 .icon-reply-all:before{content:"\f122";}
1330 .icon-mail-reply-all:before{content:"\f122";}
1330 .icon-mail-reply-all:before{content:"\f122";}
1331 .icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
1331 .icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
1332 .icon-location-arrow:before{content:"\f124";}
1332 .icon-location-arrow:before{content:"\f124";}
1333 .icon-crop:before{content:"\f125";}
1333 .icon-crop:before{content:"\f125";}
1334 .icon-code-fork:before{content:"\f126";}
1334 .icon-code-fork:before{content:"\f126";}
1335 .icon-unlink:before{content:"\f127";}
1335 .icon-unlink:before{content:"\f127";}
1336 .icon-question:before{content:"\f128";}
1336 .icon-question:before{content:"\f128";}
1337 .icon-info:before{content:"\f129";}
1337 .icon-info:before{content:"\f129";}
1338 .icon-exclamation:before{content:"\f12a";}
1338 .icon-exclamation:before{content:"\f12a";}
1339 .icon-superscript:before{content:"\f12b";}
1339 .icon-superscript:before{content:"\f12b";}
1340 .icon-subscript:before{content:"\f12c";}
1340 .icon-subscript:before{content:"\f12c";}
1341 .icon-eraser:before{content:"\f12d";}
1341 .icon-eraser:before{content:"\f12d";}
1342 .icon-puzzle-piece:before{content:"\f12e";}
1342 .icon-puzzle-piece:before{content:"\f12e";}
1343 .icon-microphone:before{content:"\f130";}
1343 .icon-microphone:before{content:"\f130";}
1344 .icon-microphone-off:before{content:"\f131";}
1344 .icon-microphone-off:before{content:"\f131";}
1345 .icon-shield:before{content:"\f132";}
1345 .icon-shield:before{content:"\f132";}
1346 .icon-calendar-empty:before{content:"\f133";}
1346 .icon-calendar-empty:before{content:"\f133";}
1347 .icon-fire-extinguisher:before{content:"\f134";}
1347 .icon-fire-extinguisher:before{content:"\f134";}
1348 .icon-rocket:before{content:"\f135";}
1348 .icon-rocket:before{content:"\f135";}
1349 .icon-maxcdn:before{content:"\f136";}
1349 .icon-maxcdn:before{content:"\f136";}
1350 .icon-chevron-sign-left:before{content:"\f137";}
1350 .icon-chevron-sign-left:before{content:"\f137";}
1351 .icon-chevron-sign-right:before{content:"\f138";}
1351 .icon-chevron-sign-right:before{content:"\f138";}
1352 .icon-chevron-sign-up:before{content:"\f139";}
1352 .icon-chevron-sign-up:before{content:"\f139";}
1353 .icon-chevron-sign-down:before{content:"\f13a";}
1353 .icon-chevron-sign-down:before{content:"\f13a";}
1354 .icon-html5:before{content:"\f13b";}
1354 .icon-html5:before{content:"\f13b";}
1355 .icon-css3:before{content:"\f13c";}
1355 .icon-css3:before{content:"\f13c";}
1356 .icon-anchor:before{content:"\f13d";}
1356 .icon-anchor:before{content:"\f13d";}
1357 .icon-unlock-alt:before{content:"\f13e";}
1357 .icon-unlock-alt:before{content:"\f13e";}
1358 .icon-bullseye:before{content:"\f140";}
1358 .icon-bullseye:before{content:"\f140";}
1359 .icon-ellipsis-horizontal:before{content:"\f141";}
1359 .icon-ellipsis-horizontal:before{content:"\f141";}
1360 .icon-ellipsis-vertical:before{content:"\f142";}
1360 .icon-ellipsis-vertical:before{content:"\f142";}
1361 .icon-rss-sign:before{content:"\f143";}
1361 .icon-rss-sign:before{content:"\f143";}
1362 .icon-play-sign:before{content:"\f144";}
1362 .icon-play-sign:before{content:"\f144";}
1363 .icon-ticket:before{content:"\f145";}
1363 .icon-ticket:before{content:"\f145";}
1364 .icon-minus-sign-alt:before{content:"\f146";}
1364 .icon-minus-sign-alt:before{content:"\f146";}
1365 .icon-check-minus:before{content:"\f147";}
1365 .icon-check-minus:before{content:"\f147";}
1366 .icon-level-up:before{content:"\f148";}
1366 .icon-level-up:before{content:"\f148";}
1367 .icon-level-down:before{content:"\f149";}
1367 .icon-level-down:before{content:"\f149";}
1368 .icon-check-sign:before{content:"\f14a";}
1368 .icon-check-sign:before{content:"\f14a";}
1369 .icon-edit-sign:before{content:"\f14b";}
1369 .icon-edit-sign:before{content:"\f14b";}
1370 .icon-external-link-sign:before{content:"\f14c";}
1370 .icon-external-link-sign:before{content:"\f14c";}
1371 .icon-share-sign:before{content:"\f14d";}
1371 .icon-share-sign:before{content:"\f14d";}
1372 .border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
1372 .border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}
1373 .corner-all{border-radius:4px;}
1373 .corner-all{border-radius:4px;}
1374 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1374 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1375 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1375 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1376 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1376 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1377 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1377 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1378 .reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
1378 .reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
1379 .box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1379 .box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;}
1380 .box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1380 .box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1381 .box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1381 .box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1382 .box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;}
1382 .box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;}
1383 .box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1;}
1383 .box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1;}
1384 .box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2;}
1384 .box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2;}
1385 .start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}
1385 .start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}
1386 .end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;}
1386 .end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;}
1387 .center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;}
1387 .center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;}
1388 div.error{margin:2em;text-align:center;}
1389 div.error>h1{font-size:500%;line-height:normal;}
1390 div.error>p{font-size:200%;line-height:normal;}
1391 div.traceback-wrapper{text-align:left;max-width:800px;margin:auto;}
1388 body{background-color:white;position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:visible;}
1392 body{background-color:white;position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:visible;}
1389 div#header{display:none;}
1393 div#header{display:none;}
1390 #ipython_notebook{padding-left:16px;}
1394 #ipython_notebook{padding-left:16px;}
1391 #noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:bold;}
1395 #noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:bold;}
1392 #ipython_notebook img{font-family:Verdana,"Helvetica Neue",Arial,Helvetica,Geneva,sans-serif;height:24px;text-decoration:none;color:black;}
1396 #ipython_notebook img{font-family:Verdana,"Helvetica Neue",Arial,Helvetica,Geneva,sans-serif;height:24px;text-decoration:none;color:black;}
1393 #site{width:100%;display:none;}
1397 #site{width:100%;display:none;}
1394 .ui-button .ui-button-text{padding:0.2em 0.8em;font-size:77%;}
1398 .ui-button .ui-button-text{padding:0.2em 0.8em;font-size:77%;}
1395 input.ui-button{padding:0.3em 0.9em;}
1399 input.ui-button{padding:0.3em 0.9em;}
1396 .navbar span{margin-top:3px;}
1400 .navbar span{margin-top:3px;}
1397 span#login_widget{float:right;}
1401 span#login_widget{float:right;}
1398 .nav-header{text-transform:none;}
1402 .nav-header{text-transform:none;}
1399 .navbar-nobg{background-color:transparent;background-image:none;}
1403 .navbar-nobg{background-color:transparent;background-image:none;}
1400 #header>span{margin-top:10px;}
1404 #header>span{margin-top:10px;}
1401 .modal-body{max-height:500px;}
1405 .modal-body{max-height:500px;}
1402 .center-nav{display:inline-block;margin-bottom:-4px;}
1406 .center-nav{display:inline-block;margin-bottom:-4px;}
1403 .alternate_upload{background-color:none;display:inline;}
1407 .alternate_upload{background-color:none;display:inline;}
1404 .alternate_upload.form{padding:0;margin:0;}
1408 .alternate_upload.form{padding:0;margin:0;}
1405 .alternate_upload input.fileinput{background-color:red;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;}
1409 .alternate_upload input.fileinput{background-color:red;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;}
1406 .list_toolbar{padding:5px;height:25px;line-height:25px;}
1410 .list_toolbar{padding:5px;height:25px;line-height:25px;}
1407 .toolbar_info{float:left;}
1411 .toolbar_info{float:left;}
1408 .toolbar_buttons{float:right;}
1412 .toolbar_buttons{float:right;}
1409 .list_header{font-weight:bold;}
1413 .list_header{font-weight:bold;}
1410 .list_container{margin-top:16px;margin-bottom:16px;border:1px solid #ababab;border-radius:4px;}
1414 .list_container{margin-top:16px;margin-bottom:16px;border:1px solid #ababab;border-radius:4px;}
1411 .list_container>div{border-bottom:1px solid #ababab;}.list_container>div:hover .list-item{background-color:red;}
1415 .list_container>div{border-bottom:1px solid #ababab;}.list_container>div:hover .list-item{background-color:red;}
1412 .list_container>div:last-child{border:none;}
1416 .list_container>div:last-child{border:none;}
1413 .list_item:hover .list_item{background-color:#ddd;}
1417 .list_item:hover .list_item{background-color:#ddd;}
1414 .item_name{line-height:24px;}
1418 .item_name{line-height:24px;}
1415 .list_container>div>span,.list_container>div>div{padding:8px;}
1419 .list_container>div>span,.list_container>div>div{padding:8px;}
1416 .list_item a{text-decoration:none;}
1420 .list_item a{text-decoration:none;}
1417 input.nbname_input{height:15px;}
1421 input.nbname_input{height:15px;}
1418 .highlight_text{color:blue;}
1422 .highlight_text{color:blue;}
1419 #project_name>.breadcrumb{padding:0px;margin-bottom:0px;background-color:transparent;font-weight:bold;}
1423 #project_name>.breadcrumb{padding:0px;margin-bottom:0px;background-color:transparent;font-weight:bold;}
1420 input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-bottom:0;width:60px;}
1424 input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-bottom:0;width:60px;}
1421 .ansibold{font-weight:bold;}
1425 .ansibold{font-weight:bold;}
1422 .ansiblack{color:black;}
1426 .ansiblack{color:black;}
1423 .ansired{color:darkred;}
1427 .ansired{color:darkred;}
1424 .ansigreen{color:darkgreen;}
1428 .ansigreen{color:darkgreen;}
1425 .ansiyellow{color:brown;}
1429 .ansiyellow{color:brown;}
1426 .ansiblue{color:darkblue;}
1430 .ansiblue{color:darkblue;}
1427 .ansipurple{color:darkviolet;}
1431 .ansipurple{color:darkviolet;}
1428 .ansicyan{color:steelblue;}
1432 .ansicyan{color:steelblue;}
1429 .ansigray{color:gray;}
1433 .ansigray{color:gray;}
1430 .ansibgblack{background-color:black;}
1434 .ansibgblack{background-color:black;}
1431 .ansibgred{background-color:red;}
1435 .ansibgred{background-color:red;}
1432 .ansibggreen{background-color:green;}
1436 .ansibggreen{background-color:green;}
1433 .ansibgyellow{background-color:yellow;}
1437 .ansibgyellow{background-color:yellow;}
1434 .ansibgblue{background-color:blue;}
1438 .ansibgblue{background-color:blue;}
1435 .ansibgpurple{background-color:magenta;}
1439 .ansibgpurple{background-color:magenta;}
1436 .ansibgcyan{background-color:cyan;}
1440 .ansibgcyan{background-color:cyan;}
1437 .ansibggray{background-color:gray;}
1441 .ansibggray{background-color:gray;}
1438 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
1442 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
1439 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
1443 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
1440 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1444 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1441 div.prompt:empty{padding-top:0;padding-bottom:0;}
1445 div.prompt:empty{padding-top:0;padding-bottom:0;}
1442 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1446 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1443 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
1447 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
1444 div.input_prompt{color:navy;border-top:1px solid transparent;}
1448 div.input_prompt{color:navy;border-top:1px solid transparent;}
1445 .CodeMirror{line-height:1.231em;height:auto;background:none;}
1449 .CodeMirror{line-height:1.231em;height:auto;background:none;}
1446 .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto;}
1450 .CodeMirror-scroll{overflow-y:hidden;overflow-x:auto;}
1447 @-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden;}}.CodeMirror-lines{padding:0.4em;}
1451 @-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden;}}.CodeMirror-lines{padding:0.4em;}
1448 .CodeMirror-linenumber{padding:0 8px 0 4px;}
1452 .CodeMirror-linenumber{padding:0 8px 0 4px;}
1449 .CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px;}
1453 .CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px;}
1450 .CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
1454 .CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
1451 pre code{display:block;padding:0.5em;}
1455 pre code{display:block;padding:0.5em;}
1452 .highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black;}
1456 .highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black;}
1453 .highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#BA2121;}
1457 .highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#BA2121;}
1454 .highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic;}
1458 .highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic;}
1455 .highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080;}
1459 .highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080;}
1456 pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#8888ff;}
1460 pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#8888ff;}
1457 .highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold;}
1461 .highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold;}
1458 .highlight-builtin,pre .built_in{color:#008000;}
1462 .highlight-builtin,pre .built_in{color:#008000;}
1459 pre .markdown .emphasis{font-style:italic;}
1463 pre .markdown .emphasis{font-style:italic;}
1460 pre .nginx .built_in{font-weight:normal;}
1464 pre .nginx .built_in{font-weight:normal;}
1461 pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:0.5;}
1465 pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:0.5;}
1462 .cm-s-ipython span.cm-variable{color:black;}
1466 .cm-s-ipython span.cm-variable{color:black;}
1463 .cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold;}
1467 .cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold;}
1464 .cm-s-ipython span.cm-number{color:#080;}
1468 .cm-s-ipython span.cm-number{color:#080;}
1465 .cm-s-ipython span.cm-comment{color:#408080;font-style:italic;}
1469 .cm-s-ipython span.cm-comment{color:#408080;font-style:italic;}
1466 .cm-s-ipython span.cm-string{color:#BA2121;}
1470 .cm-s-ipython span.cm-string{color:#BA2121;}
1467 .cm-s-ipython span.cm-builtin{color:#008000;}
1471 .cm-s-ipython span.cm-builtin{color:#008000;}
1468 .cm-s-ipython span.cm-error{color:#f00;}
1472 .cm-s-ipython span.cm-error{color:#f00;}
1469 .cm-s-ipython span.cm-operator{color:#AA22FF;font-weight:bold;}
1473 .cm-s-ipython span.cm-operator{color:#AA22FF;font-weight:bold;}
1470 .cm-s-ipython span.cm-meta{color:#AA22FF;}
1474 .cm-s-ipython span.cm-meta{color:#AA22FF;}
1471 .cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat;}
1475 .cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat;}
1472 div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1476 div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1473 div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
1477 div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);-moz-box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);box-shadow:inset 0 2px 8px rgba(0, 0, 0, 0.8);}
1474 div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1478 div.output_collapsed{margin:0px;padding:0px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1475 div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
1479 div.out_prompt_overlay{height:100%;padding:0px 0.4em;position:absolute;border-radius:4px;}
1476 div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
1480 div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000000;-moz-box-shadow:inset 0 0 1px #000000;box-shadow:inset 0 0 1px #000000;background:rgba(240, 240, 240, 0.5);}
1477 div.output_prompt{color:darkred;}
1481 div.output_prompt{color:darkred;}
1478 div.output_area{padding:0px;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}div.output_area .MathJax_Display{text-align:left !important;}
1482 div.output_area{padding:0px;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}div.output_area .MathJax_Display{text-align:left !important;}
1479 div.output_area .rendered_html table{margin-left:0;margin-right:0;}
1483 div.output_area .rendered_html table{margin-left:0;margin-right:0;}
1480 div.output_area .rendered_html img{margin-left:0;margin-right:0;}
1484 div.output_area .rendered_html img{margin-left:0;margin-right:0;}
1481 .output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1485 .output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;}
1482 div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:black;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit;}
1486 div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:black;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit;}
1483 div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1487 div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1484 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
1488 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
1485 div.output_stderr{background:#fdd;}
1489 div.output_stderr{background:#fdd;}
1486 div.output_latex{text-align:left;}
1490 div.output_latex{text-align:left;}
1487 div.output_javascript:empty{padding:0;}
1491 div.output_javascript:empty{padding:0;}
1488 .js-error{color:darkred;}
1492 .js-error{color:darkred;}
1489 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
1493 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
1490 span.input_prompt{font-family:inherit;}
1494 span.input_prompt{font-family:inherit;}
1491 input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0px 0px 1px;padding-left:1px;padding-top:2px;height:1em;}
1495 input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0px 0px 1px;padding-left:1px;padding-top:2px;height:1em;}
1492 p.p-space{margin-bottom:10px;}
1496 p.p-space{margin-bottom:10px;}
1493 .rendered_html{color:black;}.rendered_html em{font-style:italic;}
1497 .rendered_html{color:black;}.rendered_html em{font-style:italic;}
1494 .rendered_html strong{font-weight:bold;}
1498 .rendered_html strong{font-weight:bold;}
1495 .rendered_html u{text-decoration:underline;}
1499 .rendered_html u{text-decoration:underline;}
1496 .rendered_html :link{text-decoration:underline;}
1500 .rendered_html :link{text-decoration:underline;}
1497 .rendered_html :visited{text-decoration:underline;}
1501 .rendered_html :visited{text-decoration:underline;}
1498 .rendered_html h1{font-size:197%;margin:.65em 0;font-weight:bold;}
1502 .rendered_html h1{font-size:197%;margin:.65em 0;font-weight:bold;}
1499 .rendered_html h2{font-size:153.9%;margin:.75em 0;font-weight:bold;}
1503 .rendered_html h2{font-size:153.9%;margin:.75em 0;font-weight:bold;}
1500 .rendered_html h3{font-size:123.1%;margin:.85em 0;font-weight:bold;}
1504 .rendered_html h3{font-size:123.1%;margin:.85em 0;font-weight:bold;}
1501 .rendered_html h4{font-size:100%;margin:0.95em 0;font-weight:bold;}
1505 .rendered_html h4{font-size:100%;margin:0.95em 0;font-weight:bold;}
1502 .rendered_html h5{font-size:85%;margin:1.5em 0;font-weight:bold;}
1506 .rendered_html h5{font-size:85%;margin:1.5em 0;font-weight:bold;}
1503 .rendered_html h6{font-size:77%;margin:1.65em 0;font-weight:bold;}
1507 .rendered_html h6{font-size:77%;margin:1.65em 0;font-weight:bold;}
1504 .rendered_html ul{list-style:disc;margin:1em 2em;}
1508 .rendered_html ul{list-style:disc;margin:1em 2em;}
1505 .rendered_html ul ul{list-style:square;margin:0em 2em;}
1509 .rendered_html ul ul{list-style:square;margin:0em 2em;}
1506 .rendered_html ul ul ul{list-style:circle;margin:0em 2em;}
1510 .rendered_html ul ul ul{list-style:circle;margin:0em 2em;}
1507 .rendered_html ol{list-style:decimal;margin:1em 2em;}
1511 .rendered_html ol{list-style:decimal;margin:1em 2em;}
1508 .rendered_html ol ol{list-style:upper-alpha;margin:0em 2em;}
1512 .rendered_html ol ol{list-style:upper-alpha;margin:0em 2em;}
1509 .rendered_html ol ol ol{list-style:lower-alpha;margin:0em 2em;}
1513 .rendered_html ol ol ol{list-style:lower-alpha;margin:0em 2em;}
1510 .rendered_html ol ol ol ol{list-style:lower-roman;margin:0em 2em;}
1514 .rendered_html ol ol ol ol{list-style:lower-roman;margin:0em 2em;}
1511 .rendered_html ol ol ol ol ol{list-style:decimal;margin:0em 2em;}
1515 .rendered_html ol ol ol ol ol{list-style:decimal;margin:0em 2em;}
1512 .rendered_html hr{color:black;background-color:black;}
1516 .rendered_html hr{color:black;background-color:black;}
1513 .rendered_html pre{margin:1em 2em;}
1517 .rendered_html pre{margin:1em 2em;}
1514 .rendered_html pre,.rendered_html code{border:0;background-color:#ffffff;color:#000000;font-size:100%;padding:0px;}
1518 .rendered_html pre,.rendered_html code{border:0;background-color:#ffffff;color:#000000;font-size:100%;padding:0px;}
1515 .rendered_html blockquote{margin:1em 2em;}
1519 .rendered_html blockquote{margin:1em 2em;}
1516 .rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse;}
1520 .rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse;}
1517 .rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em;}
1521 .rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em;}
1518 .rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px;}
1522 .rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px;}
1519 .rendered_html th{font-weight:bold;}
1523 .rendered_html th{font-weight:bold;}
1520 .rendered_html p{text-align:justify;}
1524 .rendered_html p{text-align:justify;}
1521 .rendered_html img{display:block;margin-left:auto;margin-right:auto;}
1525 .rendered_html img{display:block;margin-left:auto;margin-right:auto;}
1522 .rendered_html *+p{margin-top:1em;}
1526 .rendered_html *+p{margin-top:1em;}
1523 .rendered_html *+table{margin-top:1em;}
1527 .rendered_html *+table{margin-top:1em;}
1524 .rendered_html *+img{margin-top:1em;}
1528 .rendered_html *+img{margin-top:1em;}
1525 div.text_cell{padding:5px 5px 5px 0px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1529 div.text_cell{padding:5px 5px 5px 0px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1526 div.text_cell_input{color:#000000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
1530 div.text_cell_input{color:#000000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
1527 div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:5px;color:#000000;}
1531 div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:5px;color:#000000;}
1528 a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
1532 a.anchor-link:link{text-decoration:none;padding:0px 20px;visibility:hidden;}
1529 h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
1533 h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible;}
1530 body{background-color:#ffffff;}
1534 body{background-color:#ffffff;}
1531 body.notebook_app{overflow:hidden;}
1535 body.notebook_app{overflow:hidden;}
1532 span#notebook_name{height:1em;line-height:1em;padding:3px;border:none;font-size:146.5%;}
1536 span#notebook_name{height:1em;line-height:1em;padding:3px;border:none;font-size:146.5%;}
1533 div#notebook_panel{margin:0px 0px 0px 0px;padding:0px;-webkit-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);}
1537 div#notebook_panel{margin:0px 0px 0px 0px;padding:0px;-webkit-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);box-shadow:0 -1px 10px rgba(0, 0, 0, 0.1);}
1534 div#notebook{overflow-y:scroll;overflow-x:auto;width:100%;padding:5px 5px 15px 5px;margin:0px;border-top:1px solid #ababab;}
1538 div#notebook{overflow-y:scroll;overflow-x:auto;width:100%;padding:5px 5px 15px 5px;margin:0px;border-top:1px solid #ababab;}
1535 div.ui-widget-content{border:1px solid #ababab;outline:none;}
1539 div.ui-widget-content{border:1px solid #ababab;outline:none;}
1536 pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:4px;padding:0.4em;padding-left:2em;}
1540 pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:4px;padding:0.4em;padding-left:2em;}
1537 p.dialog{padding:0.2em;}
1541 p.dialog{padding:0.2em;}
1538 pre,code,kbd,samp{white-space:pre-wrap;}
1542 pre,code,kbd,samp{white-space:pre-wrap;}
1539 #fonttest{font-family:monospace;}
1543 #fonttest{font-family:monospace;}
1540 p{margin-bottom:0;}
1544 p{margin-bottom:0;}
1541 .end_space{height:200px;}
1545 .end_space{height:200px;}
1542 .celltoolbar{border:thin solid #CFCFCF;border-bottom:none;background:#EEE;border-radius:3px 3px 0px 0px;width:100%;-webkit-box-pack:end;height:22px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
1546 .celltoolbar{border:thin solid #CFCFCF;border-bottom:none;background:#EEE;border-radius:3px 3px 0px 0px;width:100%;-webkit-box-pack:end;height:22px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;}
1543 .ctb_hideshow{display:none;vertical-align:bottom;padding-right:2px;}
1547 .ctb_hideshow{display:none;vertical-align:bottom;padding-right:2px;}
1544 .celltoolbar>div{padding-top:0px;}
1548 .celltoolbar>div{padding-top:0px;}
1545 .ctb_global_show .ctb_show.ctb_hideshow{display:block;}
1549 .ctb_global_show .ctb_show.ctb_hideshow{display:block;}
1546 .ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input{border-top-right-radius:0px;border-top-left-radius:0px;}
1550 .ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input{border-top-right-radius:0px;border-top-left-radius:0px;}
1547 .celltoolbar .button_container select{margin:10px;margin-top:1px;margin-bottom:0px;padding:0;font-size:87%;width:auto;display:inline-block;height:18px;line-height:18px;vertical-align:top;}
1551 .celltoolbar .button_container select{margin:10px;margin-top:1px;margin-bottom:0px;padding:0;font-size:87%;width:auto;display:inline-block;height:18px;line-height:18px;vertical-align:top;}
1548 .celltoolbar label{display:inline-block;height:15px;line-height:15px;vertical-align:top;}
1552 .celltoolbar label{display:inline-block;height:15px;line-height:15px;vertical-align:top;}
1549 .celltoolbar label span{font-size:85%;}
1553 .celltoolbar label span{font-size:85%;}
1550 .celltoolbar input[type=checkbox]{margin:0px;margin-left:4px;margin-right:4px;}
1554 .celltoolbar input[type=checkbox]{margin:0px;margin-left:4px;margin-right:4px;}
1551 .celltoolbar .ui-button{border:none;vertical-align:top;height:20px;min-width:30px;}
1555 .celltoolbar .ui-button{border:none;vertical-align:top;height:20px;min-width:30px;}
1552 .completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:4px;-webkit-box-shadow:0px 6px 10px -1px #adadad;-moz-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;}
1556 .completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:4px;-webkit-box-shadow:0px 6px 10px -1px #adadad;-moz-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;}
1553 .completions select{background:white;outline:none;border:none;padding:0px;margin:0px;overflow:auto;font-family:monospace;font-size:110%;color:#000000;}
1557 .completions select{background:white;outline:none;border:none;padding:0px;margin:0px;overflow:auto;font-family:monospace;font-size:110%;color:#000000;}
1554 .completions select option.context{color:#0064cd;}
1558 .completions select option.context{color:#0064cd;}
1555 #menubar .navbar-inner{min-height:28px;border-top:1px;border-radius:0px 0px 4px 4px;}
1559 #menubar .navbar-inner{min-height:28px;border-top:1px;border-radius:0px 0px 4px 4px;}
1556 #menubar .navbar{margin-bottom:8px;}
1560 #menubar .navbar{margin-bottom:8px;}
1557 .nav-wrapper{border-bottom:1px solid #d4d4d4;}
1561 .nav-wrapper{border-bottom:1px solid #d4d4d4;}
1558 #menubar li.dropdown{line-height:12px;}
1562 #menubar li.dropdown{line-height:12px;}
1559 #notification_area{z-index:10;}
1563 #notification_area{z-index:10;}
1560 .notification_widget{color:#777777;padding:1px 12px;margin:2px 4px;z-index:10;border:1px solid #ccc;border-radius:4px;background:rgba(240, 240, 240, 0.5);}
1564 .notification_widget{color:#777777;padding:1px 12px;margin:2px 4px;z-index:10;border:1px solid #ccc;border-radius:4px;background:rgba(240, 240, 240, 0.5);}
1561 div#pager_splitter{height:8px;}
1565 div#pager_splitter{height:8px;}
1562 #pager-container{position:relative;padding:15px 0px;}
1566 #pager-container{position:relative;padding:15px 0px;}
1563 div#pager{overflow:auto;display:none;}div#pager pre{font-size:13px;line-height:1.231em;color:#000000;background-color:#f7f7f7;padding:0.4em;}
1567 div#pager{overflow:auto;display:none;}div#pager pre{font-size:13px;line-height:1.231em;color:#000000;background-color:#f7f7f7;padding:0.4em;}
1564 .shortcut_key{display:inline-block;width:15ex;text-align:right;font-family:monospace;}
1568 .shortcut_key{display:inline-block;width:15ex;text-align:right;font-family:monospace;}
1565 .shortcut_descr{display:inline-block;}
1569 .shortcut_descr{display:inline-block;}
1566 div.quickhelp{float:left;width:50%;}
1570 div.quickhelp{float:left;width:50%;}
1567 span#save_widget{padding:0px 5px;margin-top:12px;}
1571 span#save_widget{padding:0px 5px;margin-top:12px;}
1568 span#checkpoint_status,span#autosave_status{font-size:small;}
1572 span#checkpoint_status,span#autosave_status{font-size:small;}
1569 @media (max-width:767px){span#save_widget{font-size:small;} span#checkpoint_status,span#autosave_status{font-size:x-small;}}@media (max-width:767px){span#checkpoint_status,span#autosave_status{display:none;}}@media (min-width:768px) and (max-width:979px){span#checkpoint_status{display:none;} span#autosave_status{font-size:x-small;}}.toolbar{padding:0px 10px;margin-top:-5px;}.toolbar select,.toolbar label{width:auto;height:26px;vertical-align:middle;margin-right:2px;margin-bottom:0px;display:inline;font-size:92%;margin-left:0.3em;margin-right:0.3em;padding:0px;padding-top:3px;}
1573 @media (max-width:767px){span#save_widget{font-size:small;} span#checkpoint_status,span#autosave_status{font-size:x-small;}}@media (max-width:767px){span#checkpoint_status,span#autosave_status{display:none;}}@media (min-width:768px) and (max-width:979px){span#checkpoint_status{display:none;} span#autosave_status{font-size:x-small;}}.toolbar{padding:0px 10px;margin-top:-5px;}.toolbar select,.toolbar label{width:auto;height:26px;vertical-align:middle;margin-right:2px;margin-bottom:0px;display:inline;font-size:92%;margin-left:0.3em;margin-right:0.3em;padding:0px;padding-top:3px;}
1570 .toolbar .btn{padding:2px 8px;}
1574 .toolbar .btn{padding:2px 8px;}
1571 .toolbar .btn-group{margin-top:0px;}
1575 .toolbar .btn-group{margin-top:0px;}
1572 .toolbar-inner{border:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;box-shadow:none !important;}
1576 .toolbar-inner{border:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;box-shadow:none !important;}
1573 #maintoolbar{margin-bottom:0px;}
1577 #maintoolbar{margin-bottom:0px;}
1574 @-moz-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-webkit-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-moz-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}@-webkit-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;}
1578 @-moz-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-webkit-keyframes fadeOut{from{opacity:1;} to{opacity:0;}}@-moz-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}@-webkit-keyframes fadeIn{from{opacity:0;} to{opacity:1;}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;}
1575 .smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px;}
1579 .smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px;}
1576 .tooltipbuttons{position:absolute;padding-right:15px;top:0px;right:0px;}
1580 .tooltipbuttons{position:absolute;padding-right:15px;top:0px;right:0px;}
1577 .tooltiptext{padding-right:30px;}
1581 .tooltiptext{padding-right:30px;}
1578 .ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0px;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0px 6px 10px -1px #adadad;-webkit-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;border-radius:4px;position:absolute;z-index:2;}.ipython_tooltip a{float:right;}
1582 .ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0px;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0px 6px 10px -1px #adadad;-webkit-box-shadow:0px 6px 10px -1px #adadad;box-shadow:0px 6px 10px -1px #adadad;border-radius:4px;position:absolute;z-index:2;}.ipython_tooltip a{float:right;}
1579 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
1583 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
1580 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
1584 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
1581 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
1585 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
@@ -1,319 +1,322 b''
1 """This module defines TemplateExporter, a highly configurable converter
1 """This module defines TemplateExporter, a highly configurable converter
2 that uses Jinja2 to export notebook files into different formats.
2 that uses Jinja2 to export notebook files into different formats.
3 """
3 """
4
4
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16
16
17 from __future__ import print_function, absolute_import
17 from __future__ import print_function, absolute_import
18
18
19 # Stdlib imports
19 # Stdlib imports
20 import os
20 import os
21
21
22 # other libs/dependencies
22 # other libs/dependencies are imported at runtime
23 from jinja2 import Environment, FileSystemLoader, ChoiceLoader, TemplateNotFound
23 # to move ImportErrors to runtime when the requirement is actually needed
24
24
25 # IPython imports
25 # IPython imports
26 from IPython.utils.traitlets import MetaHasTraits, Unicode, List, Dict, Any
26 from IPython.utils.traitlets import MetaHasTraits, Unicode, List, Dict, Any
27 from IPython.utils.importstring import import_item
27 from IPython.utils.importstring import import_item
28 from IPython.utils import py3compat, text
28 from IPython.utils import py3compat, text
29
29
30 from IPython.nbformat.current import docstring_nbformat_mod
30 from IPython.nbformat.current import docstring_nbformat_mod
31 from IPython.nbconvert import filters
31 from IPython.nbconvert import filters
32 from .exporter import Exporter
32 from .exporter import Exporter
33
33
34 #-----------------------------------------------------------------------------
34 #-----------------------------------------------------------------------------
35 # Globals and constants
35 # Globals and constants
36 #-----------------------------------------------------------------------------
36 #-----------------------------------------------------------------------------
37
37
38 #Jinja2 extensions to load.
38 #Jinja2 extensions to load.
39 JINJA_EXTENSIONS = ['jinja2.ext.loopcontrols']
39 JINJA_EXTENSIONS = ['jinja2.ext.loopcontrols']
40
40
41 default_filters = {
41 default_filters = {
42 'indent': text.indent,
42 'indent': text.indent,
43 'markdown2html': filters.markdown2html,
43 'markdown2html': filters.markdown2html,
44 'ansi2html': filters.ansi2html,
44 'ansi2html': filters.ansi2html,
45 'filter_data_type': filters.DataTypeFilter,
45 'filter_data_type': filters.DataTypeFilter,
46 'get_lines': filters.get_lines,
46 'get_lines': filters.get_lines,
47 'highlight2html': filters.Highlight2Html,
47 'highlight2html': filters.Highlight2Html,
48 'highlight2latex': filters.Highlight2Latex,
48 'highlight2latex': filters.Highlight2Latex,
49 'ipython2python': filters.ipython2python,
49 'ipython2python': filters.ipython2python,
50 'posix_path': filters.posix_path,
50 'posix_path': filters.posix_path,
51 'markdown2latex': filters.markdown2latex,
51 'markdown2latex': filters.markdown2latex,
52 'markdown2rst': filters.markdown2rst,
52 'markdown2rst': filters.markdown2rst,
53 'comment_lines': filters.comment_lines,
53 'comment_lines': filters.comment_lines,
54 'strip_ansi': filters.strip_ansi,
54 'strip_ansi': filters.strip_ansi,
55 'strip_dollars': filters.strip_dollars,
55 'strip_dollars': filters.strip_dollars,
56 'strip_files_prefix': filters.strip_files_prefix,
56 'strip_files_prefix': filters.strip_files_prefix,
57 'html2text' : filters.html2text,
57 'html2text' : filters.html2text,
58 'add_anchor': filters.add_anchor,
58 'add_anchor': filters.add_anchor,
59 'ansi2latex': filters.ansi2latex,
59 'ansi2latex': filters.ansi2latex,
60 'wrap_text': filters.wrap_text,
60 'wrap_text': filters.wrap_text,
61 'escape_latex': filters.escape_latex,
61 'escape_latex': filters.escape_latex,
62 'citation2latex': filters.citation2latex,
62 'citation2latex': filters.citation2latex,
63 'path2url': filters.path2url,
63 'path2url': filters.path2url,
64 'add_prompts': filters.add_prompts,
64 'add_prompts': filters.add_prompts,
65 }
65 }
66
66
67 #-----------------------------------------------------------------------------
67 #-----------------------------------------------------------------------------
68 # Class
68 # Class
69 #-----------------------------------------------------------------------------
69 #-----------------------------------------------------------------------------
70
70
71 class TemplateExporter(Exporter):
71 class TemplateExporter(Exporter):
72 """
72 """
73 Exports notebooks into other file formats. Uses Jinja 2 templating engine
73 Exports notebooks into other file formats. Uses Jinja 2 templating engine
74 to output new formats. Inherit from this class if you are creating a new
74 to output new formats. Inherit from this class if you are creating a new
75 template type along with new filters/preprocessors. If the filters/
75 template type along with new filters/preprocessors. If the filters/
76 preprocessors provided by default suffice, there is no need to inherit from
76 preprocessors provided by default suffice, there is no need to inherit from
77 this class. Instead, override the template_file and file_extension
77 this class. Instead, override the template_file and file_extension
78 traits via a config file.
78 traits via a config file.
79
79
80 {filters}
80 {filters}
81 """
81 """
82
82
83 # finish the docstring
83 # finish the docstring
84 __doc__ = __doc__.format(filters = '- '+'\n - '.join(default_filters.keys()))
84 __doc__ = __doc__.format(filters = '- '+'\n - '.join(default_filters.keys()))
85
85
86
86
87 template_file = Unicode(u'default',
87 template_file = Unicode(u'default',
88 config=True,
88 config=True,
89 help="Name of the template file to use")
89 help="Name of the template file to use")
90 def _template_file_changed(self, name, old, new):
90 def _template_file_changed(self, name, old, new):
91 if new == 'default':
91 if new == 'default':
92 self.template_file = self.default_template
92 self.template_file = self.default_template
93 else:
93 else:
94 self.template_file = new
94 self.template_file = new
95 self.template = None
95 self.template = None
96 self._load_template()
96 self._load_template()
97
97
98 default_template = Unicode(u'')
98 default_template = Unicode(u'')
99 template = Any()
99 template = Any()
100 environment = Any()
100 environment = Any()
101
101
102 template_path = List(['.'], config=True)
102 template_path = List(['.'], config=True)
103 def _template_path_changed(self, name, old, new):
103 def _template_path_changed(self, name, old, new):
104 self._load_template()
104 self._load_template()
105
105
106 default_template_path = Unicode(
106 default_template_path = Unicode(
107 os.path.join("..", "templates"),
107 os.path.join("..", "templates"),
108 help="Path where the template files are located.")
108 help="Path where the template files are located.")
109
109
110 template_skeleton_path = Unicode(
110 template_skeleton_path = Unicode(
111 os.path.join("..", "templates", "skeleton"),
111 os.path.join("..", "templates", "skeleton"),
112 help="Path where the template skeleton files are located.")
112 help="Path where the template skeleton files are located.")
113
113
114 #Jinja block definitions
114 #Jinja block definitions
115 jinja_comment_block_start = Unicode("", config=True)
115 jinja_comment_block_start = Unicode("", config=True)
116 jinja_comment_block_end = Unicode("", config=True)
116 jinja_comment_block_end = Unicode("", config=True)
117 jinja_variable_block_start = Unicode("", config=True)
117 jinja_variable_block_start = Unicode("", config=True)
118 jinja_variable_block_end = Unicode("", config=True)
118 jinja_variable_block_end = Unicode("", config=True)
119 jinja_logic_block_start = Unicode("", config=True)
119 jinja_logic_block_start = Unicode("", config=True)
120 jinja_logic_block_end = Unicode("", config=True)
120 jinja_logic_block_end = Unicode("", config=True)
121
121
122 #Extension that the template files use.
122 #Extension that the template files use.
123 template_extension = Unicode(".tpl", config=True)
123 template_extension = Unicode(".tpl", config=True)
124
124
125 filters = Dict(config=True,
125 filters = Dict(config=True,
126 help="""Dictionary of filters, by name and namespace, to add to the Jinja
126 help="""Dictionary of filters, by name and namespace, to add to the Jinja
127 environment.""")
127 environment.""")
128
128
129 raw_mimetypes = List(config=True,
129 raw_mimetypes = List(config=True,
130 help="""formats of raw cells to be included in this Exporter's output."""
130 help="""formats of raw cells to be included in this Exporter's output."""
131 )
131 )
132 def _raw_mimetypes_default(self):
132 def _raw_mimetypes_default(self):
133 return [self.output_mimetype, '']
133 return [self.output_mimetype, '']
134
134
135
135
136 def __init__(self, config=None, extra_loaders=None, **kw):
136 def __init__(self, config=None, extra_loaders=None, **kw):
137 """
137 """
138 Public constructor
138 Public constructor
139
139
140 Parameters
140 Parameters
141 ----------
141 ----------
142 config : config
142 config : config
143 User configuration instance.
143 User configuration instance.
144 extra_loaders : list[of Jinja Loaders]
144 extra_loaders : list[of Jinja Loaders]
145 ordered list of Jinja loader to find templates. Will be tried in order
145 ordered list of Jinja loader to find templates. Will be tried in order
146 before the default FileSystem ones.
146 before the default FileSystem ones.
147 template : str (optional, kw arg)
147 template : str (optional, kw arg)
148 Template to use when exporting.
148 Template to use when exporting.
149 """
149 """
150 super(TemplateExporter, self).__init__(config=config, **kw)
150 super(TemplateExporter, self).__init__(config=config, **kw)
151
151
152 #Init
152 #Init
153 self._init_template()
153 self._init_template()
154 self._init_environment(extra_loaders=extra_loaders)
154 self._init_environment(extra_loaders=extra_loaders)
155 self._init_preprocessors()
155 self._init_preprocessors()
156 self._init_filters()
156 self._init_filters()
157
157
158
158
159 def _load_template(self):
159 def _load_template(self):
160 """Load the Jinja template object from the template file
160 """Load the Jinja template object from the template file
161
161
162 This is a no-op if the template attribute is already defined,
162 This is a no-op if the template attribute is already defined,
163 or the Jinja environment is not setup yet.
163 or the Jinja environment is not setup yet.
164
164
165 This is triggered by various trait changes that would change the template.
165 This is triggered by various trait changes that would change the template.
166 """
166 """
167 from jinja2 import TemplateNotFound
168
167 if self.template is not None:
169 if self.template is not None:
168 return
170 return
169 # called too early, do nothing
171 # called too early, do nothing
170 if self.environment is None:
172 if self.environment is None:
171 return
173 return
172 # Try different template names during conversion. First try to load the
174 # Try different template names during conversion. First try to load the
173 # template by name with extension added, then try loading the template
175 # template by name with extension added, then try loading the template
174 # as if the name is explicitly specified, then try the name as a
176 # as if the name is explicitly specified, then try the name as a
175 # 'flavor', and lastly just try to load the template by module name.
177 # 'flavor', and lastly just try to load the template by module name.
176 try_names = []
178 try_names = []
177 if self.template_file:
179 if self.template_file:
178 try_names.extend([
180 try_names.extend([
179 self.template_file + self.template_extension,
181 self.template_file + self.template_extension,
180 self.template_file,
182 self.template_file,
181 ])
183 ])
182 for try_name in try_names:
184 for try_name in try_names:
183 self.log.debug("Attempting to load template %s", try_name)
185 self.log.debug("Attempting to load template %s", try_name)
184 try:
186 try:
185 self.template = self.environment.get_template(try_name)
187 self.template = self.environment.get_template(try_name)
186 except (TemplateNotFound, IOError):
188 except (TemplateNotFound, IOError):
187 pass
189 pass
188 except Exception as e:
190 except Exception as e:
189 self.log.warn("Unexpected exception loading template: %s", try_name, exc_info=True)
191 self.log.warn("Unexpected exception loading template: %s", try_name, exc_info=True)
190 else:
192 else:
191 self.log.info("Loaded template %s", try_name)
193 self.log.info("Loaded template %s", try_name)
192 break
194 break
193
195
194 @docstring_nbformat_mod
196 @docstring_nbformat_mod
195 def from_notebook_node(self, nb, resources=None, **kw):
197 def from_notebook_node(self, nb, resources=None, **kw):
196 """
198 """
197 Convert a notebook from a notebook node instance.
199 Convert a notebook from a notebook node instance.
198
200
199 Parameters
201 Parameters
200 ----------
202 ----------
201 nb : :class:`~{nbformat_mod}.nbbase.NotebookNode`
203 nb : :class:`~{nbformat_mod}.nbbase.NotebookNode`
202 Notebook node
204 Notebook node
203 resources : dict
205 resources : dict
204 Additional resources that can be accessed read/write by
206 Additional resources that can be accessed read/write by
205 preprocessors and filters.
207 preprocessors and filters.
206 """
208 """
207 nb_copy, resources = super(TemplateExporter, self).from_notebook_node(nb, resources, **kw)
209 nb_copy, resources = super(TemplateExporter, self).from_notebook_node(nb, resources, **kw)
208 resources.setdefault('raw_mimetypes', self.raw_mimetypes)
210 resources.setdefault('raw_mimetypes', self.raw_mimetypes)
209
211
210 self._load_template()
212 self._load_template()
211
213
212 if self.template is not None:
214 if self.template is not None:
213 output = self.template.render(nb=nb_copy, resources=resources)
215 output = self.template.render(nb=nb_copy, resources=resources)
214 else:
216 else:
215 raise IOError('template file "%s" could not be found' % self.template_file)
217 raise IOError('template file "%s" could not be found' % self.template_file)
216 return output, resources
218 return output, resources
217
219
218
220
219 def register_filter(self, name, jinja_filter):
221 def register_filter(self, name, jinja_filter):
220 """
222 """
221 Register a filter.
223 Register a filter.
222 A filter is a function that accepts and acts on one string.
224 A filter is a function that accepts and acts on one string.
223 The filters are accesible within the Jinja templating engine.
225 The filters are accesible within the Jinja templating engine.
224
226
225 Parameters
227 Parameters
226 ----------
228 ----------
227 name : str
229 name : str
228 name to give the filter in the Jinja engine
230 name to give the filter in the Jinja engine
229 filter : filter
231 filter : filter
230 """
232 """
231 if jinja_filter is None:
233 if jinja_filter is None:
232 raise TypeError('filter')
234 raise TypeError('filter')
233 isclass = isinstance(jinja_filter, type)
235 isclass = isinstance(jinja_filter, type)
234 constructed = not isclass
236 constructed = not isclass
235
237
236 #Handle filter's registration based on it's type
238 #Handle filter's registration based on it's type
237 if constructed and isinstance(jinja_filter, py3compat.string_types):
239 if constructed and isinstance(jinja_filter, py3compat.string_types):
238 #filter is a string, import the namespace and recursively call
240 #filter is a string, import the namespace and recursively call
239 #this register_filter method
241 #this register_filter method
240 filter_cls = import_item(jinja_filter)
242 filter_cls = import_item(jinja_filter)
241 return self.register_filter(name, filter_cls)
243 return self.register_filter(name, filter_cls)
242
244
243 if constructed and hasattr(jinja_filter, '__call__'):
245 if constructed and hasattr(jinja_filter, '__call__'):
244 #filter is a function, no need to construct it.
246 #filter is a function, no need to construct it.
245 self.environment.filters[name] = jinja_filter
247 self.environment.filters[name] = jinja_filter
246 return jinja_filter
248 return jinja_filter
247
249
248 elif isclass and isinstance(jinja_filter, MetaHasTraits):
250 elif isclass and isinstance(jinja_filter, MetaHasTraits):
249 #filter is configurable. Make sure to pass in new default for
251 #filter is configurable. Make sure to pass in new default for
250 #the enabled flag if one was specified.
252 #the enabled flag if one was specified.
251 filter_instance = jinja_filter(parent=self)
253 filter_instance = jinja_filter(parent=self)
252 self.register_filter(name, filter_instance )
254 self.register_filter(name, filter_instance )
253
255
254 elif isclass:
256 elif isclass:
255 #filter is not configurable, construct it
257 #filter is not configurable, construct it
256 filter_instance = jinja_filter()
258 filter_instance = jinja_filter()
257 self.register_filter(name, filter_instance)
259 self.register_filter(name, filter_instance)
258
260
259 else:
261 else:
260 #filter is an instance of something without a __call__
262 #filter is an instance of something without a __call__
261 #attribute.
263 #attribute.
262 raise TypeError('filter')
264 raise TypeError('filter')
263
265
264
266
265 def _init_template(self):
267 def _init_template(self):
266 """
268 """
267 Make sure a template name is specified. If one isn't specified, try to
269 Make sure a template name is specified. If one isn't specified, try to
268 build one from the information we know.
270 build one from the information we know.
269 """
271 """
270 self._template_file_changed('template_file', self.template_file, self.template_file)
272 self._template_file_changed('template_file', self.template_file, self.template_file)
271
273
272
274
273 def _init_environment(self, extra_loaders=None):
275 def _init_environment(self, extra_loaders=None):
274 """
276 """
275 Create the Jinja templating environment.
277 Create the Jinja templating environment.
276 """
278 """
279 from jinja2 import Environment, ChoiceLoader, FileSystemLoader
277 here = os.path.dirname(os.path.realpath(__file__))
280 here = os.path.dirname(os.path.realpath(__file__))
278 loaders = []
281 loaders = []
279 if extra_loaders:
282 if extra_loaders:
280 loaders.extend(extra_loaders)
283 loaders.extend(extra_loaders)
281
284
282 paths = self.template_path
285 paths = self.template_path
283 paths.extend([os.path.join(here, self.default_template_path),
286 paths.extend([os.path.join(here, self.default_template_path),
284 os.path.join(here, self.template_skeleton_path)])
287 os.path.join(here, self.template_skeleton_path)])
285 loaders.append(FileSystemLoader(paths))
288 loaders.append(FileSystemLoader(paths))
286
289
287 self.environment = Environment(
290 self.environment = Environment(
288 loader= ChoiceLoader(loaders),
291 loader= ChoiceLoader(loaders),
289 extensions=JINJA_EXTENSIONS
292 extensions=JINJA_EXTENSIONS
290 )
293 )
291
294
292 #Set special Jinja2 syntax that will not conflict with latex.
295 #Set special Jinja2 syntax that will not conflict with latex.
293 if self.jinja_logic_block_start:
296 if self.jinja_logic_block_start:
294 self.environment.block_start_string = self.jinja_logic_block_start
297 self.environment.block_start_string = self.jinja_logic_block_start
295 if self.jinja_logic_block_end:
298 if self.jinja_logic_block_end:
296 self.environment.block_end_string = self.jinja_logic_block_end
299 self.environment.block_end_string = self.jinja_logic_block_end
297 if self.jinja_variable_block_start:
300 if self.jinja_variable_block_start:
298 self.environment.variable_start_string = self.jinja_variable_block_start
301 self.environment.variable_start_string = self.jinja_variable_block_start
299 if self.jinja_variable_block_end:
302 if self.jinja_variable_block_end:
300 self.environment.variable_end_string = self.jinja_variable_block_end
303 self.environment.variable_end_string = self.jinja_variable_block_end
301 if self.jinja_comment_block_start:
304 if self.jinja_comment_block_start:
302 self.environment.comment_start_string = self.jinja_comment_block_start
305 self.environment.comment_start_string = self.jinja_comment_block_start
303 if self.jinja_comment_block_end:
306 if self.jinja_comment_block_end:
304 self.environment.comment_end_string = self.jinja_comment_block_end
307 self.environment.comment_end_string = self.jinja_comment_block_end
305
308
306
309
307 def _init_filters(self):
310 def _init_filters(self):
308 """
311 """
309 Register all of the filters required for the exporter.
312 Register all of the filters required for the exporter.
310 """
313 """
311
314
312 #Add default filters to the Jinja2 environment
315 #Add default filters to the Jinja2 environment
313 for key, value in default_filters.items():
316 for key, value in default_filters.items():
314 self.register_filter(key, value)
317 self.register_filter(key, value)
315
318
316 #Load user filters. Overwrite existing filters if need be.
319 #Load user filters. Overwrite existing filters if need be.
317 if self.filters:
320 if self.filters:
318 for key, user_filter in self.filters.items():
321 for key, user_filter in self.filters.items():
319 self.register_filter(key, user_filter)
322 self.register_filter(key, user_filter)
@@ -1,121 +1,123 b''
1 """
1 """
2 Module containing filter functions that allow code to be highlighted
2 Module containing filter functions that allow code to be highlighted
3 from within Jinja templates.
3 from within Jinja templates.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16
16
17 from pygments import highlight as pygements_highlight
17 # pygments must not be imported at the module level
18 from pygments.lexers import get_lexer_by_name
18 # because errors should be raised at runtime if it's actually needed,
19 from pygments.formatters import HtmlFormatter
19 # not import time, when it may not be needed.
20 from pygments.formatters import LatexFormatter
21
22
20
23 # Our own imports
21 # Our own imports
24 from IPython.nbconvert.utils.lexers import IPythonLexer
25 from IPython.nbconvert.utils.base import NbConvertBase
22 from IPython.nbconvert.utils.base import NbConvertBase
26
23
27 #-----------------------------------------------------------------------------
24 #-----------------------------------------------------------------------------
28 # Globals and constants
25 # Globals and constants
29 #-----------------------------------------------------------------------------
26 #-----------------------------------------------------------------------------
30
27
31 MULTILINE_OUTPUTS = ['text', 'html', 'svg', 'latex', 'javascript', 'json']
28 MULTILINE_OUTPUTS = ['text', 'html', 'svg', 'latex', 'javascript', 'json']
32
29
33 #-----------------------------------------------------------------------------
30 #-----------------------------------------------------------------------------
34 # Utility functions
31 # Utility functions
35 #-----------------------------------------------------------------------------
32 #-----------------------------------------------------------------------------
36
33
37 __all__ = [
34 __all__ = [
38 'Highlight2Html',
35 'Highlight2Html',
39 'Highlight2Latex'
36 'Highlight2Latex'
40 ]
37 ]
41
38
42
39
43 class Highlight2Html(NbConvertBase):
40 class Highlight2Html(NbConvertBase):
44
41
45 def __call__(self, source, language=None, metadata=None):
42 def __call__(self, source, language=None, metadata=None):
46 """
43 """
47 Return a syntax-highlighted version of the input source as html output.
44 Return a syntax-highlighted version of the input source as html output.
48
45
49 Parameters
46 Parameters
50 ----------
47 ----------
51 source : str
48 source : str
52 source of the cell to highlight
49 source of the cell to highlight
53 language : str
50 language : str
54 language to highlight the syntax of
51 language to highlight the syntax of
55 metadata : NotebookNode cell metadata
52 metadata : NotebookNode cell metadata
56 metadata of the cell to highlight
53 metadata of the cell to highlight
57 """
54 """
55 from pygments.formatters import HtmlFormatter
58 if not language:
56 if not language:
59 language=self.default_language
57 language=self.default_language
60
58
61 return _pygment_highlight(source, HtmlFormatter(), language, metadata)
59 return _pygments_highlight(source, HtmlFormatter(), language, metadata)
62
60
63
61
64 class Highlight2Latex(NbConvertBase):
62 class Highlight2Latex(NbConvertBase):
65
63
66 def __call__(self, source, language=None, metadata=None, strip_verbatim=False):
64 def __call__(self, source, language=None, metadata=None, strip_verbatim=False):
67 """
65 """
68 Return a syntax-highlighted version of the input source as latex output.
66 Return a syntax-highlighted version of the input source as latex output.
69
67
70 Parameters
68 Parameters
71 ----------
69 ----------
72 source : str
70 source : str
73 source of the cell to highlight
71 source of the cell to highlight
74 language : str
72 language : str
75 language to highlight the syntax of
73 language to highlight the syntax of
76 metadata : NotebookNode cell metadata
74 metadata : NotebookNode cell metadata
77 metadata of the cell to highlight
75 metadata of the cell to highlight
78 strip_verbatim : bool
76 strip_verbatim : bool
79 remove the Verbatim environment that pygments provides by default
77 remove the Verbatim environment that pygments provides by default
80 """
78 """
79 from pygments.formatters import LatexFormatter
81 if not language:
80 if not language:
82 language=self.default_language
81 language=self.default_language
83
82
84 latex = _pygment_highlight(source, LatexFormatter(), language, metadata)
83 latex = _pygments_highlight(source, LatexFormatter(), language, metadata)
85 if strip_verbatim:
84 if strip_verbatim:
86 latex = latex.replace(r'\begin{Verbatim}[commandchars=\\\{\}]' + '\n', '')
85 latex = latex.replace(r'\begin{Verbatim}[commandchars=\\\{\}]' + '\n', '')
87 return latex.replace('\n\\end{Verbatim}\n', '')
86 return latex.replace('\n\\end{Verbatim}\n', '')
88 else:
87 else:
89 return latex
88 return latex
90
89
91
90
92
91
93 def _pygment_highlight(source, output_formatter, language='ipython', metadata=None):
92 def _pygments_highlight(source, output_formatter, language='ipython', metadata=None):
94 """
93 """
95 Return a syntax-highlighted version of the input source
94 Return a syntax-highlighted version of the input source
96
95
97 Parameters
96 Parameters
98 ----------
97 ----------
99 source : str
98 source : str
100 source of the cell to highlight
99 source of the cell to highlight
101 output_formatter : Pygments formatter
100 output_formatter : Pygments formatter
102 language : str
101 language : str
103 language to highlight the syntax of
102 language to highlight the syntax of
104 metadata : NotebookNode cell metadata
103 metadata : NotebookNode cell metadata
105 metadata of the cell to highlight
104 metadata of the cell to highlight
106 """
105 """
106 from pygments import highlight
107 from pygments.lexers import get_lexer_by_name
108 from IPython.nbconvert.utils.lexers import IPythonLexer
107
109
108 # If the cell uses a magic extension language,
110 # If the cell uses a magic extension language,
109 # use the magic language instead.
111 # use the magic language instead.
110 if language == 'ipython' \
112 if language == 'ipython' \
111 and metadata \
113 and metadata \
112 and 'magics_language' in metadata:
114 and 'magics_language' in metadata:
113
115
114 language = metadata['magics_language']
116 language = metadata['magics_language']
115
117
116 if language == 'ipython':
118 if language == 'ipython':
117 lexer = IPythonLexer()
119 lexer = IPythonLexer()
118 else:
120 else:
119 lexer = get_lexer_by_name(language, stripall=True)
121 lexer = get_lexer_by_name(language, stripall=True)
120
122
121 return pygements_highlight(source, lexer, output_formatter)
123 return highlight(source, lexer, output_formatter)
@@ -1,106 +1,105 b''
1 """Module that pre-processes the notebook for export to HTML.
1 """Module that pre-processes the notebook for export to HTML.
2 """
2 """
3 #-----------------------------------------------------------------------------
3 #-----------------------------------------------------------------------------
4 # Copyright (c) 2013, the IPython Development Team.
4 # Copyright (c) 2013, the IPython Development Team.
5 #
5 #
6 # Distributed under the terms of the Modified BSD License.
6 # Distributed under the terms of the Modified BSD License.
7 #
7 #
8 # The full license is in the file COPYING.txt, distributed with this software.
8 # The full license is in the file COPYING.txt, distributed with this software.
9 #-----------------------------------------------------------------------------
9 #-----------------------------------------------------------------------------
10
10
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12 # Imports
12 # Imports
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 import os
15 import os
16 import io
16 import io
17
17
18 from pygments.formatters import HtmlFormatter
19
20 from IPython.utils import path
18 from IPython.utils import path
21
19
22 from .base import Preprocessor
20 from .base import Preprocessor
23
21
24 from IPython.utils.traitlets import Unicode
22 from IPython.utils.traitlets import Unicode
25
23
26 #-----------------------------------------------------------------------------
24 #-----------------------------------------------------------------------------
27 # Classes and functions
25 # Classes and functions
28 #-----------------------------------------------------------------------------
26 #-----------------------------------------------------------------------------
29
27
30 class CSSHTMLHeaderPreprocessor(Preprocessor):
28 class CSSHTMLHeaderPreprocessor(Preprocessor):
31 """
29 """
32 Preprocessor used to pre-process notebook for HTML output. Adds IPython notebook
30 Preprocessor used to pre-process notebook for HTML output. Adds IPython notebook
33 front-end CSS and Pygments CSS to HTML output.
31 front-end CSS and Pygments CSS to HTML output.
34 """
32 """
35
33
36 header = []
34 header = []
37
35
38 highlight_class = Unicode('.highlight', config=True,
36 highlight_class = Unicode('.highlight', config=True,
39 help="CSS highlight class identifier")
37 help="CSS highlight class identifier")
40
38
41 def __init__(self, config=None, **kw):
39 def __init__(self, config=None, **kw):
42 """
40 """
43 Public constructor
41 Public constructor
44
42
45 Parameters
43 Parameters
46 ----------
44 ----------
47 config : Config
45 config : Config
48 Configuration file structure
46 Configuration file structure
49 **kw : misc
47 **kw : misc
50 Additional arguments
48 Additional arguments
51 """
49 """
52
50
53 super(CSSHTMLHeaderPreprocessor, self).__init__(config=config, **kw)
51 super(CSSHTMLHeaderPreprocessor, self).__init__(config=config, **kw)
54
52
55 if self.enabled :
53 if self.enabled :
56 self._regen_header()
54 self._regen_header()
57
55
58
56
59 def preprocess(self, nb, resources):
57 def preprocess(self, nb, resources):
60 """Fetch and add CSS to the resource dictionary
58 """Fetch and add CSS to the resource dictionary
61
59
62 Fetch CSS from IPython and Pygments to add at the beginning
60 Fetch CSS from IPython and Pygments to add at the beginning
63 of the html files. Add this css in resources in the
61 of the html files. Add this css in resources in the
64 "inlining.css" key
62 "inlining.css" key
65
63
66 Parameters
64 Parameters
67 ----------
65 ----------
68 nb : NotebookNode
66 nb : NotebookNode
69 Notebook being converted
67 Notebook being converted
70 resources : dictionary
68 resources : dictionary
71 Additional resources used in the conversion process. Allows
69 Additional resources used in the conversion process. Allows
72 preprocessors to pass variables into the Jinja engine.
70 preprocessors to pass variables into the Jinja engine.
73 """
71 """
74
72
75 resources['inlining'] = {}
73 resources['inlining'] = {}
76 resources['inlining']['css'] = self.header
74 resources['inlining']['css'] = self.header
77
75
78 return nb, resources
76 return nb, resources
79
77
80
78
81 def _regen_header(self):
79 def _regen_header(self):
82 """
80 """
83 Fills self.header with lines of CSS extracted from IPython
81 Fills self.header with lines of CSS extracted from IPython
84 and Pygments.
82 and Pygments.
85 """
83 """
84 from pygments.formatters import HtmlFormatter
86
85
87 #Clear existing header.
86 #Clear existing header.
88 header = []
87 header = []
89
88
90 #Construct path to IPy CSS
89 #Construct path to IPy CSS
91 sheet_filename = os.path.join(path.get_ipython_package_dir(),
90 sheet_filename = os.path.join(path.get_ipython_package_dir(),
92 'html', 'static', 'style', 'style.min.css')
91 'html', 'static', 'style', 'style.min.css')
93
92
94 #Load style CSS file.
93 #Load style CSS file.
95 with io.open(sheet_filename, encoding='utf-8') as file:
94 with io.open(sheet_filename, encoding='utf-8') as file:
96 file_text = file.read()
95 file_text = file.read()
97 header.append(file_text)
96 header.append(file_text)
98
97
99 #Add pygments CSS
98 #Add pygments CSS
100 formatter = HtmlFormatter()
99 formatter = HtmlFormatter()
101 pygments_css = formatter.get_style_defs(self.highlight_class)
100 pygments_css = formatter.get_style_defs(self.highlight_class)
102 header.append(pygments_css)
101 header.append(pygments_css)
103
102
104 #Set header
103 #Set header
105 self.header = header
104 self.header = header
106
105
General Comments 0
You need to be logged in to leave comments. Login now