Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
CompMech_Solutions/Module_02/04_Stats_and_Montecarlo_redacted.html
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
14640 lines (14233 sloc)
586 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head><meta charset="utf-8" /> | |
<title>04_Stats_and_Montecarlo</title> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> | |
<style type="text/css"> | |
/*! | |
* | |
* Twitter Bootstrap | |
* | |
*/ | |
/*! | |
* Bootstrap v3.3.7 (http://getbootstrap.com) | |
* Copyright 2011-2016 Twitter, Inc. | |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
*/ | |
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ | |
html { | |
font-family: sans-serif; | |
-ms-text-size-adjust: 100%; | |
-webkit-text-size-adjust: 100%; | |
} | |
body { | |
margin: 0; | |
} | |
article, | |
aside, | |
details, | |
figcaption, | |
figure, | |
footer, | |
header, | |
hgroup, | |
main, | |
menu, | |
nav, | |
section, | |
summary { | |
display: block; | |
} | |
audio, | |
canvas, | |
progress, | |
video { | |
display: inline-block; | |
vertical-align: baseline; | |
} | |
audio:not([controls]) { | |
display: none; | |
height: 0; | |
} | |
[hidden], | |
template { | |
display: none; | |
} | |
a { | |
background-color: transparent; | |
} | |
a:active, | |
a:hover { | |
outline: 0; | |
} | |
abbr[title] { | |
border-bottom: 1px dotted; | |
} | |
b, | |
strong { | |
font-weight: bold; | |
} | |
dfn { | |
font-style: italic; | |
} | |
h1 { | |
font-size: 2em; | |
margin: 0.67em 0; | |
} | |
mark { | |
background: #ff0; | |
color: #000; | |
} | |
small { | |
font-size: 80%; | |
} | |
sub, | |
sup { | |
font-size: 75%; | |
line-height: 0; | |
position: relative; | |
vertical-align: baseline; | |
} | |
sup { | |
top: -0.5em; | |
} | |
sub { | |
bottom: -0.25em; | |
} | |
img { | |
border: 0; | |
} | |
svg:not(:root) { | |
overflow: hidden; | |
} | |
figure { | |
margin: 1em 40px; | |
} | |
hr { | |
box-sizing: content-box; | |
height: 0; | |
} | |
pre { | |
overflow: auto; | |
} | |
code, | |
kbd, | |
pre, | |
samp { | |
font-family: monospace, monospace; | |
font-size: 1em; | |
} | |
button, | |
input, | |
optgroup, | |
select, | |
textarea { | |
color: inherit; | |
font: inherit; | |
margin: 0; | |
} | |
button { | |
overflow: visible; | |
} | |
button, | |
select { | |
text-transform: none; | |
} | |
button, | |
html input[type="button"], | |
input[type="reset"], | |
input[type="submit"] { | |
-webkit-appearance: button; | |
cursor: pointer; | |
} | |
button[disabled], | |
html input[disabled] { | |
cursor: default; | |
} | |
button::-moz-focus-inner, | |
input::-moz-focus-inner { | |
border: 0; | |
padding: 0; | |
} | |
input { | |
line-height: normal; | |
} | |
input[type="checkbox"], | |
input[type="radio"] { | |
box-sizing: border-box; | |
padding: 0; | |
} | |
input[type="number"]::-webkit-inner-spin-button, | |
input[type="number"]::-webkit-outer-spin-button { | |
height: auto; | |
} | |
input[type="search"] { | |
-webkit-appearance: textfield; | |
box-sizing: content-box; | |
} | |
input[type="search"]::-webkit-search-cancel-button, | |
input[type="search"]::-webkit-search-decoration { | |
-webkit-appearance: none; | |
} | |
fieldset { | |
border: 1px solid #c0c0c0; | |
margin: 0 2px; | |
padding: 0.35em 0.625em 0.75em; | |
} | |
legend { | |
border: 0; | |
padding: 0; | |
} | |
textarea { | |
overflow: auto; | |
} | |
optgroup { | |
font-weight: bold; | |
} | |
table { | |
border-collapse: collapse; | |
border-spacing: 0; | |
} | |
td, | |
th { | |
padding: 0; | |
} | |
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ | |
@media print { | |
*, | |
*:before, | |
*:after { | |
background: transparent !important; | |
box-shadow: none !important; | |
text-shadow: none !important; | |
} | |
a, | |
a:visited { | |
text-decoration: underline; | |
} | |
a[href]:after { | |
content: " (" attr(href) ")"; | |
} | |
abbr[title]:after { | |
content: " (" attr(title) ")"; | |
} | |
a[href^="#"]:after, | |
a[href^="javascript:"]: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; | |
} | |
p, | |
h2, | |
h3 { | |
orphans: 3; | |
widows: 3; | |
} | |
h2, | |
h3 { | |
page-break-after: avoid; | |
} | |
.navbar { | |
display: none; | |
} | |
.btn > .caret, | |
.dropup > .btn > .caret { | |
border-top-color: #000 !important; | |
} | |
.label { | |
border: 1px solid #000; | |
} | |
.table { | |
border-collapse: collapse !important; | |
} | |
.table td, | |
.table th { | |
background-color: #fff !important; | |
} | |
.table-bordered th, | |
.table-bordered td { | |
border: 1px solid #ddd !important; | |
} | |
} | |
@font-face { | |
font-family: 'Glyphicons Halflings'; | |
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot'); | |
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); | |
} | |
.glyphicon { | |
position: relative; | |
top: 1px; | |
display: inline-block; | |
font-family: 'Glyphicons Halflings'; | |
font-style: normal; | |
font-weight: normal; | |
line-height: 1; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
} | |
.glyphicon-asterisk:before { | |
content: "\002a"; | |
} | |
.glyphicon-plus:before { | |
content: "\002b"; | |
} | |
.glyphicon-euro:before, | |
.glyphicon-eur:before { | |
content: "\20ac"; | |
} | |
.glyphicon-minus:before { | |
content: "\2212"; | |
} | |
.glyphicon-cloud:before { | |
content: "\2601"; | |
} | |
.glyphicon-envelope:before { | |
content: "\2709"; | |
} | |
.glyphicon-pencil:before { | |
content: "\270f"; | |
} | |
.glyphicon-glass:before { | |
content: "\e001"; | |
} | |
.glyphicon-music:before { | |
content: "\e002"; | |
} | |
.glyphicon-search:before { | |
content: "\e003"; | |
} | |
.glyphicon-heart:before { | |
content: "\e005"; | |
} | |
.glyphicon-star:before { | |
content: "\e006"; | |
} | |
.glyphicon-star-empty:before { | |
content: "\e007"; | |
} | |
.glyphicon-user:before { | |
content: "\e008"; | |
} | |
.glyphicon-film:before { | |
content: "\e009"; | |
} | |
.glyphicon-th-large:before { | |
content: "\e010"; | |
} | |
.glyphicon-th:before { | |
content: "\e011"; | |
} | |
.glyphicon-th-list:before { | |
content: "\e012"; | |
} | |
.glyphicon-ok:before { | |
content: "\e013"; | |
} | |
.glyphicon-remove:before { | |
content: "\e014"; | |
} | |
.glyphicon-zoom-in:before { | |
content: "\e015"; | |
} | |
.glyphicon-zoom-out:before { | |
content: "\e016"; | |
} | |
.glyphicon-off:before { | |
content: "\e017"; | |
} | |
.glyphicon-signal:before { | |
content: "\e018"; | |
} | |
.glyphicon-cog:before { | |
content: "\e019"; | |
} | |
.glyphicon-trash:before { | |
content: "\e020"; | |
} | |
.glyphicon-home:before { | |
content: "\e021"; | |
} | |
.glyphicon-file:before { | |
content: "\e022"; | |
} | |
.glyphicon-time:before { | |
content: "\e023"; | |
} | |
.glyphicon-road:before { | |
content: "\e024"; | |
} | |
.glyphicon-download-alt:before { | |
content: "\e025"; | |
} | |
.glyphicon-download:before { | |
content: "\e026"; | |
} | |
.glyphicon-upload:before { | |
content: "\e027"; | |
} | |
.glyphicon-inbox:before { | |
content: "\e028"; | |
} | |
.glyphicon-play-circle:before { | |
content: "\e029"; | |
} | |
.glyphicon-repeat:before { | |
content: "\e030"; | |
} | |
.glyphicon-refresh:before { | |
content: "\e031"; | |
} | |
.glyphicon-list-alt:before { | |
content: "\e032"; | |
} | |
.glyphicon-lock:before { | |
content: "\e033"; | |
} | |
.glyphicon-flag:before { | |
content: "\e034"; | |
} | |
.glyphicon-headphones:before { | |
content: "\e035"; | |
} | |
.glyphicon-volume-off:before { | |
content: "\e036"; | |
} | |
.glyphicon-volume-down:before { | |
content: "\e037"; | |
} | |
.glyphicon-volume-up:before { | |
content: "\e038"; | |
} | |
.glyphicon-qrcode:before { | |
content: "\e039"; | |
} | |
.glyphicon-barcode:before { | |
content: "\e040"; | |
} | |
.glyphicon-tag:before { | |
content: "\e041"; | |
} | |
.glyphicon-tags:before { | |
content: "\e042"; | |
} | |
.glyphicon-book:before { | |
content: "\e043"; | |
} | |
.glyphicon-bookmark:before { | |
content: "\e044"; | |
} | |
.glyphicon-print:before { | |
content: "\e045"; | |
} | |
.glyphicon-camera:before { | |
content: "\e046"; | |
} | |
.glyphicon-font:before { | |
content: "\e047"; | |
} | |
.glyphicon-bold:before { | |
content: "\e048"; | |
} | |
.glyphicon-italic:before { | |
content: "\e049"; | |
} | |
.glyphicon-text-height:before { | |
content: "\e050"; | |
} | |
.glyphicon-text-width:before { | |
content: "\e051"; | |
} | |
.glyphicon-align-left:before { | |
content: "\e052"; | |
} | |
.glyphicon-align-center:before { | |
content: "\e053"; | |
} | |
.glyphicon-align-right:before { | |
content: "\e054"; | |
} | |
.glyphicon-align-justify:before { | |
content: "\e055"; | |
} | |
.glyphicon-list:before { | |
content: "\e056"; | |
} | |
.glyphicon-indent-left:before { | |
content: "\e057"; | |
} | |
.glyphicon-indent-right:before { | |
content: "\e058"; | |
} | |
.glyphicon-facetime-video:before { | |
content: "\e059"; | |
} | |
.glyphicon-picture:before { | |
content: "\e060"; | |
} | |
.glyphicon-map-marker:before { | |
content: "\e062"; | |
} | |
.glyphicon-adjust:before { | |
content: "\e063"; | |
} | |
.glyphicon-tint:before { | |
content: "\e064"; | |
} | |
.glyphicon-edit:before { | |
content: "\e065"; | |
} | |
.glyphicon-share:before { | |
content: "\e066"; | |
} | |
.glyphicon-check:before { | |
content: "\e067"; | |
} | |
.glyphicon-move:before { | |
content: "\e068"; | |
} | |
.glyphicon-step-backward:before { | |
content: "\e069"; | |
} | |
.glyphicon-fast-backward:before { | |
content: "\e070"; | |
} | |
.glyphicon-backward:before { | |
content: "\e071"; | |
} | |
.glyphicon-play:before { | |
content: "\e072"; | |
} | |
.glyphicon-pause:before { | |
content: "\e073"; | |
} | |
.glyphicon-stop:before { | |
content: "\e074"; | |
} | |
.glyphicon-forward:before { | |
content: "\e075"; | |
} | |
.glyphicon-fast-forward:before { | |
content: "\e076"; | |
} | |
.glyphicon-step-forward:before { | |
content: "\e077"; | |
} | |
.glyphicon-eject:before { | |
content: "\e078"; | |
} | |
.glyphicon-chevron-left:before { | |
content: "\e079"; | |
} | |
.glyphicon-chevron-right:before { | |
content: "\e080"; | |
} | |
.glyphicon-plus-sign:before { | |
content: "\e081"; | |
} | |
.glyphicon-minus-sign:before { | |
content: "\e082"; | |
} | |
.glyphicon-remove-sign:before { | |
content: "\e083"; | |
} | |
.glyphicon-ok-sign:before { | |
content: "\e084"; | |
} | |
.glyphicon-question-sign:before { | |
content: "\e085"; | |
} | |
.glyphicon-info-sign:before { | |
content: "\e086"; | |
} | |
.glyphicon-screenshot:before { | |
content: "\e087"; | |
} | |
.glyphicon-remove-circle:before { | |
content: "\e088"; | |
} | |
.glyphicon-ok-circle:before { | |
content: "\e089"; | |
} | |
.glyphicon-ban-circle:before { | |
content: "\e090"; | |
} | |
.glyphicon-arrow-left:before { | |
content: "\e091"; | |
} | |
.glyphicon-arrow-right:before { | |
content: "\e092"; | |
} | |
.glyphicon-arrow-up:before { | |
content: "\e093"; | |
} | |
.glyphicon-arrow-down:before { | |
content: "\e094"; | |
} | |
.glyphicon-share-alt:before { | |
content: "\e095"; | |
} | |
.glyphicon-resize-full:before { | |
content: "\e096"; | |
} | |
.glyphicon-resize-small:before { | |
content: "\e097"; | |
} | |
.glyphicon-exclamation-sign:before { | |
content: "\e101"; | |
} | |
.glyphicon-gift:before { | |
content: "\e102"; | |
} | |
.glyphicon-leaf:before { | |
content: "\e103"; | |
} | |
.glyphicon-fire:before { | |
content: "\e104"; | |
} | |
.glyphicon-eye-open:before { | |
content: "\e105"; | |
} | |
.glyphicon-eye-close:before { | |
content: "\e106"; | |
} | |
.glyphicon-warning-sign:before { | |
content: "\e107"; | |
} | |
.glyphicon-plane:before { | |
content: "\e108"; | |
} | |
.glyphicon-calendar:before { | |
content: "\e109"; | |
} | |
.glyphicon-random:before { | |
content: "\e110"; | |
} | |
.glyphicon-comment:before { | |
content: "\e111"; | |
} | |
.glyphicon-magnet:before { | |
content: "\e112"; | |
} | |
.glyphicon-chevron-up:before { | |
content: "\e113"; | |
} | |
.glyphicon-chevron-down:before { | |
content: "\e114"; | |
} | |
.glyphicon-retweet:before { | |
content: "\e115"; | |
} | |
.glyphicon-shopping-cart:before { | |
content: "\e116"; | |
} | |
.glyphicon-folder-close:before { | |
content: "\e117"; | |
} | |
.glyphicon-folder-open:before { | |
content: "\e118"; | |
} | |
.glyphicon-resize-vertical:before { | |
content: "\e119"; | |
} | |
.glyphicon-resize-horizontal:before { | |
content: "\e120"; | |
} | |
.glyphicon-hdd:before { | |
content: "\e121"; | |
} | |
.glyphicon-bullhorn:before { | |
content: "\e122"; | |
} | |
.glyphicon-bell:before { | |
content: "\e123"; | |
} | |
.glyphicon-certificate:before { | |
content: "\e124"; | |
} | |
.glyphicon-thumbs-up:before { | |
content: "\e125"; | |
} | |
.glyphicon-thumbs-down:before { | |
content: "\e126"; | |
} | |
.glyphicon-hand-right:before { | |
content: "\e127"; | |
} | |
.glyphicon-hand-left:before { | |
content: "\e128"; | |
} | |
.glyphicon-hand-up:before { | |
content: "\e129"; | |
} | |
.glyphicon-hand-down:before { | |
content: "\e130"; | |
} | |
.glyphicon-circle-arrow-right:before { | |
content: "\e131"; | |
} | |
.glyphicon-circle-arrow-left:before { | |
content: "\e132"; | |
} | |
.glyphicon-circle-arrow-up:before { | |
content: "\e133"; | |
} | |
.glyphicon-circle-arrow-down:before { | |
content: "\e134"; | |
} | |
.glyphicon-globe:before { | |
content: "\e135"; | |
} | |
.glyphicon-wrench:before { | |
content: "\e136"; | |
} | |
.glyphicon-tasks:before { | |
content: "\e137"; | |
} | |
.glyphicon-filter:before { | |
content: "\e138"; | |
} | |
.glyphicon-briefcase:before { | |
content: "\e139"; | |
} | |
.glyphicon-fullscreen:before { | |
content: "\e140"; | |
} | |
.glyphicon-dashboard:before { | |
content: "\e141"; | |
} | |
.glyphicon-paperclip:before { | |
content: "\e142"; | |
} | |
.glyphicon-heart-empty:before { | |
content: "\e143"; | |
} | |
.glyphicon-link:before { | |
content: "\e144"; | |
} | |
.glyphicon-phone:before { | |
content: "\e145"; | |
} | |
.glyphicon-pushpin:before { | |
content: "\e146"; | |
} | |
.glyphicon-usd:before { | |
content: "\e148"; | |
} | |
.glyphicon-gbp:before { | |
content: "\e149"; | |
} | |
.glyphicon-sort:before { | |
content: "\e150"; | |
} | |
.glyphicon-sort-by-alphabet:before { | |
content: "\e151"; | |
} | |
.glyphicon-sort-by-alphabet-alt:before { | |
content: "\e152"; | |
} | |
.glyphicon-sort-by-order:before { | |
content: "\e153"; | |
} | |
.glyphicon-sort-by-order-alt:before { | |
content: "\e154"; | |
} | |
.glyphicon-sort-by-attributes:before { | |
content: "\e155"; | |
} | |
.glyphicon-sort-by-attributes-alt:before { | |
content: "\e156"; | |
} | |
.glyphicon-unchecked:before { | |
content: "\e157"; | |
} | |
.glyphicon-expand:before { | |
content: "\e158"; | |
} | |
.glyphicon-collapse-down:before { | |
content: "\e159"; | |
} | |
.glyphicon-collapse-up:before { | |
content: "\e160"; | |
} | |
.glyphicon-log-in:before { | |
content: "\e161"; | |
} | |
.glyphicon-flash:before { | |
content: "\e162"; | |
} | |
.glyphicon-log-out:before { | |
content: "\e163"; | |
} | |
.glyphicon-new-window:before { | |
content: "\e164"; | |
} | |
.glyphicon-record:before { | |
content: "\e165"; | |
} | |
.glyphicon-save:before { | |
content: "\e166"; | |
} | |
.glyphicon-open:before { | |
content: "\e167"; | |
} | |
.glyphicon-saved:before { | |
content: "\e168"; | |
} | |
.glyphicon-import:before { | |
content: "\e169"; | |
} | |
.glyphicon-export:before { | |
content: "\e170"; | |
} | |
.glyphicon-send:before { | |
content: "\e171"; | |
} | |
.glyphicon-floppy-disk:before { | |
content: "\e172"; | |
} | |
.glyphicon-floppy-saved:before { | |
content: "\e173"; | |
} | |
.glyphicon-floppy-remove:before { | |
content: "\e174"; | |
} | |
.glyphicon-floppy-save:before { | |
content: "\e175"; | |
} | |
.glyphicon-floppy-open:before { | |
content: "\e176"; | |
} | |
.glyphicon-credit-card:before { | |
content: "\e177"; | |
} | |
.glyphicon-transfer:before { | |
content: "\e178"; | |
} | |
.glyphicon-cutlery:before { | |
content: "\e179"; | |
} | |
.glyphicon-header:before { | |
content: "\e180"; | |
} | |
.glyphicon-compressed:before { | |
content: "\e181"; | |
} | |
.glyphicon-earphone:before { | |
content: "\e182"; | |
} | |
.glyphicon-phone-alt:before { | |
content: "\e183"; | |
} | |
.glyphicon-tower:before { | |
content: "\e184"; | |
} | |
.glyphicon-stats:before { | |
content: "\e185"; | |
} | |
.glyphicon-sd-video:before { | |
content: "\e186"; | |
} | |
.glyphicon-hd-video:before { | |
content: "\e187"; | |
} | |
.glyphicon-subtitles:before { | |
content: "\e188"; | |
} | |
.glyphicon-sound-stereo:before { | |
content: "\e189"; | |
} | |
.glyphicon-sound-dolby:before { | |
content: "\e190"; | |
} | |
.glyphicon-sound-5-1:before { | |
content: "\e191"; | |
} | |
.glyphicon-sound-6-1:before { | |
content: "\e192"; | |
} | |
.glyphicon-sound-7-1:before { | |
content: "\e193"; | |
} | |
.glyphicon-copyright-mark:before { | |
content: "\e194"; | |
} | |
.glyphicon-registration-mark:before { | |
content: "\e195"; | |
} | |
.glyphicon-cloud-download:before { | |
content: "\e197"; | |
} | |
.glyphicon-cloud-upload:before { | |
content: "\e198"; | |
} | |
.glyphicon-tree-conifer:before { | |
content: "\e199"; | |
} | |
.glyphicon-tree-deciduous:before { | |
content: "\e200"; | |
} | |
.glyphicon-cd:before { | |
content: "\e201"; | |
} | |
.glyphicon-save-file:before { | |
content: "\e202"; | |
} | |
.glyphicon-open-file:before { | |
content: "\e203"; | |
} | |
.glyphicon-level-up:before { | |
content: "\e204"; | |
} | |
.glyphicon-copy:before { | |
content: "\e205"; | |
} | |
.glyphicon-paste:before { | |
content: "\e206"; | |
} | |
.glyphicon-alert:before { | |
content: "\e209"; | |
} | |
.glyphicon-equalizer:before { | |
content: "\e210"; | |
} | |
.glyphicon-king:before { | |
content: "\e211"; | |
} | |
.glyphicon-queen:before { | |
content: "\e212"; | |
} | |
.glyphicon-pawn:before { | |
content: "\e213"; | |
} | |
.glyphicon-bishop:before { | |
content: "\e214"; | |
} | |
.glyphicon-knight:before { | |
content: "\e215"; | |
} | |
.glyphicon-baby-formula:before { | |
content: "\e216"; | |
} | |
.glyphicon-tent:before { | |
content: "\26fa"; | |
} | |
.glyphicon-blackboard:before { | |
content: "\e218"; | |
} | |
.glyphicon-bed:before { | |
content: "\e219"; | |
} | |
.glyphicon-apple:before { | |
content: "\f8ff"; | |
} | |
.glyphicon-erase:before { | |
content: "\e221"; | |
} | |
.glyphicon-hourglass:before { | |
content: "\231b"; | |
} | |
.glyphicon-lamp:before { | |
content: "\e223"; | |
} | |
.glyphicon-duplicate:before { | |
content: "\e224"; | |
} | |
.glyphicon-piggy-bank:before { | |
content: "\e225"; | |
} | |
.glyphicon-scissors:before { | |
content: "\e226"; | |
} | |
.glyphicon-bitcoin:before { | |
content: "\e227"; | |
} | |
.glyphicon-btc:before { | |
content: "\e227"; | |
} | |
.glyphicon-xbt:before { | |
content: "\e227"; | |
} | |
.glyphicon-yen:before { | |
content: "\00a5"; | |
} | |
.glyphicon-jpy:before { | |
content: "\00a5"; | |
} | |
.glyphicon-ruble:before { | |
content: "\20bd"; | |
} | |
.glyphicon-rub:before { | |
content: "\20bd"; | |
} | |
.glyphicon-scale:before { | |
content: "\e230"; | |
} | |
.glyphicon-ice-lolly:before { | |
content: "\e231"; | |
} | |
.glyphicon-ice-lolly-tasted:before { | |
content: "\e232"; | |
} | |
.glyphicon-education:before { | |
content: "\e233"; | |
} | |
.glyphicon-option-horizontal:before { | |
content: "\e234"; | |
} | |
.glyphicon-option-vertical:before { | |
content: "\e235"; | |
} | |
.glyphicon-menu-hamburger:before { | |
content: "\e236"; | |
} | |
.glyphicon-modal-window:before { | |
content: "\e237"; | |
} | |
.glyphicon-oil:before { | |
content: "\e238"; | |
} | |
.glyphicon-grain:before { | |
content: "\e239"; | |
} | |
.glyphicon-sunglasses:before { | |
content: "\e240"; | |
} | |
.glyphicon-text-size:before { | |
content: "\e241"; | |
} | |
.glyphicon-text-color:before { | |
content: "\e242"; | |
} | |
.glyphicon-text-background:before { | |
content: "\e243"; | |
} | |
.glyphicon-object-align-top:before { | |
content: "\e244"; | |
} | |
.glyphicon-object-align-bottom:before { | |
content: "\e245"; | |
} | |
.glyphicon-object-align-horizontal:before { | |
content: "\e246"; | |
} | |
.glyphicon-object-align-left:before { | |
content: "\e247"; | |
} | |
.glyphicon-object-align-vertical:before { | |
content: "\e248"; | |
} | |
.glyphicon-object-align-right:before { | |
content: "\e249"; | |
} | |
.glyphicon-triangle-right:before { | |
content: "\e250"; | |
} | |
.glyphicon-triangle-left:before { | |
content: "\e251"; | |
} | |
.glyphicon-triangle-bottom:before { | |
content: "\e252"; | |
} | |
.glyphicon-triangle-top:before { | |
content: "\e253"; | |
} | |
.glyphicon-console:before { | |
content: "\e254"; | |
} | |
.glyphicon-superscript:before { | |
content: "\e255"; | |
} | |
.glyphicon-subscript:before { | |
content: "\e256"; | |
} | |
.glyphicon-menu-left:before { | |
content: "\e257"; | |
} | |
.glyphicon-menu-right:before { | |
content: "\e258"; | |
} | |
.glyphicon-menu-down:before { | |
content: "\e259"; | |
} | |
.glyphicon-menu-up:before { | |
content: "\e260"; | |
} | |
* { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
*:before, | |
*:after { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
html { | |
font-size: 10px; | |
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); | |
} | |
body { | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-size: 13px; | |
line-height: 1.42857143; | |
color: #000; | |
background-color: #fff; | |
} | |
input, | |
button, | |
select, | |
textarea { | |
font-family: inherit; | |
font-size: inherit; | |
line-height: inherit; | |
} | |
a { | |
color: #337ab7; | |
text-decoration: none; | |
} | |
a:hover, | |
a:focus { | |
color: #23527c; | |
text-decoration: underline; | |
} | |
a:focus { | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
figure { | |
margin: 0; | |
} | |
img { | |
vertical-align: middle; | |
} | |
.img-responsive, | |
.thumbnail > img, | |
.thumbnail a > img, | |
.carousel-inner > .item > img, | |
.carousel-inner > .item > a > img { | |
display: block; | |
max-width: 100%; | |
height: auto; | |
} | |
.img-rounded { | |
border-radius: 3px; | |
} | |
.img-thumbnail { | |
padding: 4px; | |
line-height: 1.42857143; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
border-radius: 2px; | |
-webkit-transition: all 0.2s ease-in-out; | |
-o-transition: all 0.2s ease-in-out; | |
transition: all 0.2s ease-in-out; | |
display: inline-block; | |
max-width: 100%; | |
height: auto; | |
} | |
.img-circle { | |
border-radius: 50%; | |
} | |
hr { | |
margin-top: 18px; | |
margin-bottom: 18px; | |
border: 0; | |
border-top: 1px solid #eeeeee; | |
} | |
.sr-only { | |
position: absolute; | |
width: 1px; | |
height: 1px; | |
margin: -1px; | |
padding: 0; | |
overflow: hidden; | |
clip: rect(0, 0, 0, 0); | |
border: 0; | |
} | |
.sr-only-focusable:active, | |
.sr-only-focusable:focus { | |
position: static; | |
width: auto; | |
height: auto; | |
margin: 0; | |
overflow: visible; | |
clip: auto; | |
} | |
[role="button"] { | |
cursor: pointer; | |
} | |
h1, | |
h2, | |
h3, | |
h4, | |
h5, | |
h6, | |
.h1, | |
.h2, | |
.h3, | |
.h4, | |
.h5, | |
.h6 { | |
font-family: inherit; | |
font-weight: 500; | |
line-height: 1.1; | |
color: inherit; | |
} | |
h1 small, | |
h2 small, | |
h3 small, | |
h4 small, | |
h5 small, | |
h6 small, | |
.h1 small, | |
.h2 small, | |
.h3 small, | |
.h4 small, | |
.h5 small, | |
.h6 small, | |
h1 .small, | |
h2 .small, | |
h3 .small, | |
h4 .small, | |
h5 .small, | |
h6 .small, | |
.h1 .small, | |
.h2 .small, | |
.h3 .small, | |
.h4 .small, | |
.h5 .small, | |
.h6 .small { | |
font-weight: normal; | |
line-height: 1; | |
color: #777777; | |
} | |
h1, | |
.h1, | |
h2, | |
.h2, | |
h3, | |
.h3 { | |
margin-top: 18px; | |
margin-bottom: 9px; | |
} | |
h1 small, | |
.h1 small, | |
h2 small, | |
.h2 small, | |
h3 small, | |
.h3 small, | |
h1 .small, | |
.h1 .small, | |
h2 .small, | |
.h2 .small, | |
h3 .small, | |
.h3 .small { | |
font-size: 65%; | |
} | |
h4, | |
.h4, | |
h5, | |
.h5, | |
h6, | |
.h6 { | |
margin-top: 9px; | |
margin-bottom: 9px; | |
} | |
h4 small, | |
.h4 small, | |
h5 small, | |
.h5 small, | |
h6 small, | |
.h6 small, | |
h4 .small, | |
.h4 .small, | |
h5 .small, | |
.h5 .small, | |
h6 .small, | |
.h6 .small { | |
font-size: 75%; | |
} | |
h1, | |
.h1 { | |
font-size: 33px; | |
} | |
h2, | |
.h2 { | |
font-size: 27px; | |
} | |
h3, | |
.h3 { | |
font-size: 23px; | |
} | |
h4, | |
.h4 { | |
font-size: 17px; | |
} | |
h5, | |
.h5 { | |
font-size: 13px; | |
} | |
h6, | |
.h6 { | |
font-size: 12px; | |
} | |
p { | |
margin: 0 0 9px; | |
} | |
.lead { | |
margin-bottom: 18px; | |
font-size: 14px; | |
font-weight: 300; | |
line-height: 1.4; | |
} | |
@media (min-width: 768px) { | |
.lead { | |
font-size: 19.5px; | |
} | |
} | |
small, | |
.small { | |
font-size: 92%; | |
} | |
mark, | |
.mark { | |
background-color: #fcf8e3; | |
padding: .2em; | |
} | |
.text-left { | |
text-align: left; | |
} | |
.text-right { | |
text-align: right; | |
} | |
.text-center { | |
text-align: center; | |
} | |
.text-justify { | |
text-align: justify; | |
} | |
.text-nowrap { | |
white-space: nowrap; | |
} | |
.text-lowercase { | |
text-transform: lowercase; | |
} | |
.text-uppercase { | |
text-transform: uppercase; | |
} | |
.text-capitalize { | |
text-transform: capitalize; | |
} | |
.text-muted { | |
color: #777777; | |
} | |
.text-primary { | |
color: #337ab7; | |
} | |
a.text-primary:hover, | |
a.text-primary:focus { | |
color: #286090; | |
} | |
.text-success { | |
color: #3c763d; | |
} | |
a.text-success:hover, | |
a.text-success:focus { | |
color: #2b542c; | |
} | |
.text-info { | |
color: #31708f; | |
} | |
a.text-info:hover, | |
a.text-info:focus { | |
color: #245269; | |
} | |
.text-warning { | |
color: #8a6d3b; | |
} | |
a.text-warning:hover, | |
a.text-warning:focus { | |
color: #66512c; | |
} | |
.text-danger { | |
color: #a94442; | |
} | |
a.text-danger:hover, | |
a.text-danger:focus { | |
color: #843534; | |
} | |
.bg-primary { | |
color: #fff; | |
background-color: #337ab7; | |
} | |
a.bg-primary:hover, | |
a.bg-primary:focus { | |
background-color: #286090; | |
} | |
.bg-success { | |
background-color: #dff0d8; | |
} | |
a.bg-success:hover, | |
a.bg-success:focus { | |
background-color: #c1e2b3; | |
} | |
.bg-info { | |
background-color: #d9edf7; | |
} | |
a.bg-info:hover, | |
a.bg-info:focus { | |
background-color: #afd9ee; | |
} | |
.bg-warning { | |
background-color: #fcf8e3; | |
} | |
a.bg-warning:hover, | |
a.bg-warning:focus { | |
background-color: #f7ecb5; | |
} | |
.bg-danger { | |
background-color: #f2dede; | |
} | |
a.bg-danger:hover, | |
a.bg-danger:focus { | |
background-color: #e4b9b9; | |
} | |
.page-header { | |
padding-bottom: 8px; | |
margin: 36px 0 18px; | |
border-bottom: 1px solid #eeeeee; | |
} | |
ul, | |
ol { | |
margin-top: 0; | |
margin-bottom: 9px; | |
} | |
ul ul, | |
ol ul, | |
ul ol, | |
ol ol { | |
margin-bottom: 0; | |
} | |
.list-unstyled { | |
padding-left: 0; | |
list-style: none; | |
} | |
.list-inline { | |
padding-left: 0; | |
list-style: none; | |
margin-left: -5px; | |
} | |
.list-inline > li { | |
display: inline-block; | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
dl { | |
margin-top: 0; | |
margin-bottom: 18px; | |
} | |
dt, | |
dd { | |
line-height: 1.42857143; | |
} | |
dt { | |
font-weight: bold; | |
} | |
dd { | |
margin-left: 0; | |
} | |
@media (min-width: 541px) { | |
.dl-horizontal dt { | |
float: left; | |
width: 160px; | |
clear: left; | |
text-align: right; | |
overflow: hidden; | |
text-overflow: ellipsis; | |
white-space: nowrap; | |
} | |
.dl-horizontal dd { | |
margin-left: 180px; | |
} | |
} | |
abbr[title], | |
abbr[data-original-title] { | |
cursor: help; | |
border-bottom: 1px dotted #777777; | |
} | |
.initialism { | |
font-size: 90%; | |
text-transform: uppercase; | |
} | |
blockquote { | |
padding: 9px 18px; | |
margin: 0 0 18px; | |
font-size: inherit; | |
border-left: 5px solid #eeeeee; | |
} | |
blockquote p:last-child, | |
blockquote ul:last-child, | |
blockquote ol:last-child { | |
margin-bottom: 0; | |
} | |
blockquote footer, | |
blockquote small, | |
blockquote .small { | |
display: block; | |
font-size: 80%; | |
line-height: 1.42857143; | |
color: #777777; | |
} | |
blockquote footer:before, | |
blockquote small:before, | |
blockquote .small:before { | |
content: '\2014 \00A0'; | |
} | |
.blockquote-reverse, | |
blockquote.pull-right { | |
padding-right: 15px; | |
padding-left: 0; | |
border-right: 5px solid #eeeeee; | |
border-left: 0; | |
text-align: right; | |
} | |
.blockquote-reverse footer:before, | |
blockquote.pull-right footer:before, | |
.blockquote-reverse small:before, | |
blockquote.pull-right small:before, | |
.blockquote-reverse .small:before, | |
blockquote.pull-right .small:before { | |
content: ''; | |
} | |
.blockquote-reverse footer:after, | |
blockquote.pull-right footer:after, | |
.blockquote-reverse small:after, | |
blockquote.pull-right small:after, | |
.blockquote-reverse .small:after, | |
blockquote.pull-right .small:after { | |
content: '\00A0 \2014'; | |
} | |
address { | |
margin-bottom: 18px; | |
font-style: normal; | |
line-height: 1.42857143; | |
} | |
code, | |
kbd, | |
pre, | |
samp { | |
font-family: monospace; | |
} | |
code { | |
padding: 2px 4px; | |
font-size: 90%; | |
color: #c7254e; | |
background-color: #f9f2f4; | |
border-radius: 2px; | |
} | |
kbd { | |
padding: 2px 4px; | |
font-size: 90%; | |
color: #888; | |
background-color: transparent; | |
border-radius: 1px; | |
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); | |
} | |
kbd kbd { | |
padding: 0; | |
font-size: 100%; | |
font-weight: bold; | |
box-shadow: none; | |
} | |
pre { | |
display: block; | |
padding: 8.5px; | |
margin: 0 0 9px; | |
font-size: 12px; | |
line-height: 1.42857143; | |
word-break: break-all; | |
word-wrap: break-word; | |
color: #333333; | |
background-color: #f5f5f5; | |
border: 1px solid #ccc; | |
border-radius: 2px; | |
} | |
pre code { | |
padding: 0; | |
font-size: inherit; | |
color: inherit; | |
white-space: pre-wrap; | |
background-color: transparent; | |
border-radius: 0; | |
} | |
.pre-scrollable { | |
max-height: 340px; | |
overflow-y: scroll; | |
} | |
.container { | |
margin-right: auto; | |
margin-left: auto; | |
padding-left: 0px; | |
padding-right: 0px; | |
} | |
@media (min-width: 768px) { | |
.container { | |
width: 768px; | |
} | |
} | |
@media (min-width: 992px) { | |
.container { | |
width: 940px; | |
} | |
} | |
@media (min-width: 1200px) { | |
.container { | |
width: 1140px; | |
} | |
} | |
.container-fluid { | |
margin-right: auto; | |
margin-left: auto; | |
padding-left: 0px; | |
padding-right: 0px; | |
} | |
.row { | |
margin-left: 0px; | |
margin-right: 0px; | |
} | |
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { | |
position: relative; | |
min-height: 1px; | |
padding-left: 0px; | |
padding-right: 0px; | |
} | |
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { | |
float: left; | |
} | |
.col-xs-12 { | |
width: 100%; | |
} | |
.col-xs-11 { | |
width: 91.66666667%; | |
} | |
.col-xs-10 { | |
width: 83.33333333%; | |
} | |
.col-xs-9 { | |
width: 75%; | |
} | |
.col-xs-8 { | |
width: 66.66666667%; | |
} | |
.col-xs-7 { | |
width: 58.33333333%; | |
} | |
.col-xs-6 { | |
width: 50%; | |
} | |
.col-xs-5 { | |
width: 41.66666667%; | |
} | |
.col-xs-4 { | |
width: 33.33333333%; | |
} | |
.col-xs-3 { | |
width: 25%; | |
} | |
.col-xs-2 { | |
width: 16.66666667%; | |
} | |
.col-xs-1 { | |
width: 8.33333333%; | |
} | |
.col-xs-pull-12 { | |
right: 100%; | |
} | |
.col-xs-pull-11 { | |
right: 91.66666667%; | |
} | |
.col-xs-pull-10 { | |
right: 83.33333333%; | |
} | |
.col-xs-pull-9 { | |
right: 75%; | |
} | |
.col-xs-pull-8 { | |
right: 66.66666667%; | |
} | |
.col-xs-pull-7 { | |
right: 58.33333333%; | |
} | |
.col-xs-pull-6 { | |
right: 50%; | |
} | |
.col-xs-pull-5 { | |
right: 41.66666667%; | |
} | |
.col-xs-pull-4 { | |
right: 33.33333333%; | |
} | |
.col-xs-pull-3 { | |
right: 25%; | |
} | |
.col-xs-pull-2 { | |
right: 16.66666667%; | |
} | |
.col-xs-pull-1 { | |
right: 8.33333333%; | |
} | |
.col-xs-pull-0 { | |
right: auto; | |
} | |
.col-xs-push-12 { | |
left: 100%; | |
} | |
.col-xs-push-11 { | |
left: 91.66666667%; | |
} | |
.col-xs-push-10 { | |
left: 83.33333333%; | |
} | |
.col-xs-push-9 { | |
left: 75%; | |
} | |
.col-xs-push-8 { | |
left: 66.66666667%; | |
} | |
.col-xs-push-7 { | |
left: 58.33333333%; | |
} | |
.col-xs-push-6 { | |
left: 50%; | |
} | |
.col-xs-push-5 { | |
left: 41.66666667%; | |
} | |
.col-xs-push-4 { | |
left: 33.33333333%; | |
} | |
.col-xs-push-3 { | |
left: 25%; | |
} | |
.col-xs-push-2 { | |
left: 16.66666667%; | |
} | |
.col-xs-push-1 { | |
left: 8.33333333%; | |
} | |
.col-xs-push-0 { | |
left: auto; | |
} | |
.col-xs-offset-12 { | |
margin-left: 100%; | |
} | |
.col-xs-offset-11 { | |
margin-left: 91.66666667%; | |
} | |
.col-xs-offset-10 { | |
margin-left: 83.33333333%; | |
} | |
.col-xs-offset-9 { | |
margin-left: 75%; | |
} | |
.col-xs-offset-8 { | |
margin-left: 66.66666667%; | |
} | |
.col-xs-offset-7 { | |
margin-left: 58.33333333%; | |
} | |
.col-xs-offset-6 { | |
margin-left: 50%; | |
} | |
.col-xs-offset-5 { | |
margin-left: 41.66666667%; | |
} | |
.col-xs-offset-4 { | |
margin-left: 33.33333333%; | |
} | |
.col-xs-offset-3 { | |
margin-left: 25%; | |
} | |
.col-xs-offset-2 { | |
margin-left: 16.66666667%; | |
} | |
.col-xs-offset-1 { | |
margin-left: 8.33333333%; | |
} | |
.col-xs-offset-0 { | |
margin-left: 0%; | |
} | |
@media (min-width: 768px) { | |
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { | |
float: left; | |
} | |
.col-sm-12 { | |
width: 100%; | |
} | |
.col-sm-11 { | |
width: 91.66666667%; | |
} | |
.col-sm-10 { | |
width: 83.33333333%; | |
} | |
.col-sm-9 { | |
width: 75%; | |
} | |
.col-sm-8 { | |
width: 66.66666667%; | |
} | |
.col-sm-7 { | |
width: 58.33333333%; | |
} | |
.col-sm-6 { | |
width: 50%; | |
} | |
.col-sm-5 { | |
width: 41.66666667%; | |
} | |
.col-sm-4 { | |
width: 33.33333333%; | |
} | |
.col-sm-3 { | |
width: 25%; | |
} | |
.col-sm-2 { | |
width: 16.66666667%; | |
} | |
.col-sm-1 { | |
width: 8.33333333%; | |
} | |
.col-sm-pull-12 { | |
right: 100%; | |
} | |
.col-sm-pull-11 { | |
right: 91.66666667%; | |
} | |
.col-sm-pull-10 { | |
right: 83.33333333%; | |
} | |
.col-sm-pull-9 { | |
right: 75%; | |
} | |
.col-sm-pull-8 { | |
right: 66.66666667%; | |
} | |
.col-sm-pull-7 { | |
right: 58.33333333%; | |
} | |
.col-sm-pull-6 { | |
right: 50%; | |
} | |
.col-sm-pull-5 { | |
right: 41.66666667%; | |
} | |
.col-sm-pull-4 { | |
right: 33.33333333%; | |
} | |
.col-sm-pull-3 { | |
right: 25%; | |
} | |
.col-sm-pull-2 { | |
right: 16.66666667%; | |
} | |
.col-sm-pull-1 { | |
right: 8.33333333%; | |
} | |
.col-sm-pull-0 { | |
right: auto; | |
} | |
.col-sm-push-12 { | |
left: 100%; | |
} | |
.col-sm-push-11 { | |
left: 91.66666667%; | |
} | |
.col-sm-push-10 { | |
left: 83.33333333%; | |
} | |
.col-sm-push-9 { | |
left: 75%; | |
} | |
.col-sm-push-8 { | |
left: 66.66666667%; | |
} | |
.col-sm-push-7 { | |
left: 58.33333333%; | |
} | |
.col-sm-push-6 { | |
left: 50%; | |
} | |
.col-sm-push-5 { | |
left: 41.66666667%; | |
} | |
.col-sm-push-4 { | |
left: 33.33333333%; | |
} | |
.col-sm-push-3 { | |
left: 25%; | |
} | |
.col-sm-push-2 { | |
left: 16.66666667%; | |
} | |
.col-sm-push-1 { | |
left: 8.33333333%; | |
} | |
.col-sm-push-0 { | |
left: auto; | |
} | |
.col-sm-offset-12 { | |
margin-left: 100%; | |
} | |
.col-sm-offset-11 { | |
margin-left: 91.66666667%; | |
} | |
.col-sm-offset-10 { | |
margin-left: 83.33333333%; | |
} | |
.col-sm-offset-9 { | |
margin-left: 75%; | |
} | |
.col-sm-offset-8 { | |
margin-left: 66.66666667%; | |
} | |
.col-sm-offset-7 { | |
margin-left: 58.33333333%; | |
} | |
.col-sm-offset-6 { | |
margin-left: 50%; | |
} | |
.col-sm-offset-5 { | |
margin-left: 41.66666667%; | |
} | |
.col-sm-offset-4 { | |
margin-left: 33.33333333%; | |
} | |
.col-sm-offset-3 { | |
margin-left: 25%; | |
} | |
.col-sm-offset-2 { | |
margin-left: 16.66666667%; | |
} | |
.col-sm-offset-1 { | |
margin-left: 8.33333333%; | |
} | |
.col-sm-offset-0 { | |
margin-left: 0%; | |
} | |
} | |
@media (min-width: 992px) { | |
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { | |
float: left; | |
} | |
.col-md-12 { | |
width: 100%; | |
} | |
.col-md-11 { | |
width: 91.66666667%; | |
} | |
.col-md-10 { | |
width: 83.33333333%; | |
} | |
.col-md-9 { | |
width: 75%; | |
} | |
.col-md-8 { | |
width: 66.66666667%; | |
} | |
.col-md-7 { | |
width: 58.33333333%; | |
} | |
.col-md-6 { | |
width: 50%; | |
} | |
.col-md-5 { | |
width: 41.66666667%; | |
} | |
.col-md-4 { | |
width: 33.33333333%; | |
} | |
.col-md-3 { | |
width: 25%; | |
} | |
.col-md-2 { | |
width: 16.66666667%; | |
} | |
.col-md-1 { | |
width: 8.33333333%; | |
} | |
.col-md-pull-12 { | |
right: 100%; | |
} | |
.col-md-pull-11 { | |
right: 91.66666667%; | |
} | |
.col-md-pull-10 { | |
right: 83.33333333%; | |
} | |
.col-md-pull-9 { | |
right: 75%; | |
} | |
.col-md-pull-8 { | |
right: 66.66666667%; | |
} | |
.col-md-pull-7 { | |
right: 58.33333333%; | |
} | |
.col-md-pull-6 { | |
right: 50%; | |
} | |
.col-md-pull-5 { | |
right: 41.66666667%; | |
} | |
.col-md-pull-4 { | |
right: 33.33333333%; | |
} | |
.col-md-pull-3 { | |
right: 25%; | |
} | |
.col-md-pull-2 { | |
right: 16.66666667%; | |
} | |
.col-md-pull-1 { | |
right: 8.33333333%; | |
} | |
.col-md-pull-0 { | |
right: auto; | |
} | |
.col-md-push-12 { | |
left: 100%; | |
} | |
.col-md-push-11 { | |
left: 91.66666667%; | |
} | |
.col-md-push-10 { | |
left: 83.33333333%; | |
} | |
.col-md-push-9 { | |
left: 75%; | |
} | |
.col-md-push-8 { | |
left: 66.66666667%; | |
} | |
.col-md-push-7 { | |
left: 58.33333333%; | |
} | |
.col-md-push-6 { | |
left: 50%; | |
} | |
.col-md-push-5 { | |
left: 41.66666667%; | |
} | |
.col-md-push-4 { | |
left: 33.33333333%; | |
} | |
.col-md-push-3 { | |
left: 25%; | |
} | |
.col-md-push-2 { | |
left: 16.66666667%; | |
} | |
.col-md-push-1 { | |
left: 8.33333333%; | |
} | |
.col-md-push-0 { | |
left: auto; | |
} | |
.col-md-offset-12 { | |
margin-left: 100%; | |
} | |
.col-md-offset-11 { | |
margin-left: 91.66666667%; | |
} | |
.col-md-offset-10 { | |
margin-left: 83.33333333%; | |
} | |
.col-md-offset-9 { | |
margin-left: 75%; | |
} | |
.col-md-offset-8 { | |
margin-left: 66.66666667%; | |
} | |
.col-md-offset-7 { | |
margin-left: 58.33333333%; | |
} | |
.col-md-offset-6 { | |
margin-left: 50%; | |
} | |
.col-md-offset-5 { | |
margin-left: 41.66666667%; | |
} | |
.col-md-offset-4 { | |
margin-left: 33.33333333%; | |
} | |
.col-md-offset-3 { | |
margin-left: 25%; | |
} | |
.col-md-offset-2 { | |
margin-left: 16.66666667%; | |
} | |
.col-md-offset-1 { | |
margin-left: 8.33333333%; | |
} | |
.col-md-offset-0 { | |
margin-left: 0%; | |
} | |
} | |
@media (min-width: 1200px) { | |
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { | |
float: left; | |
} | |
.col-lg-12 { | |
width: 100%; | |
} | |
.col-lg-11 { | |
width: 91.66666667%; | |
} | |
.col-lg-10 { | |
width: 83.33333333%; | |
} | |
.col-lg-9 { | |
width: 75%; | |
} | |
.col-lg-8 { | |
width: 66.66666667%; | |
} | |
.col-lg-7 { | |
width: 58.33333333%; | |
} | |
.col-lg-6 { | |
width: 50%; | |
} | |
.col-lg-5 { | |
width: 41.66666667%; | |
} | |
.col-lg-4 { | |
width: 33.33333333%; | |
} | |
.col-lg-3 { | |
width: 25%; | |
} | |
.col-lg-2 { | |
width: 16.66666667%; | |
} | |
.col-lg-1 { | |
width: 8.33333333%; | |
} | |
.col-lg-pull-12 { | |
right: 100%; | |
} | |
.col-lg-pull-11 { | |
right: 91.66666667%; | |
} | |
.col-lg-pull-10 { | |
right: 83.33333333%; | |
} | |
.col-lg-pull-9 { | |
right: 75%; | |
} | |
.col-lg-pull-8 { | |
right: 66.66666667%; | |
} | |
.col-lg-pull-7 { | |
right: 58.33333333%; | |
} | |
.col-lg-pull-6 { | |
right: 50%; | |
} | |
.col-lg-pull-5 { | |
right: 41.66666667%; | |
} | |
.col-lg-pull-4 { | |
right: 33.33333333%; | |
} | |
.col-lg-pull-3 { | |
right: 25%; | |
} | |
.col-lg-pull-2 { | |
right: 16.66666667%; | |
} | |
.col-lg-pull-1 { | |
right: 8.33333333%; | |
} | |
.col-lg-pull-0 { | |
right: auto; | |
} | |
.col-lg-push-12 { | |
left: 100%; | |
} | |
.col-lg-push-11 { | |
left: 91.66666667%; | |
} | |
.col-lg-push-10 { | |
left: 83.33333333%; | |
} | |
.col-lg-push-9 { | |
left: 75%; | |
} | |
.col-lg-push-8 { | |
left: 66.66666667%; | |
} | |
.col-lg-push-7 { | |
left: 58.33333333%; | |
} | |
.col-lg-push-6 { | |
left: 50%; | |
} | |
.col-lg-push-5 { | |
left: 41.66666667%; | |
} | |
.col-lg-push-4 { | |
left: 33.33333333%; | |
} | |
.col-lg-push-3 { | |
left: 25%; | |
} | |
.col-lg-push-2 { | |
left: 16.66666667%; | |
} | |
.col-lg-push-1 { | |
left: 8.33333333%; | |
} | |
.col-lg-push-0 { | |
left: auto; | |
} | |
.col-lg-offset-12 { | |
margin-left: 100%; | |
} | |
.col-lg-offset-11 { | |
margin-left: 91.66666667%; | |
} | |
.col-lg-offset-10 { | |
margin-left: 83.33333333%; | |
} | |
.col-lg-offset-9 { | |
margin-left: 75%; | |
} | |
.col-lg-offset-8 { | |
margin-left: 66.66666667%; | |
} | |
.col-lg-offset-7 { | |
margin-left: 58.33333333%; | |
} | |
.col-lg-offset-6 { | |
margin-left: 50%; | |
} | |
.col-lg-offset-5 { | |
margin-left: 41.66666667%; | |
} | |
.col-lg-offset-4 { | |
margin-left: 33.33333333%; | |
} | |
.col-lg-offset-3 { | |
margin-left: 25%; | |
} | |
.col-lg-offset-2 { | |
margin-left: 16.66666667%; | |
} | |
.col-lg-offset-1 { | |
margin-left: 8.33333333%; | |
} | |
.col-lg-offset-0 { | |
margin-left: 0%; | |
} | |
} | |
table { | |
background-color: transparent; | |
} | |
caption { | |
padding-top: 8px; | |
padding-bottom: 8px; | |
color: #777777; | |
text-align: left; | |
} | |
th { | |
text-align: left; | |
} | |
.table { | |
width: 100%; | |
max-width: 100%; | |
margin-bottom: 18px; | |
} | |
.table > thead > tr > th, | |
.table > tbody > tr > th, | |
.table > tfoot > tr > th, | |
.table > thead > tr > td, | |
.table > tbody > tr > td, | |
.table > tfoot > tr > td { | |
padding: 8px; | |
line-height: 1.42857143; | |
vertical-align: top; | |
border-top: 1px solid #ddd; | |
} | |
.table > thead > tr > th { | |
vertical-align: bottom; | |
border-bottom: 2px solid #ddd; | |
} | |
.table > caption + thead > tr:first-child > th, | |
.table > colgroup + thead > tr:first-child > th, | |
.table > thead:first-child > tr:first-child > th, | |
.table > caption + thead > tr:first-child > td, | |
.table > colgroup + thead > tr:first-child > td, | |
.table > thead:first-child > tr:first-child > td { | |
border-top: 0; | |
} | |
.table > tbody + tbody { | |
border-top: 2px solid #ddd; | |
} | |
.table .table { | |
background-color: #fff; | |
} | |
.table-condensed > thead > tr > th, | |
.table-condensed > tbody > tr > th, | |
.table-condensed > tfoot > tr > th, | |
.table-condensed > thead > tr > td, | |
.table-condensed > tbody > tr > td, | |
.table-condensed > tfoot > tr > td { | |
padding: 5px; | |
} | |
.table-bordered { | |
border: 1px solid #ddd; | |
} | |
.table-bordered > thead > tr > th, | |
.table-bordered > tbody > tr > th, | |
.table-bordered > tfoot > tr > th, | |
.table-bordered > thead > tr > td, | |
.table-bordered > tbody > tr > td, | |
.table-bordered > tfoot > tr > td { | |
border: 1px solid #ddd; | |
} | |
.table-bordered > thead > tr > th, | |
.table-bordered > thead > tr > td { | |
border-bottom-width: 2px; | |
} | |
.table-striped > tbody > tr:nth-of-type(odd) { | |
background-color: #f9f9f9; | |
} | |
.table-hover > tbody > tr:hover { | |
background-color: #f5f5f5; | |
} | |
table col[class*="col-"] { | |
position: static; | |
float: none; | |
display: table-column; | |
} | |
table td[class*="col-"], | |
table th[class*="col-"] { | |
position: static; | |
float: none; | |
display: table-cell; | |
} | |
.table > thead > tr > td.active, | |
.table > tbody > tr > td.active, | |
.table > tfoot > tr > td.active, | |
.table > thead > tr > th.active, | |
.table > tbody > tr > th.active, | |
.table > tfoot > tr > th.active, | |
.table > thead > tr.active > td, | |
.table > tbody > tr.active > td, | |
.table > tfoot > tr.active > td, | |
.table > thead > tr.active > th, | |
.table > tbody > tr.active > th, | |
.table > tfoot > tr.active > th { | |
background-color: #f5f5f5; | |
} | |
.table-hover > tbody > tr > td.active:hover, | |
.table-hover > tbody > tr > th.active:hover, | |
.table-hover > tbody > tr.active:hover > td, | |
.table-hover > tbody > tr:hover > .active, | |
.table-hover > tbody > tr.active:hover > th { | |
background-color: #e8e8e8; | |
} | |
.table > thead > tr > td.success, | |
.table > tbody > tr > td.success, | |
.table > tfoot > tr > td.success, | |
.table > thead > tr > th.success, | |
.table > tbody > tr > th.success, | |
.table > tfoot > tr > th.success, | |
.table > thead > tr.success > td, | |
.table > tbody > tr.success > td, | |
.table > tfoot > tr.success > td, | |
.table > thead > tr.success > th, | |
.table > tbody > tr.success > th, | |
.table > tfoot > tr.success > th { | |
background-color: #dff0d8; | |
} | |
.table-hover > tbody > tr > td.success:hover, | |
.table-hover > tbody > tr > th.success:hover, | |
.table-hover > tbody > tr.success:hover > td, | |
.table-hover > tbody > tr:hover > .success, | |
.table-hover > tbody > tr.success:hover > th { | |
background-color: #d0e9c6; | |
} | |
.table > thead > tr > td.info, | |
.table > tbody > tr > td.info, | |
.table > tfoot > tr > td.info, | |
.table > thead > tr > th.info, | |
.table > tbody > tr > th.info, | |
.table > tfoot > tr > th.info, | |
.table > thead > tr.info > td, | |
.table > tbody > tr.info > td, | |
.table > tfoot > tr.info > td, | |
.table > thead > tr.info > th, | |
.table > tbody > tr.info > th, | |
.table > tfoot > tr.info > th { | |
background-color: #d9edf7; | |
} | |
.table-hover > tbody > tr > td.info:hover, | |
.table-hover > tbody > tr > th.info:hover, | |
.table-hover > tbody > tr.info:hover > td, | |
.table-hover > tbody > tr:hover > .info, | |
.table-hover > tbody > tr.info:hover > th { | |
background-color: #c4e3f3; | |
} | |
.table > thead > tr > td.warning, | |
.table > tbody > tr > td.warning, | |
.table > tfoot > tr > td.warning, | |
.table > thead > tr > th.warning, | |
.table > tbody > tr > th.warning, | |
.table > tfoot > tr > th.warning, | |
.table > thead > tr.warning > td, | |
.table > tbody > tr.warning > td, | |
.table > tfoot > tr.warning > td, | |
.table > thead > tr.warning > th, | |
.table > tbody > tr.warning > th, | |
.table > tfoot > tr.warning > th { | |
background-color: #fcf8e3; | |
} | |
.table-hover > tbody > tr > td.warning:hover, | |
.table-hover > tbody > tr > th.warning:hover, | |
.table-hover > tbody > tr.warning:hover > td, | |
.table-hover > tbody > tr:hover > .warning, | |
.table-hover > tbody > tr.warning:hover > th { | |
background-color: #faf2cc; | |
} | |
.table > thead > tr > td.danger, | |
.table > tbody > tr > td.danger, | |
.table > tfoot > tr > td.danger, | |
.table > thead > tr > th.danger, | |
.table > tbody > tr > th.danger, | |
.table > tfoot > tr > th.danger, | |
.table > thead > tr.danger > td, | |
.table > tbody > tr.danger > td, | |
.table > tfoot > tr.danger > td, | |
.table > thead > tr.danger > th, | |
.table > tbody > tr.danger > th, | |
.table > tfoot > tr.danger > th { | |
background-color: #f2dede; | |
} | |
.table-hover > tbody > tr > td.danger:hover, | |
.table-hover > tbody > tr > th.danger:hover, | |
.table-hover > tbody > tr.danger:hover > td, | |
.table-hover > tbody > tr:hover > .danger, | |
.table-hover > tbody > tr.danger:hover > th { | |
background-color: #ebcccc; | |
} | |
.table-responsive { | |
overflow-x: auto; | |
min-height: 0.01%; | |
} | |
@media screen and (max-width: 767px) { | |
.table-responsive { | |
width: 100%; | |
margin-bottom: 13.5px; | |
overflow-y: hidden; | |
-ms-overflow-style: -ms-autohiding-scrollbar; | |
border: 1px solid #ddd; | |
} | |
.table-responsive > .table { | |
margin-bottom: 0; | |
} | |
.table-responsive > .table > thead > tr > th, | |
.table-responsive > .table > tbody > tr > th, | |
.table-responsive > .table > tfoot > tr > th, | |
.table-responsive > .table > thead > tr > td, | |
.table-responsive > .table > tbody > tr > td, | |
.table-responsive > .table > tfoot > tr > td { | |
white-space: nowrap; | |
} | |
.table-responsive > .table-bordered { | |
border: 0; | |
} | |
.table-responsive > .table-bordered > thead > tr > th:first-child, | |
.table-responsive > .table-bordered > tbody > tr > th:first-child, | |
.table-responsive > .table-bordered > tfoot > tr > th:first-child, | |
.table-responsive > .table-bordered > thead > tr > td:first-child, | |
.table-responsive > .table-bordered > tbody > tr > td:first-child, | |
.table-responsive > .table-bordered > tfoot > tr > td:first-child { | |
border-left: 0; | |
} | |
.table-responsive > .table-bordered > thead > tr > th:last-child, | |
.table-responsive > .table-bordered > tbody > tr > th:last-child, | |
.table-responsive > .table-bordered > tfoot > tr > th:last-child, | |
.table-responsive > .table-bordered > thead > tr > td:last-child, | |
.table-responsive > .table-bordered > tbody > tr > td:last-child, | |
.table-responsive > .table-bordered > tfoot > tr > td:last-child { | |
border-right: 0; | |
} | |
.table-responsive > .table-bordered > tbody > tr:last-child > th, | |
.table-responsive > .table-bordered > tfoot > tr:last-child > th, | |
.table-responsive > .table-bordered > tbody > tr:last-child > td, | |
.table-responsive > .table-bordered > tfoot > tr:last-child > td { | |
border-bottom: 0; | |
} | |
} | |
fieldset { | |
padding: 0; | |
margin: 0; | |
border: 0; | |
min-width: 0; | |
} | |
legend { | |
display: block; | |
width: 100%; | |
padding: 0; | |
margin-bottom: 18px; | |
font-size: 19.5px; | |
line-height: inherit; | |
color: #333333; | |
border: 0; | |
border-bottom: 1px solid #e5e5e5; | |
} | |
label { | |
display: inline-block; | |
max-width: 100%; | |
margin-bottom: 5px; | |
font-weight: bold; | |
} | |
input[type="search"] { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
input[type="radio"], | |
input[type="checkbox"] { | |
margin: 4px 0 0; | |
margin-top: 1px \9; | |
line-height: normal; | |
} | |
input[type="file"] { | |
display: block; | |
} | |
input[type="range"] { | |
display: block; | |
width: 100%; | |
} | |
select[multiple], | |
select[size] { | |
height: auto; | |
} | |
input[type="file"]:focus, | |
input[type="radio"]:focus, | |
input[type="checkbox"]:focus { | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
output { | |
display: block; | |
padding-top: 7px; | |
font-size: 13px; | |
line-height: 1.42857143; | |
color: #555555; | |
} | |
.form-control { | |
display: block; | |
width: 100%; | |
height: 32px; | |
padding: 6px 12px; | |
font-size: 13px; | |
line-height: 1.42857143; | |
color: #555555; | |
background-color: #fff; | |
background-image: none; | |
border: 1px solid #ccc; | |
border-radius: 2px; | |
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
} | |
.form-control:focus { | |
border-color: #66afe9; | |
outline: 0; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
} | |
.form-control::-moz-placeholder { | |
color: #999; | |
opacity: 1; | |
} | |
.form-control:-ms-input-placeholder { | |
color: #999; | |
} | |
.form-control::-webkit-input-placeholder { | |
color: #999; | |
} | |
.form-control::-ms-expand { | |
border: 0; | |
background-color: transparent; | |
} | |
.form-control[disabled], | |
.form-control[readonly], | |
fieldset[disabled] .form-control { | |
background-color: #eeeeee; | |
opacity: 1; | |
} | |
.form-control[disabled], | |
fieldset[disabled] .form-control { | |
cursor: not-allowed; | |
} | |
textarea.form-control { | |
height: auto; | |
} | |
input[type="search"] { | |
-webkit-appearance: none; | |
} | |
@media screen and (-webkit-min-device-pixel-ratio: 0) { | |
input[type="date"].form-control, | |
input[type="time"].form-control, | |
input[type="datetime-local"].form-control, | |
input[type="month"].form-control { | |
line-height: 32px; | |
} | |
input[type="date"].input-sm, | |
input[type="time"].input-sm, | |
input[type="datetime-local"].input-sm, | |
input[type="month"].input-sm, | |
.input-group-sm input[type="date"], | |
.input-group-sm input[type="time"], | |
.input-group-sm input[type="datetime-local"], | |
.input-group-sm input[type="month"] { | |
line-height: 30px; | |
} | |
input[type="date"].input-lg, | |
input[type="time"].input-lg, | |
input[type="datetime-local"].input-lg, | |
input[type="month"].input-lg, | |
.input-group-lg input[type="date"], | |
.input-group-lg input[type="time"], | |
.input-group-lg input[type="datetime-local"], | |
.input-group-lg input[type="month"] { | |
line-height: 45px; | |
} | |
} | |
.form-group { | |
margin-bottom: 15px; | |
} | |
.radio, | |
.checkbox { | |
position: relative; | |
display: block; | |
margin-top: 10px; | |
margin-bottom: 10px; | |
} | |
.radio label, | |
.checkbox label { | |
min-height: 18px; | |
padding-left: 20px; | |
margin-bottom: 0; | |
font-weight: normal; | |
cursor: pointer; | |
} | |
.radio input[type="radio"], | |
.radio-inline input[type="radio"], | |
.checkbox input[type="checkbox"], | |
.checkbox-inline input[type="checkbox"] { | |
position: absolute; | |
margin-left: -20px; | |
margin-top: 4px \9; | |
} | |
.radio + .radio, | |
.checkbox + .checkbox { | |
margin-top: -5px; | |
} | |
.radio-inline, | |
.checkbox-inline { | |
position: relative; | |
display: inline-block; | |
padding-left: 20px; | |
margin-bottom: 0; | |
vertical-align: middle; | |
font-weight: normal; | |
cursor: pointer; | |
} | |
.radio-inline + .radio-inline, | |
.checkbox-inline + .checkbox-inline { | |
margin-top: 0; | |
margin-left: 10px; | |
} | |
input[type="radio"][disabled], | |
input[type="checkbox"][disabled], | |
input[type="radio"].disabled, | |
input[type="checkbox"].disabled, | |
fieldset[disabled] input[type="radio"], | |
fieldset[disabled] input[type="checkbox"] { | |
cursor: not-allowed; | |
} | |
.radio-inline.disabled, | |
.checkbox-inline.disabled, | |
fieldset[disabled] .radio-inline, | |
fieldset[disabled] .checkbox-inline { | |
cursor: not-allowed; | |
} | |
.radio.disabled label, | |
.checkbox.disabled label, | |
fieldset[disabled] .radio label, | |
fieldset[disabled] .checkbox label { | |
cursor: not-allowed; | |
} | |
.form-control-static { | |
padding-top: 7px; | |
padding-bottom: 7px; | |
margin-bottom: 0; | |
min-height: 31px; | |
} | |
.form-control-static.input-lg, | |
.form-control-static.input-sm { | |
padding-left: 0; | |
padding-right: 0; | |
} | |
.input-sm { | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
} | |
select.input-sm { | |
height: 30px; | |
line-height: 30px; | |
} | |
textarea.input-sm, | |
select[multiple].input-sm { | |
height: auto; | |
} | |
.form-group-sm .form-control { | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
} | |
.form-group-sm select.form-control { | |
height: 30px; | |
line-height: 30px; | |
} | |
.form-group-sm textarea.form-control, | |
.form-group-sm select[multiple].form-control { | |
height: auto; | |
} | |
.form-group-sm .form-control-static { | |
height: 30px; | |
min-height: 30px; | |
padding: 6px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
} | |
.input-lg { | |
height: 45px; | |
padding: 10px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
border-radius: 3px; | |
} | |
select.input-lg { | |
height: 45px; | |
line-height: 45px; | |
} | |
textarea.input-lg, | |
select[multiple].input-lg { | |
height: auto; | |
} | |
.form-group-lg .form-control { | |
height: 45px; | |
padding: 10px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
border-radius: 3px; | |
} | |
.form-group-lg select.form-control { | |
height: 45px; | |
line-height: 45px; | |
} | |
.form-group-lg textarea.form-control, | |
.form-group-lg select[multiple].form-control { | |
height: auto; | |
} | |
.form-group-lg .form-control-static { | |
height: 45px; | |
min-height: 35px; | |
padding: 11px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
} | |
.has-feedback { | |
position: relative; | |
} | |
.has-feedback .form-control { | |
padding-right: 40px; | |
} | |
.form-control-feedback { | |
position: absolute; | |
top: 0; | |
right: 0; | |
z-index: 2; | |
display: block; | |
width: 32px; | |
height: 32px; | |
line-height: 32px; | |
text-align: center; | |
pointer-events: none; | |
} | |
.input-lg + .form-control-feedback, | |
.input-group-lg + .form-control-feedback, | |
.form-group-lg .form-control + .form-control-feedback { | |
width: 45px; | |
height: 45px; | |
line-height: 45px; | |
} | |
.input-sm + .form-control-feedback, | |
.input-group-sm + .form-control-feedback, | |
.form-group-sm .form-control + .form-control-feedback { | |
width: 30px; | |
height: 30px; | |
line-height: 30px; | |
} | |
.has-success .help-block, | |
.has-success .control-label, | |
.has-success .radio, | |
.has-success .checkbox, | |
.has-success .radio-inline, | |
.has-success .checkbox-inline, | |
.has-success.radio label, | |
.has-success.checkbox label, | |
.has-success.radio-inline label, | |
.has-success.checkbox-inline label { | |
color: #3c763d; | |
} | |
.has-success .form-control { | |
border-color: #3c763d; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-success .form-control:focus { | |
border-color: #2b542c; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; | |
} | |
.has-success .input-group-addon { | |
color: #3c763d; | |
border-color: #3c763d; | |
background-color: #dff0d8; | |
} | |
.has-success .form-control-feedback { | |
color: #3c763d; | |
} | |
.has-warning .help-block, | |
.has-warning .control-label, | |
.has-warning .radio, | |
.has-warning .checkbox, | |
.has-warning .radio-inline, | |
.has-warning .checkbox-inline, | |
.has-warning.radio label, | |
.has-warning.checkbox label, | |
.has-warning.radio-inline label, | |
.has-warning.checkbox-inline label { | |
color: #8a6d3b; | |
} | |
.has-warning .form-control { | |
border-color: #8a6d3b; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-warning .form-control:focus { | |
border-color: #66512c; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; | |
} | |
.has-warning .input-group-addon { | |
color: #8a6d3b; | |
border-color: #8a6d3b; | |
background-color: #fcf8e3; | |
} | |
.has-warning .form-control-feedback { | |
color: #8a6d3b; | |
} | |
.has-error .help-block, | |
.has-error .control-label, | |
.has-error .radio, | |
.has-error .checkbox, | |
.has-error .radio-inline, | |
.has-error .checkbox-inline, | |
.has-error.radio label, | |
.has-error.checkbox label, | |
.has-error.radio-inline label, | |
.has-error.checkbox-inline label { | |
color: #a94442; | |
} | |
.has-error .form-control { | |
border-color: #a94442; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-error .form-control:focus { | |
border-color: #843534; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; | |
} | |
.has-error .input-group-addon { | |
color: #a94442; | |
border-color: #a94442; | |
background-color: #f2dede; | |
} | |
.has-error .form-control-feedback { | |
color: #a94442; | |
} | |
.has-feedback label ~ .form-control-feedback { | |
top: 23px; | |
} | |
.has-feedback label.sr-only ~ .form-control-feedback { | |
top: 0; | |
} | |
.help-block { | |
display: block; | |
margin-top: 5px; | |
margin-bottom: 10px; | |
color: #404040; | |
} | |
@media (min-width: 768px) { | |
.form-inline .form-group { | |
display: inline-block; | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.form-inline .form-control { | |
display: inline-block; | |
width: auto; | |
vertical-align: middle; | |
} | |
.form-inline .form-control-static { | |
display: inline-block; | |
} | |
.form-inline .input-group { | |
display: inline-table; | |
vertical-align: middle; | |
} | |
.form-inline .input-group .input-group-addon, | |
.form-inline .input-group .input-group-btn, | |
.form-inline .input-group .form-control { | |
width: auto; | |
} | |
.form-inline .input-group > .form-control { | |
width: 100%; | |
} | |
.form-inline .control-label { | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.form-inline .radio, | |
.form-inline .checkbox { | |
display: inline-block; | |
margin-top: 0; | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.form-inline .radio label, | |
.form-inline .checkbox label { | |
padding-left: 0; | |
} | |
.form-inline .radio input[type="radio"], | |
.form-inline .checkbox input[type="checkbox"] { | |
position: relative; | |
margin-left: 0; | |
} | |
.form-inline .has-feedback .form-control-feedback { | |
top: 0; | |
} | |
} | |
.form-horizontal .radio, | |
.form-horizontal .checkbox, | |
.form-horizontal .radio-inline, | |
.form-horizontal .checkbox-inline { | |
margin-top: 0; | |
margin-bottom: 0; | |
padding-top: 7px; | |
} | |
.form-horizontal .radio, | |
.form-horizontal .checkbox { | |
min-height: 25px; | |
} | |
.form-horizontal .form-group { | |
margin-left: 0px; | |
margin-right: 0px; | |
} | |
@media (min-width: 768px) { | |
.form-horizontal .control-label { | |
text-align: right; | |
margin-bottom: 0; | |
padding-top: 7px; | |
} | |
} | |
.form-horizontal .has-feedback .form-control-feedback { | |
right: 0px; | |
} | |
@media (min-width: 768px) { | |
.form-horizontal .form-group-lg .control-label { | |
padding-top: 11px; | |
font-size: 17px; | |
} | |
} | |
@media (min-width: 768px) { | |
.form-horizontal .form-group-sm .control-label { | |
padding-top: 6px; | |
font-size: 12px; | |
} | |
} | |
.btn { | |
display: inline-block; | |
margin-bottom: 0; | |
font-weight: normal; | |
text-align: center; | |
vertical-align: middle; | |
touch-action: manipulation; | |
cursor: pointer; | |
background-image: none; | |
border: 1px solid transparent; | |
white-space: nowrap; | |
padding: 6px 12px; | |
font-size: 13px; | |
line-height: 1.42857143; | |
border-radius: 2px; | |
-webkit-user-select: none; | |
-moz-user-select: none; | |
-ms-user-select: none; | |
user-select: none; | |
} | |
.btn:focus, | |
.btn:active:focus, | |
.btn.active:focus, | |
.btn.focus, | |
.btn:active.focus, | |
.btn.active.focus { | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
.btn:hover, | |
.btn:focus, | |
.btn.focus { | |
color: #333; | |
text-decoration: none; | |
} | |
.btn:active, | |
.btn.active { | |
outline: 0; | |
background-image: none; | |
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
} | |
.btn.disabled, | |
.btn[disabled], | |
fieldset[disabled] .btn { | |
cursor: not-allowed; | |
opacity: 0.65; | |
filter: alpha(opacity=65); | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
a.btn.disabled, | |
fieldset[disabled] a.btn { | |
pointer-events: none; | |
} | |
.btn-default { | |
color: #333; | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
.btn-default:focus, | |
.btn-default.focus { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #8c8c8c; | |
} | |
.btn-default:hover { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
.btn-default:active, | |
.btn-default.active, | |
.open > .dropdown-toggle.btn-default { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
.btn-default:active:hover, | |
.btn-default.active:hover, | |
.open > .dropdown-toggle.btn-default:hover, | |
.btn-default:active:focus, | |
.btn-default.active:focus, | |
.open > .dropdown-toggle.btn-default:focus, | |
.btn-default:active.focus, | |
.btn-default.active.focus, | |
.open > .dropdown-toggle.btn-default.focus { | |
color: #333; | |
background-color: #d4d4d4; | |
border-color: #8c8c8c; | |
} | |
.btn-default:active, | |
.btn-default.active, | |
.open > .dropdown-toggle.btn-default { | |
background-image: none; | |
} | |
.btn-default.disabled:hover, | |
.btn-default[disabled]:hover, | |
fieldset[disabled] .btn-default:hover, | |
.btn-default.disabled:focus, | |
.btn-default[disabled]:focus, | |
fieldset[disabled] .btn-default:focus, | |
.btn-default.disabled.focus, | |
.btn-default[disabled].focus, | |
fieldset[disabled] .btn-default.focus { | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
.btn-default .badge { | |
color: #fff; | |
background-color: #333; | |
} | |
.btn-primary { | |
color: #fff; | |
background-color: #337ab7; | |
border-color: #2e6da4; | |
} | |
.btn-primary:focus, | |
.btn-primary.focus { | |
color: #fff; | |
background-color: #286090; | |
border-color: #122b40; | |
} | |
.btn-primary:hover { | |
color: #fff; | |
background-color: #286090; | |
border-color: #204d74; | |
} | |
.btn-primary:active, | |
.btn-primary.active, | |
.open > .dropdown-toggle.btn-primary { | |
color: #fff; | |
background-color: #286090; | |
border-color: #204d74; | |
} | |
.btn-primary:active:hover, | |
.btn-primary.active:hover, | |
.open > .dropdown-toggle.btn-primary:hover, | |
.btn-primary:active:focus, | |
.btn-primary.active:focus, | |
.open > .dropdown-toggle.btn-primary:focus, | |
.btn-primary:active.focus, | |
.btn-primary.active.focus, | |
.open > .dropdown-toggle.btn-primary.focus { | |
color: #fff; | |
background-color: #204d74; | |
border-color: #122b40; | |
} | |
.btn-primary:active, | |
.btn-primary.active, | |
.open > .dropdown-toggle.btn-primary { | |
background-image: none; | |
} | |
.btn-primary.disabled:hover, | |
.btn-primary[disabled]:hover, | |
fieldset[disabled] .btn-primary:hover, | |
.btn-primary.disabled:focus, | |
.btn-primary[disabled]:focus, | |
fieldset[disabled] .btn-primary:focus, | |
.btn-primary.disabled.focus, | |
.btn-primary[disabled].focus, | |
fieldset[disabled] .btn-primary.focus { | |
background-color: #337ab7; | |
border-color: #2e6da4; | |
} | |
.btn-primary .badge { | |
color: #337ab7; | |
background-color: #fff; | |
} | |
.btn-success { | |
color: #fff; | |
background-color: #5cb85c; | |
border-color: #4cae4c; | |
} | |
.btn-success:focus, | |
.btn-success.focus { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #255625; | |
} | |
.btn-success:hover { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #398439; | |
} | |
.btn-success:active, | |
.btn-success.active, | |
.open > .dropdown-toggle.btn-success { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #398439; | |
} | |
.btn-success:active:hover, | |
.btn-success.active:hover, | |
.open > .dropdown-toggle.btn-success:hover, | |
.btn-success:active:focus, | |
.btn-success.active:focus, | |
.open > .dropdown-toggle.btn-success:focus, | |
.btn-success:active.focus, | |
.btn-success.active.focus, | |
.open > .dropdown-toggle.btn-success.focus { | |
color: #fff; | |
background-color: #398439; | |
border-color: #255625; | |
} | |
.btn-success:active, | |
.btn-success.active, | |
.open > .dropdown-toggle.btn-success { | |
background-image: none; | |
} | |
.btn-success.disabled:hover, | |
.btn-success[disabled]:hover, | |
fieldset[disabled] .btn-success:hover, | |
.btn-success.disabled:focus, | |
.btn-success[disabled]:focus, | |
fieldset[disabled] .btn-success:focus, | |
.btn-success.disabled.focus, | |
.btn-success[disabled].focus, | |
fieldset[disabled] .btn-success.focus { | |
background-color: #5cb85c; | |
border-color: #4cae4c; | |
} | |
.btn-success .badge { | |
color: #5cb85c; | |
background-color: #fff; | |
} | |
.btn-info { | |
color: #fff; | |
background-color: #5bc0de; | |
border-color: #46b8da; | |
} | |
.btn-info:focus, | |
.btn-info.focus { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #1b6d85; | |
} | |
.btn-info:hover { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #269abc; | |
} | |
.btn-info:active, | |
.btn-info.active, | |
.open > .dropdown-toggle.btn-info { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #269abc; | |
} | |
.btn-info:active:hover, | |
.btn-info.active:hover, | |
.open > .dropdown-toggle.btn-info:hover, | |
.btn-info:active:focus, | |
.btn-info.active:focus, | |
.open > .dropdown-toggle.btn-info:focus, | |
.btn-info:active.focus, | |
.btn-info.active.focus, | |
.open > .dropdown-toggle.btn-info.focus { | |
color: #fff; | |
background-color: #269abc; | |
border-color: #1b6d85; | |
} | |
.btn-info:active, | |
.btn-info.active, | |
.open > .dropdown-toggle.btn-info { | |
background-image: none; | |
} | |
.btn-info.disabled:hover, | |
.btn-info[disabled]:hover, | |
fieldset[disabled] .btn-info:hover, | |
.btn-info.disabled:focus, | |
.btn-info[disabled]:focus, | |
fieldset[disabled] .btn-info:focus, | |
.btn-info.disabled.focus, | |
.btn-info[disabled].focus, | |
fieldset[disabled] .btn-info.focus { | |
background-color: #5bc0de; | |
border-color: #46b8da; | |
} | |
.btn-info .badge { | |
color: #5bc0de; | |
background-color: #fff; | |
} | |
.btn-warning { | |
color: #fff; | |
background-color: #f0ad4e; | |
border-color: #eea236; | |
} | |
.btn-warning:focus, | |
.btn-warning.focus { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #985f0d; | |
} | |
.btn-warning:hover { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #d58512; | |
} | |
.btn-warning:active, | |
.btn-warning.active, | |
.open > .dropdown-toggle.btn-warning { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #d58512; | |
} | |
.btn-warning:active:hover, | |
.btn-warning.active:hover, | |
.open > .dropdown-toggle.btn-warning:hover, | |
.btn-warning:active:focus, | |
.btn-warning.active:focus, | |
.open > .dropdown-toggle.btn-warning:focus, | |
.btn-warning:active.focus, | |
.btn-warning.active.focus, | |
.open > .dropdown-toggle.btn-warning.focus { | |
color: #fff; | |
background-color: #d58512; | |
border-color: #985f0d; | |
} | |
.btn-warning:active, | |
.btn-warning.active, | |
.open > .dropdown-toggle.btn-warning { | |
background-image: none; | |
} | |
.btn-warning.disabled:hover, | |
.btn-warning[disabled]:hover, | |
fieldset[disabled] .btn-warning:hover, | |
.btn-warning.disabled:focus, | |
.btn-warning[disabled]:focus, | |
fieldset[disabled] .btn-warning:focus, | |
.btn-warning.disabled.focus, | |
.btn-warning[disabled].focus, | |
fieldset[disabled] .btn-warning.focus { | |
background-color: #f0ad4e; | |
border-color: #eea236; | |
} | |
.btn-warning .badge { | |
color: #f0ad4e; | |
background-color: #fff; | |
} | |
.btn-danger { | |
color: #fff; | |
background-color: #d9534f; | |
border-color: #d43f3a; | |
} | |
.btn-danger:focus, | |
.btn-danger.focus { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #761c19; | |
} | |
.btn-danger:hover { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #ac2925; | |
} | |
.btn-danger:active, | |
.btn-danger.active, | |
.open > .dropdown-toggle.btn-danger { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #ac2925; | |
} | |
.btn-danger:active:hover, | |
.btn-danger.active:hover, | |
.open > .dropdown-toggle.btn-danger:hover, | |
.btn-danger:active:focus, | |
.btn-danger.active:focus, | |
.open > .dropdown-toggle.btn-danger:focus, | |
.btn-danger:active.focus, | |
.btn-danger.active.focus, | |
.open > .dropdown-toggle.btn-danger.focus { | |
color: #fff; | |
background-color: #ac2925; | |
border-color: #761c19; | |
} | |
.btn-danger:active, | |
.btn-danger.active, | |
.open > .dropdown-toggle.btn-danger { | |
background-image: none; | |
} | |
.btn-danger.disabled:hover, | |
.btn-danger[disabled]:hover, | |
fieldset[disabled] .btn-danger:hover, | |
.btn-danger.disabled:focus, | |
.btn-danger[disabled]:focus, | |
fieldset[disabled] .btn-danger:focus, | |
.btn-danger.disabled.focus, | |
.btn-danger[disabled].focus, | |
fieldset[disabled] .btn-danger.focus { | |
background-color: #d9534f; | |
border-color: #d43f3a; | |
} | |
.btn-danger .badge { | |
color: #d9534f; | |
background-color: #fff; | |
} | |
.btn-link { | |
color: #337ab7; | |
font-weight: normal; | |
border-radius: 0; | |
} | |
.btn-link, | |
.btn-link:active, | |
.btn-link.active, | |
.btn-link[disabled], | |
fieldset[disabled] .btn-link { | |
background-color: transparent; | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
.btn-link, | |
.btn-link:hover, | |
.btn-link:focus, | |
.btn-link:active { | |
border-color: transparent; | |
} | |
.btn-link:hover, | |
.btn-link:focus { | |
color: #23527c; | |
text-decoration: underline; | |
background-color: transparent; | |
} | |
.btn-link[disabled]:hover, | |
fieldset[disabled] .btn-link:hover, | |
.btn-link[disabled]:focus, | |
fieldset[disabled] .btn-link:focus { | |
color: #777777; | |
text-decoration: none; | |
} | |
.btn-lg, | |
.btn-group-lg > .btn { | |
padding: 10px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
border-radius: 3px; | |
} | |
.btn-sm, | |
.btn-group-sm > .btn { | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
} | |
.btn-xs, | |
.btn-group-xs > .btn { | |
padding: 1px 5px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
} | |
.btn-block { | |
display: block; | |
width: 100%; | |
} | |
.btn-block + .btn-block { | |
margin-top: 5px; | |
} | |
input[type="submit"].btn-block, | |
input[type="reset"].btn-block, | |
input[type="button"].btn-block { | |
width: 100%; | |
} | |
.fade { | |
opacity: 0; | |
-webkit-transition: opacity 0.15s linear; | |
-o-transition: opacity 0.15s linear; | |
transition: opacity 0.15s linear; | |
} | |
.fade.in { | |
opacity: 1; | |
} | |
.collapse { | |
display: none; | |
} | |
.collapse.in { | |
display: block; | |
} | |
tr.collapse.in { | |
display: table-row; | |
} | |
tbody.collapse.in { | |
display: table-row-group; | |
} | |
.collapsing { | |
position: relative; | |
height: 0; | |
overflow: hidden; | |
-webkit-transition-property: height, visibility; | |
transition-property: height, visibility; | |
-webkit-transition-duration: 0.35s; | |
transition-duration: 0.35s; | |
-webkit-transition-timing-function: ease; | |
transition-timing-function: ease; | |
} | |
.caret { | |
display: inline-block; | |
width: 0; | |
height: 0; | |
margin-left: 2px; | |
vertical-align: middle; | |
border-top: 4px dashed; | |
border-top: 4px solid \9; | |
border-right: 4px solid transparent; | |
border-left: 4px solid transparent; | |
} | |
.dropup, | |
.dropdown { | |
position: relative; | |
} | |
.dropdown-toggle:focus { | |
outline: 0; | |
} | |
.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; | |
font-size: 13px; | |
text-align: left; | |
background-color: #fff; | |
border: 1px solid #ccc; | |
border: 1px solid rgba(0, 0, 0, 0.15); | |
border-radius: 2px; | |
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); | |
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); | |
background-clip: padding-box; | |
} | |
.dropdown-menu.pull-right { | |
right: 0; | |
left: auto; | |
} | |
.dropdown-menu .divider { | |
height: 1px; | |
margin: 8px 0; | |
overflow: hidden; | |
background-color: #e5e5e5; | |
} | |
.dropdown-menu > li > a { | |
display: block; | |
padding: 3px 20px; | |
clear: both; | |
font-weight: normal; | |
line-height: 1.42857143; | |
color: #333333; | |
white-space: nowrap; | |
} | |
.dropdown-menu > li > a:hover, | |
.dropdown-menu > li > a:focus { | |
text-decoration: none; | |
color: #262626; | |
background-color: #f5f5f5; | |
} | |
.dropdown-menu > .active > a, | |
.dropdown-menu > .active > a:hover, | |
.dropdown-menu > .active > a:focus { | |
color: #fff; | |
text-decoration: none; | |
outline: 0; | |
background-color: #337ab7; | |
} | |
.dropdown-menu > .disabled > a, | |
.dropdown-menu > .disabled > a:hover, | |
.dropdown-menu > .disabled > a:focus { | |
color: #777777; | |
} | |
.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: not-allowed; | |
} | |
.open > .dropdown-menu { | |
display: block; | |
} | |
.open > a { | |
outline: 0; | |
} | |
.dropdown-menu-right { | |
left: auto; | |
right: 0; | |
} | |
.dropdown-menu-left { | |
left: 0; | |
right: auto; | |
} | |
.dropdown-header { | |
display: block; | |
padding: 3px 20px; | |
font-size: 12px; | |
line-height: 1.42857143; | |
color: #777777; | |
white-space: nowrap; | |
} | |
.dropdown-backdrop { | |
position: fixed; | |
left: 0; | |
right: 0; | |
bottom: 0; | |
top: 0; | |
z-index: 990; | |
} | |
.pull-right > .dropdown-menu { | |
right: 0; | |
left: auto; | |
} | |
.dropup .caret, | |
.navbar-fixed-bottom .dropdown .caret { | |
border-top: 0; | |
border-bottom: 4px dashed; | |
border-bottom: 4px solid \9; | |
content: ""; | |
} | |
.dropup .dropdown-menu, | |
.navbar-fixed-bottom .dropdown .dropdown-menu { | |
top: auto; | |
bottom: 100%; | |
margin-bottom: 2px; | |
} | |
@media (min-width: 541px) { | |
.navbar-right .dropdown-menu { | |
left: auto; | |
right: 0; | |
} | |
.navbar-right .dropdown-menu-left { | |
left: 0; | |
right: auto; | |
} | |
} | |
.btn-group, | |
.btn-group-vertical { | |
position: relative; | |
display: inline-block; | |
vertical-align: middle; | |
} | |
.btn-group > .btn, | |
.btn-group-vertical > .btn { | |
position: relative; | |
float: left; | |
} | |
.btn-group > .btn:hover, | |
.btn-group-vertical > .btn:hover, | |
.btn-group > .btn:focus, | |
.btn-group-vertical > .btn:focus, | |
.btn-group > .btn:active, | |
.btn-group-vertical > .btn:active, | |
.btn-group > .btn.active, | |
.btn-group-vertical > .btn.active { | |
z-index: 2; | |
} | |
.btn-group .btn + .btn, | |
.btn-group .btn + .btn-group, | |
.btn-group .btn-group + .btn, | |
.btn-group .btn-group + .btn-group { | |
margin-left: -1px; | |
} | |
.btn-toolbar { | |
margin-left: -5px; | |
} | |
.btn-toolbar .btn, | |
.btn-toolbar .btn-group, | |
.btn-toolbar .input-group { | |
float: left; | |
} | |
.btn-toolbar > .btn, | |
.btn-toolbar > .btn-group, | |
.btn-toolbar > .input-group { | |
margin-left: 5px; | |
} | |
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { | |
border-radius: 0; | |
} | |
.btn-group > .btn:first-child { | |
margin-left: 0; | |
} | |
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { | |
border-bottom-right-radius: 0; | |
border-top-right-radius: 0; | |
} | |
.btn-group > .btn:last-child:not(:first-child), | |
.btn-group > .dropdown-toggle:not(:first-child) { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group > .btn-group { | |
float: left; | |
} | |
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { | |
border-radius: 0; | |
} | |
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, | |
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { | |
border-bottom-right-radius: 0; | |
border-top-right-radius: 0; | |
} | |
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group .dropdown-toggle:active, | |
.btn-group.open .dropdown-toggle { | |
outline: 0; | |
} | |
.btn-group > .btn + .dropdown-toggle { | |
padding-left: 8px; | |
padding-right: 8px; | |
} | |
.btn-group > .btn-lg + .dropdown-toggle { | |
padding-left: 12px; | |
padding-right: 12px; | |
} | |
.btn-group.open .dropdown-toggle { | |
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
} | |
.btn-group.open .dropdown-toggle.btn-link { | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
.btn .caret { | |
margin-left: 0; | |
} | |
.btn-lg .caret { | |
border-width: 5px 5px 0; | |
border-bottom-width: 0; | |
} | |
.dropup .btn-lg .caret { | |
border-width: 0 5px 5px; | |
} | |
.btn-group-vertical > .btn, | |
.btn-group-vertical > .btn-group, | |
.btn-group-vertical > .btn-group > .btn { | |
display: block; | |
float: none; | |
width: 100%; | |
max-width: 100%; | |
} | |
.btn-group-vertical > .btn-group > .btn { | |
float: none; | |
} | |
.btn-group-vertical > .btn + .btn, | |
.btn-group-vertical > .btn + .btn-group, | |
.btn-group-vertical > .btn-group + .btn, | |
.btn-group-vertical > .btn-group + .btn-group { | |
margin-top: -1px; | |
margin-left: 0; | |
} | |
.btn-group-vertical > .btn:not(:first-child):not(:last-child) { | |
border-radius: 0; | |
} | |
.btn-group-vertical > .btn:first-child:not(:last-child) { | |
border-top-right-radius: 2px; | |
border-top-left-radius: 2px; | |
border-bottom-right-radius: 0; | |
border-bottom-left-radius: 0; | |
} | |
.btn-group-vertical > .btn:last-child:not(:first-child) { | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
border-bottom-right-radius: 2px; | |
border-bottom-left-radius: 2px; | |
} | |
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { | |
border-radius: 0; | |
} | |
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, | |
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { | |
border-bottom-right-radius: 0; | |
border-bottom-left-radius: 0; | |
} | |
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group-justified { | |
display: table; | |
width: 100%; | |
table-layout: fixed; | |
border-collapse: separate; | |
} | |
.btn-group-justified > .btn, | |
.btn-group-justified > .btn-group { | |
float: none; | |
display: table-cell; | |
width: 1%; | |
} | |
.btn-group-justified > .btn-group .btn { | |
width: 100%; | |
} | |
.btn-group-justified > .btn-group .dropdown-menu { | |
left: auto; | |
} | |
[data-toggle="buttons"] > .btn input[type="radio"], | |
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], | |
[data-toggle="buttons"] > .btn input[type="checkbox"], | |
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { | |
position: absolute; | |
clip: rect(0, 0, 0, 0); | |
pointer-events: none; | |
} | |
.input-group { | |
position: relative; | |
display: table; | |
border-collapse: separate; | |
} | |
.input-group[class*="col-"] { | |
float: none; | |
padding-left: 0; | |
padding-right: 0; | |
} | |
.input-group .form-control { | |
position: relative; | |
z-index: 2; | |
float: left; | |
width: 100%; | |
margin-bottom: 0; | |
} | |
.input-group .form-control:focus { | |
z-index: 3; | |
} | |
.input-group-lg > .form-control, | |
.input-group-lg > .input-group-addon, | |
.input-group-lg > .input-group-btn > .btn { | |
height: 45px; | |
padding: 10px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
border-radius: 3px; | |
} | |
select.input-group-lg > .form-control, | |
select.input-group-lg > .input-group-addon, | |
select.input-group-lg > .input-group-btn > .btn { | |
height: 45px; | |
line-height: 45px; | |
} | |
textarea.input-group-lg > .form-control, | |
textarea.input-group-lg > .input-group-addon, | |
textarea.input-group-lg > .input-group-btn > .btn, | |
select[multiple].input-group-lg > .form-control, | |
select[multiple].input-group-lg > .input-group-addon, | |
select[multiple].input-group-lg > .input-group-btn > .btn { | |
height: auto; | |
} | |
.input-group-sm > .form-control, | |
.input-group-sm > .input-group-addon, | |
.input-group-sm > .input-group-btn > .btn { | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
} | |
select.input-group-sm > .form-control, | |
select.input-group-sm > .input-group-addon, | |
select.input-group-sm > .input-group-btn > .btn { | |
height: 30px; | |
line-height: 30px; | |
} | |
textarea.input-group-sm > .form-control, | |
textarea.input-group-sm > .input-group-addon, | |
textarea.input-group-sm > .input-group-btn > .btn, | |
select[multiple].input-group-sm > .form-control, | |
select[multiple].input-group-sm > .input-group-addon, | |
select[multiple].input-group-sm > .input-group-btn > .btn { | |
height: auto; | |
} | |
.input-group-addon, | |
.input-group-btn, | |
.input-group .form-control { | |
display: table-cell; | |
} | |
.input-group-addon:not(:first-child):not(:last-child), | |
.input-group-btn:not(:first-child):not(:last-child), | |
.input-group .form-control:not(:first-child):not(:last-child) { | |
border-radius: 0; | |
} | |
.input-group-addon, | |
.input-group-btn { | |
width: 1%; | |
white-space: nowrap; | |
vertical-align: middle; | |
} | |
.input-group-addon { | |
padding: 6px 12px; | |
font-size: 13px; | |
font-weight: normal; | |
line-height: 1; | |
color: #555555; | |
text-align: center; | |
background-color: #eeeeee; | |
border: 1px solid #ccc; | |
border-radius: 2px; | |
} | |
.input-group-addon.input-sm { | |
padding: 5px 10px; | |
font-size: 12px; | |
border-radius: 1px; | |
} | |
.input-group-addon.input-lg { | |
padding: 10px 16px; | |
font-size: 17px; | |
border-radius: 3px; | |
} | |
.input-group-addon input[type="radio"], | |
.input-group-addon input[type="checkbox"] { | |
margin-top: 0; | |
} | |
.input-group .form-control:first-child, | |
.input-group-addon:first-child, | |
.input-group-btn:first-child > .btn, | |
.input-group-btn:first-child > .btn-group > .btn, | |
.input-group-btn:first-child > .dropdown-toggle, | |
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), | |
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { | |
border-bottom-right-radius: 0; | |
border-top-right-radius: 0; | |
} | |
.input-group-addon:first-child { | |
border-right: 0; | |
} | |
.input-group .form-control:last-child, | |
.input-group-addon:last-child, | |
.input-group-btn:last-child > .btn, | |
.input-group-btn:last-child > .btn-group > .btn, | |
.input-group-btn:last-child > .dropdown-toggle, | |
.input-group-btn:first-child > .btn:not(:first-child), | |
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.input-group-addon:last-child { | |
border-left: 0; | |
} | |
.input-group-btn { | |
position: relative; | |
font-size: 0; | |
white-space: nowrap; | |
} | |
.input-group-btn > .btn { | |
position: relative; | |
} | |
.input-group-btn > .btn + .btn { | |
margin-left: -1px; | |
} | |
.input-group-btn > .btn:hover, | |
.input-group-btn > .btn:focus, | |
.input-group-btn > .btn:active { | |
z-index: 2; | |
} | |
.input-group-btn:first-child > .btn, | |
.input-group-btn:first-child > .btn-group { | |
margin-right: -1px; | |
} | |
.input-group-btn:last-child > .btn, | |
.input-group-btn:last-child > .btn-group { | |
z-index: 2; | |
margin-left: -1px; | |
} | |
.nav { | |
margin-bottom: 0; | |
padding-left: 0; | |
list-style: none; | |
} | |
.nav > li { | |
position: relative; | |
display: block; | |
} | |
.nav > li > a { | |
position: relative; | |
display: block; | |
padding: 10px 15px; | |
} | |
.nav > li > a:hover, | |
.nav > li > a:focus { | |
text-decoration: none; | |
background-color: #eeeeee; | |
} | |
.nav > li.disabled > a { | |
color: #777777; | |
} | |
.nav > li.disabled > a:hover, | |
.nav > li.disabled > a:focus { | |
color: #777777; | |
text-decoration: none; | |
background-color: transparent; | |
cursor: not-allowed; | |
} | |
.nav .open > a, | |
.nav .open > a:hover, | |
.nav .open > a:focus { | |
background-color: #eeeeee; | |
border-color: #337ab7; | |
} | |
.nav .nav-divider { | |
height: 1px; | |
margin: 8px 0; | |
overflow: hidden; | |
background-color: #e5e5e5; | |
} | |
.nav > li > a > img { | |
max-width: none; | |
} | |
.nav-tabs { | |
border-bottom: 1px solid #ddd; | |
} | |
.nav-tabs > li { | |
float: left; | |
margin-bottom: -1px; | |
} | |
.nav-tabs > li > a { | |
margin-right: 2px; | |
line-height: 1.42857143; | |
border: 1px solid transparent; | |
border-radius: 2px 2px 0 0; | |
} | |
.nav-tabs > li > a:hover { | |
border-color: #eeeeee #eeeeee #ddd; | |
} | |
.nav-tabs > li.active > a, | |
.nav-tabs > li.active > a:hover, | |
.nav-tabs > li.active > a:focus { | |
color: #555555; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
border-bottom-color: transparent; | |
cursor: default; | |
} | |
.nav-tabs.nav-justified { | |
width: 100%; | |
border-bottom: 0; | |
} | |
.nav-tabs.nav-justified > li { | |
float: none; | |
} | |
.nav-tabs.nav-justified > li > a { | |
text-align: center; | |
margin-bottom: 5px; | |
} | |
.nav-tabs.nav-justified > .dropdown .dropdown-menu { | |
top: auto; | |
left: auto; | |
} | |
@media (min-width: 768px) { | |
.nav-tabs.nav-justified > li { | |
display: table-cell; | |
width: 1%; | |
} | |
.nav-tabs.nav-justified > li > a { | |
margin-bottom: 0; | |
} | |
} | |
.nav-tabs.nav-justified > li > a { | |
margin-right: 0; | |
border-radius: 2px; | |
} | |
.nav-tabs.nav-justified > .active > a, | |
.nav-tabs.nav-justified > .active > a:hover, | |
.nav-tabs.nav-justified > .active > a:focus { | |
border: 1px solid #ddd; | |
} | |
@media (min-width: 768px) { | |
.nav-tabs.nav-justified > li > a { | |
border-bottom: 1px solid #ddd; | |
border-radius: 2px 2px 0 0; | |
} | |
.nav-tabs.nav-justified > .active > a, | |
.nav-tabs.nav-justified > .active > a:hover, | |
.nav-tabs.nav-justified > .active > a:focus { | |
border-bottom-color: #fff; | |
} | |
} | |
.nav-pills > li { | |
float: left; | |
} | |
.nav-pills > li > a { | |
border-radius: 2px; | |
} | |
.nav-pills > li + li { | |
margin-left: 2px; | |
} | |
.nav-pills > li.active > a, | |
.nav-pills > li.active > a:hover, | |
.nav-pills > li.active > a:focus { | |
color: #fff; | |
background-color: #337ab7; | |
} | |
.nav-stacked > li { | |
float: none; | |
} | |
.nav-stacked > li + li { | |
margin-top: 2px; | |
margin-left: 0; | |
} | |
.nav-justified { | |
width: 100%; | |
} | |
.nav-justified > li { | |
float: none; | |
} | |
.nav-justified > li > a { | |
text-align: center; | |
margin-bottom: 5px; | |
} | |
.nav-justified > .dropdown .dropdown-menu { | |
top: auto; | |
left: auto; | |
} | |
@media (min-width: 768px) { | |
.nav-justified > li { | |
display: table-cell; | |
width: 1%; | |
} | |
.nav-justified > li > a { | |
margin-bottom: 0; | |
} | |
} | |
.nav-tabs-justified { | |
border-bottom: 0; | |
} | |
.nav-tabs-justified > li > a { | |
margin-right: 0; | |
border-radius: 2px; | |
} | |
.nav-tabs-justified > .active > a, | |
.nav-tabs-justified > .active > a:hover, | |
.nav-tabs-justified > .active > a:focus { | |
border: 1px solid #ddd; | |
} | |
@media (min-width: 768px) { | |
.nav-tabs-justified > li > a { | |
border-bottom: 1px solid #ddd; | |
border-radius: 2px 2px 0 0; | |
} | |
.nav-tabs-justified > .active > a, | |
.nav-tabs-justified > .active > a:hover, | |
.nav-tabs-justified > .active > a:focus { | |
border-bottom-color: #fff; | |
} | |
} | |
.tab-content > .tab-pane { | |
display: none; | |
} | |
.tab-content > .active { | |
display: block; | |
} | |
.nav-tabs .dropdown-menu { | |
margin-top: -1px; | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.navbar { | |
position: relative; | |
min-height: 30px; | |
margin-bottom: 18px; | |
border: 1px solid transparent; | |
} | |
@media (min-width: 541px) { | |
.navbar { | |
border-radius: 2px; | |
} | |
} | |
@media (min-width: 541px) { | |
.navbar-header { | |
float: left; | |
} | |
} | |
.navbar-collapse { | |
overflow-x: visible; | |
padding-right: 0px; | |
padding-left: 0px; | |
border-top: 1px solid transparent; | |
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
-webkit-overflow-scrolling: touch; | |
} | |
.navbar-collapse.in { | |
overflow-y: auto; | |
} | |
@media (min-width: 541px) { | |
.navbar-collapse { | |
width: auto; | |
border-top: 0; | |
box-shadow: none; | |
} | |
.navbar-collapse.collapse { | |
display: block !important; | |
height: auto !important; | |
padding-bottom: 0; | |
overflow: visible !important; | |
} | |
.navbar-collapse.in { | |
overflow-y: visible; | |
} | |
.navbar-fixed-top .navbar-collapse, | |
.navbar-static-top .navbar-collapse, | |
.navbar-fixed-bottom .navbar-collapse { | |
padding-left: 0; | |
padding-right: 0; | |
} | |
} | |
.navbar-fixed-top .navbar-collapse, | |
.navbar-fixed-bottom .navbar-collapse { | |
max-height: 340px; | |
} | |
@media (max-device-width: 540px) and (orientation: landscape) { | |
.navbar-fixed-top .navbar-collapse, | |
.navbar-fixed-bottom .navbar-collapse { | |
max-height: 200px; | |
} | |
} | |
.container > .navbar-header, | |
.container-fluid > .navbar-header, | |
.container > .navbar-collapse, | |
.container-fluid > .navbar-collapse { | |
margin-right: 0px; | |
margin-left: 0px; | |
} | |
@media (min-width: 541px) { | |
.container > .navbar-header, | |
.container-fluid > .navbar-header, | |
.container > .navbar-collapse, | |
.container-fluid > .navbar-collapse { | |
margin-right: 0; | |
margin-left: 0; | |
} | |
} | |
.navbar-static-top { | |
z-index: 1000; | |
border-width: 0 0 1px; | |
} | |
@media (min-width: 541px) { | |
.navbar-static-top { | |
border-radius: 0; | |
} | |
} | |
.navbar-fixed-top, | |
.navbar-fixed-bottom { | |
position: fixed; | |
right: 0; | |
left: 0; | |
z-index: 1030; | |
} | |
@media (min-width: 541px) { | |
.navbar-fixed-top, | |
.navbar-fixed-bottom { | |
border-radius: 0; | |
} | |
} | |
.navbar-fixed-top { | |
top: 0; | |
border-width: 0 0 1px; | |
} | |
.navbar-fixed-bottom { | |
bottom: 0; | |
margin-bottom: 0; | |
border-width: 1px 0 0; | |
} | |
.navbar-brand { | |
float: left; | |
padding: 6px 0px; | |
font-size: 17px; | |
line-height: 18px; | |
height: 30px; | |
} | |
.navbar-brand:hover, | |
.navbar-brand:focus { | |
text-decoration: none; | |
} | |
.navbar-brand > img { | |
display: block; | |
} | |
@media (min-width: 541px) { | |
.navbar > .container .navbar-brand, | |
.navbar > .container-fluid .navbar-brand { | |
margin-left: 0px; | |
} | |
} | |
.navbar-toggle { | |
position: relative; | |
float: right; | |
margin-right: 0px; | |
padding: 9px 10px; | |
margin-top: -2px; | |
margin-bottom: -2px; | |
background-color: transparent; | |
background-image: none; | |
border: 1px solid transparent; | |
border-radius: 2px; | |
} | |
.navbar-toggle:focus { | |
outline: 0; | |
} | |
.navbar-toggle .icon-bar { | |
display: block; | |
width: 22px; | |
height: 2px; | |
border-radius: 1px; | |
} | |
.navbar-toggle .icon-bar + .icon-bar { | |
margin-top: 4px; | |
} | |
@media (min-width: 541px) { | |
.navbar-toggle { | |
display: none; | |
} | |
} | |
.navbar-nav { | |
margin: 3px 0px; | |
} | |
.navbar-nav > li > a { | |
padding-top: 10px; | |
padding-bottom: 10px; | |
line-height: 18px; | |
} | |
@media (max-width: 540px) { | |
.navbar-nav .open .dropdown-menu { | |
position: static; | |
float: none; | |
width: auto; | |
margin-top: 0; | |
background-color: transparent; | |
border: 0; | |
box-shadow: none; | |
} | |
.navbar-nav .open .dropdown-menu > li > a, | |
.navbar-nav .open .dropdown-menu .dropdown-header { | |
padding: 5px 15px 5px 25px; | |
} | |
.navbar-nav .open .dropdown-menu > li > a { | |
line-height: 18px; | |
} | |
.navbar-nav .open .dropdown-menu > li > a:hover, | |
.navbar-nav .open .dropdown-menu > li > a:focus { | |
background-image: none; | |
} | |
} | |
@media (min-width: 541px) { | |
.navbar-nav { | |
float: left; | |
margin: 0; | |
} | |
.navbar-nav > li { | |
float: left; | |
} | |
.navbar-nav > li > a { | |
padding-top: 6px; | |
padding-bottom: 6px; | |
} | |
} | |
.navbar-form { | |
margin-left: 0px; | |
margin-right: 0px; | |
padding: 10px 0px; | |
border-top: 1px solid transparent; | |
border-bottom: 1px solid transparent; | |
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |
margin-top: -1px; | |
margin-bottom: -1px; | |
} | |
@media (min-width: 768px) { | |
.navbar-form .form-group { | |
display: inline-block; | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.navbar-form .form-control { | |
display: inline-block; | |
width: auto; | |
vertical-align: middle; | |
} | |
.navbar-form .form-control-static { | |
display: inline-block; | |
} | |
.navbar-form .input-group { | |
display: inline-table; | |
vertical-align: middle; | |
} | |
.navbar-form .input-group .input-group-addon, | |
.navbar-form .input-group .input-group-btn, | |
.navbar-form .input-group .form-control { | |
width: auto; | |
} | |
.navbar-form .input-group > .form-control { | |
width: 100%; | |
} | |
.navbar-form .control-label { | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.navbar-form .radio, | |
.navbar-form .checkbox { | |
display: inline-block; | |
margin-top: 0; | |
margin-bottom: 0; | |
vertical-align: middle; | |
} | |
.navbar-form .radio label, | |
.navbar-form .checkbox label { | |
padding-left: 0; | |
} | |
.navbar-form .radio input[type="radio"], | |
.navbar-form .checkbox input[type="checkbox"] { | |
position: relative; | |
margin-left: 0; | |
} | |
.navbar-form .has-feedback .form-control-feedback { | |
top: 0; | |
} | |
} | |
@media (max-width: 540px) { | |
.navbar-form .form-group { | |
margin-bottom: 5px; | |
} | |
.navbar-form .form-group:last-child { | |
margin-bottom: 0; | |
} | |
} | |
@media (min-width: 541px) { | |
.navbar-form { | |
width: auto; | |
border: 0; | |
margin-left: 0; | |
margin-right: 0; | |
padding-top: 0; | |
padding-bottom: 0; | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
} | |
.navbar-nav > li > .dropdown-menu { | |
margin-top: 0; | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { | |
margin-bottom: 0; | |
border-top-right-radius: 2px; | |
border-top-left-radius: 2px; | |
border-bottom-right-radius: 0; | |
border-bottom-left-radius: 0; | |
} | |
.navbar-btn { | |
margin-top: -1px; | |
margin-bottom: -1px; | |
} | |
.navbar-btn.btn-sm { | |
margin-top: 0px; | |
margin-bottom: 0px; | |
} | |
.navbar-btn.btn-xs { | |
margin-top: 4px; | |
margin-bottom: 4px; | |
} | |
.navbar-text { | |
margin-top: 6px; | |
margin-bottom: 6px; | |
} | |
@media (min-width: 541px) { | |
.navbar-text { | |
float: left; | |
margin-left: 0px; | |
margin-right: 0px; | |
} | |
} | |
@media (min-width: 541px) { | |
.navbar-left { | |
float: left !important; | |
float: left; | |
} | |
.navbar-right { | |
float: right !important; | |
float: right; | |
margin-right: 0px; | |
} | |
.navbar-right ~ .navbar-right { | |
margin-right: 0; | |
} | |
} | |
.navbar-default { | |
background-color: #f8f8f8; | |
border-color: #e7e7e7; | |
} | |
.navbar-default .navbar-brand { | |
color: #777; | |
} | |
.navbar-default .navbar-brand:hover, | |
.navbar-default .navbar-brand:focus { | |
color: #5e5e5e; | |
background-color: transparent; | |
} | |
.navbar-default .navbar-text { | |
color: #777; | |
} | |
.navbar-default .navbar-nav > li > a { | |
color: #777; | |
} | |
.navbar-default .navbar-nav > li > a:hover, | |
.navbar-default .navbar-nav > li > a:focus { | |
color: #333; | |
background-color: transparent; | |
} | |
.navbar-default .navbar-nav > .active > a, | |
.navbar-default .navbar-nav > .active > a:hover, | |
.navbar-default .navbar-nav > .active > a:focus { | |
color: #555; | |
background-color: #e7e7e7; | |
} | |
.navbar-default .navbar-nav > .disabled > a, | |
.navbar-default .navbar-nav > .disabled > a:hover, | |
.navbar-default .navbar-nav > .disabled > a:focus { | |
color: #ccc; | |
background-color: transparent; | |
} | |
.navbar-default .navbar-toggle { | |
border-color: #ddd; | |
} | |
.navbar-default .navbar-toggle:hover, | |
.navbar-default .navbar-toggle:focus { | |
background-color: #ddd; | |
} | |
.navbar-default .navbar-toggle .icon-bar { | |
background-color: #888; | |
} | |
.navbar-default .navbar-collapse, | |
.navbar-default .navbar-form { | |
border-color: #e7e7e7; | |
} | |
.navbar-default .navbar-nav > .open > a, | |
.navbar-default .navbar-nav > .open > a:hover, | |
.navbar-default .navbar-nav > .open > a:focus { | |
background-color: #e7e7e7; | |
color: #555; | |
} | |
@media (max-width: 540px) { | |
.navbar-default .navbar-nav .open .dropdown-menu > li > a { | |
color: #777; | |
} | |
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, | |
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { | |
color: #333; | |
background-color: transparent; | |
} | |
.navbar-default .navbar-nav .open .dropdown-menu > .active > a, | |
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, | |
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { | |
color: #555; | |
background-color: #e7e7e7; | |
} | |
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, | |
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, | |
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { | |
color: #ccc; | |
background-color: transparent; | |
} | |
} | |
.navbar-default .navbar-link { | |
color: #777; | |
} | |
.navbar-default .navbar-link:hover { | |
color: #333; | |
} | |
.navbar-default .btn-link { | |
color: #777; | |
} | |
.navbar-default .btn-link:hover, | |
.navbar-default .btn-link:focus { | |
color: #333; | |
} | |
.navbar-default .btn-link[disabled]:hover, | |
fieldset[disabled] .navbar-default .btn-link:hover, | |
.navbar-default .btn-link[disabled]:focus, | |
fieldset[disabled] .navbar-default .btn-link:focus { | |
color: #ccc; | |
} | |
.navbar-inverse { | |
background-color: #222; | |
border-color: #080808; | |
} | |
.navbar-inverse .navbar-brand { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .navbar-brand:hover, | |
.navbar-inverse .navbar-brand:focus { | |
color: #fff; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-text { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .navbar-nav > li > a { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .navbar-nav > li > a:hover, | |
.navbar-inverse .navbar-nav > li > a:focus { | |
color: #fff; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-nav > .active > a, | |
.navbar-inverse .navbar-nav > .active > a:hover, | |
.navbar-inverse .navbar-nav > .active > a:focus { | |
color: #fff; | |
background-color: #080808; | |
} | |
.navbar-inverse .navbar-nav > .disabled > a, | |
.navbar-inverse .navbar-nav > .disabled > a:hover, | |
.navbar-inverse .navbar-nav > .disabled > a:focus { | |
color: #444; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-toggle { | |
border-color: #333; | |
} | |
.navbar-inverse .navbar-toggle:hover, | |
.navbar-inverse .navbar-toggle:focus { | |
background-color: #333; | |
} | |
.navbar-inverse .navbar-toggle .icon-bar { | |
background-color: #fff; | |
} | |
.navbar-inverse .navbar-collapse, | |
.navbar-inverse .navbar-form { | |
border-color: #101010; | |
} | |
.navbar-inverse .navbar-nav > .open > a, | |
.navbar-inverse .navbar-nav > .open > a:hover, | |
.navbar-inverse .navbar-nav > .open > a:focus { | |
background-color: #080808; | |
color: #fff; | |
} | |
@media (max-width: 540px) { | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { | |
border-color: #080808; | |
} | |
.navbar-inverse .navbar-nav .open .dropdown-menu .divider { | |
background-color: #080808; | |
} | |
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, | |
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { | |
color: #fff; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { | |
color: #fff; | |
background-color: #080808; | |
} | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, | |
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { | |
color: #444; | |
background-color: transparent; | |
} | |
} | |
.navbar-inverse .navbar-link { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .navbar-link:hover { | |
color: #fff; | |
} | |
.navbar-inverse .btn-link { | |
color: #9d9d9d; | |
} | |
.navbar-inverse .btn-link:hover, | |
.navbar-inverse .btn-link:focus { | |
color: #fff; | |
} | |
.navbar-inverse .btn-link[disabled]:hover, | |
fieldset[disabled] .navbar-inverse .btn-link:hover, | |
.navbar-inverse .btn-link[disabled]:focus, | |
fieldset[disabled] .navbar-inverse .btn-link:focus { | |
color: #444; | |
} | |
.breadcrumb { | |
padding: 8px 15px; | |
margin-bottom: 18px; | |
list-style: none; | |
background-color: #f5f5f5; | |
border-radius: 2px; | |
} | |
.breadcrumb > li { | |
display: inline-block; | |
} | |
.breadcrumb > li + li:before { | |
content: "/\00a0"; | |
padding: 0 5px; | |
color: #5e5e5e; | |
} | |
.breadcrumb > .active { | |
color: #777777; | |
} | |
.pagination { | |
display: inline-block; | |
padding-left: 0; | |
margin: 18px 0; | |
border-radius: 2px; | |
} | |
.pagination > li { | |
display: inline; | |
} | |
.pagination > li > a, | |
.pagination > li > span { | |
position: relative; | |
float: left; | |
padding: 6px 12px; | |
line-height: 1.42857143; | |
text-decoration: none; | |
color: #337ab7; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
margin-left: -1px; | |
} | |
.pagination > li:first-child > a, | |
.pagination > li:first-child > span { | |
margin-left: 0; | |
border-bottom-left-radius: 2px; | |
border-top-left-radius: 2px; | |
} | |
.pagination > li:last-child > a, | |
.pagination > li:last-child > span { | |
border-bottom-right-radius: 2px; | |
border-top-right-radius: 2px; | |
} | |
.pagination > li > a:hover, | |
.pagination > li > span:hover, | |
.pagination > li > a:focus, | |
.pagination > li > span:focus { | |
z-index: 2; | |
color: #23527c; | |
background-color: #eeeeee; | |
border-color: #ddd; | |
} | |
.pagination > .active > a, | |
.pagination > .active > span, | |
.pagination > .active > a:hover, | |
.pagination > .active > span:hover, | |
.pagination > .active > a:focus, | |
.pagination > .active > span:focus { | |
z-index: 3; | |
color: #fff; | |
background-color: #337ab7; | |
border-color: #337ab7; | |
cursor: default; | |
} | |
.pagination > .disabled > span, | |
.pagination > .disabled > span:hover, | |
.pagination > .disabled > span:focus, | |
.pagination > .disabled > a, | |
.pagination > .disabled > a:hover, | |
.pagination > .disabled > a:focus { | |
color: #777777; | |
background-color: #fff; | |
border-color: #ddd; | |
cursor: not-allowed; | |
} | |
.pagination-lg > li > a, | |
.pagination-lg > li > span { | |
padding: 10px 16px; | |
font-size: 17px; | |
line-height: 1.3333333; | |
} | |
.pagination-lg > li:first-child > a, | |
.pagination-lg > li:first-child > span { | |
border-bottom-left-radius: 3px; | |
border-top-left-radius: 3px; | |
} | |
.pagination-lg > li:last-child > a, | |
.pagination-lg > li:last-child > span { | |
border-bottom-right-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.pagination-sm > li > a, | |
.pagination-sm > li > span { | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
} | |
.pagination-sm > li:first-child > a, | |
.pagination-sm > li:first-child > span { | |
border-bottom-left-radius: 1px; | |
border-top-left-radius: 1px; | |
} | |
.pagination-sm > li:last-child > a, | |
.pagination-sm > li:last-child > span { | |
border-bottom-right-radius: 1px; | |
border-top-right-radius: 1px; | |
} | |
.pager { | |
padding-left: 0; | |
margin: 18px 0; | |
list-style: none; | |
text-align: center; | |
} | |
.pager li { | |
display: inline; | |
} | |
.pager li > a, | |
.pager li > span { | |
display: inline-block; | |
padding: 5px 14px; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
border-radius: 15px; | |
} | |
.pager li > a:hover, | |
.pager li > a:focus { | |
text-decoration: none; | |
background-color: #eeeeee; | |
} | |
.pager .next > a, | |
.pager .next > span { | |
float: right; | |
} | |
.pager .previous > a, | |
.pager .previous > span { | |
float: left; | |
} | |
.pager .disabled > a, | |
.pager .disabled > a:hover, | |
.pager .disabled > a:focus, | |
.pager .disabled > span { | |
color: #777777; | |
background-color: #fff; | |
cursor: not-allowed; | |
} | |
.label { | |
display: inline; | |
padding: .2em .6em .3em; | |
font-size: 75%; | |
font-weight: bold; | |
line-height: 1; | |
color: #fff; | |
text-align: center; | |
white-space: nowrap; | |
vertical-align: baseline; | |
border-radius: .25em; | |
} | |
a.label:hover, | |
a.label:focus { | |
color: #fff; | |
text-decoration: none; | |
cursor: pointer; | |
} | |
.label:empty { | |
display: none; | |
} | |
.btn .label { | |
position: relative; | |
top: -1px; | |
} | |
.label-default { | |
background-color: #777777; | |
} | |
.label-default[href]:hover, | |
.label-default[href]:focus { | |
background-color: #5e5e5e; | |
} | |
.label-primary { | |
background-color: #337ab7; | |
} | |
.label-primary[href]:hover, | |
.label-primary[href]:focus { | |
background-color: #286090; | |
} | |
.label-success { | |
background-color: #5cb85c; | |
} | |
.label-success[href]:hover, | |
.label-success[href]:focus { | |
background-color: #449d44; | |
} | |
.label-info { | |
background-color: #5bc0de; | |
} | |
.label-info[href]:hover, | |
.label-info[href]:focus { | |
background-color: #31b0d5; | |
} | |
.label-warning { | |
background-color: #f0ad4e; | |
} | |
.label-warning[href]:hover, | |
.label-warning[href]:focus { | |
background-color: #ec971f; | |
} | |
.label-danger { | |
background-color: #d9534f; | |
} | |
.label-danger[href]:hover, | |
.label-danger[href]:focus { | |
background-color: #c9302c; | |
} | |
.badge { | |
display: inline-block; | |
min-width: 10px; | |
padding: 3px 7px; | |
font-size: 12px; | |
font-weight: bold; | |
color: #fff; | |
line-height: 1; | |
vertical-align: middle; | |
white-space: nowrap; | |
text-align: center; | |
background-color: #777777; | |
border-radius: 10px; | |
} | |
.badge:empty { | |
display: none; | |
} | |
.btn .badge { | |
position: relative; | |
top: -1px; | |
} | |
.btn-xs .badge, | |
.btn-group-xs > .btn .badge { | |
top: 0; | |
padding: 1px 5px; | |
} | |
a.badge:hover, | |
a.badge:focus { | |
color: #fff; | |
text-decoration: none; | |
cursor: pointer; | |
} | |
.list-group-item.active > .badge, | |
.nav-pills > .active > a > .badge { | |
color: #337ab7; | |
background-color: #fff; | |
} | |
.list-group-item > .badge { | |
float: right; | |
} | |
.list-group-item > .badge + .badge { | |
margin-right: 5px; | |
} | |
.nav-pills > li > a > .badge { | |
margin-left: 3px; | |
} | |
.jumbotron { | |
padding-top: 30px; | |
padding-bottom: 30px; | |
margin-bottom: 30px; | |
color: inherit; | |
background-color: #eeeeee; | |
} | |
.jumbotron h1, | |
.jumbotron .h1 { | |
color: inherit; | |
} | |
.jumbotron p { | |
margin-bottom: 15px; | |
font-size: 20px; | |
font-weight: 200; | |
} | |
.jumbotron > hr { | |
border-top-color: #d5d5d5; | |
} | |
.container .jumbotron, | |
.container-fluid .jumbotron { | |
border-radius: 3px; | |
padding-left: 0px; | |
padding-right: 0px; | |
} | |
.jumbotron .container { | |
max-width: 100%; | |
} | |
@media screen and (min-width: 768px) { | |
.jumbotron { | |
padding-top: 48px; | |
padding-bottom: 48px; | |
} | |
.container .jumbotron, | |
.container-fluid .jumbotron { | |
padding-left: 60px; | |
padding-right: 60px; | |
} | |
.jumbotron h1, | |
.jumbotron .h1 { | |
font-size: 59px; | |
} | |
} | |
.thumbnail { | |
display: block; | |
padding: 4px; | |
margin-bottom: 18px; | |
line-height: 1.42857143; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
border-radius: 2px; | |
-webkit-transition: border 0.2s ease-in-out; | |
-o-transition: border 0.2s ease-in-out; | |
transition: border 0.2s ease-in-out; | |
} | |
.thumbnail > img, | |
.thumbnail a > img { | |
margin-left: auto; | |
margin-right: auto; | |
} | |
a.thumbnail:hover, | |
a.thumbnail:focus, | |
a.thumbnail.active { | |
border-color: #337ab7; | |
} | |
.thumbnail .caption { | |
padding: 9px; | |
color: #000; | |
} | |
.alert { | |
padding: 15px; | |
margin-bottom: 18px; | |
border: 1px solid transparent; | |
border-radius: 2px; | |
} | |
.alert h4 { | |
margin-top: 0; | |
color: inherit; | |
} | |
.alert .alert-link { | |
font-weight: bold; | |
} | |
.alert > p, | |
.alert > ul { | |
margin-bottom: 0; | |
} | |
.alert > p + p { | |
margin-top: 5px; | |
} | |
.alert-dismissable, | |
.alert-dismissible { | |
padding-right: 35px; | |
} | |
.alert-dismissable .close, | |
.alert-dismissible .close { | |
position: relative; | |
top: -2px; | |
right: -21px; | |
color: inherit; | |
} | |
.alert-success { | |
background-color: #dff0d8; | |
border-color: #d6e9c6; | |
color: #3c763d; | |
} | |
.alert-success hr { | |
border-top-color: #c9e2b3; | |
} | |
.alert-success .alert-link { | |
color: #2b542c; | |
} | |
.alert-info { | |
background-color: #d9edf7; | |
border-color: #bce8f1; | |
color: #31708f; | |
} | |
.alert-info hr { | |
border-top-color: #a6e1ec; | |
} | |
.alert-info .alert-link { | |
color: #245269; | |
} | |
.alert-warning { | |
background-color: #fcf8e3; | |
border-color: #faebcc; | |
color: #8a6d3b; | |
} | |
.alert-warning hr { | |
border-top-color: #f7e1b5; | |
} | |
.alert-warning .alert-link { | |
color: #66512c; | |
} | |
.alert-danger { | |
background-color: #f2dede; | |
border-color: #ebccd1; | |
color: #a94442; | |
} | |
.alert-danger hr { | |
border-top-color: #e4b9c0; | |
} | |
.alert-danger .alert-link { | |
color: #843534; | |
} | |
@-webkit-keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
@keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
.progress { | |
overflow: hidden; | |
height: 18px; | |
margin-bottom: 18px; | |
background-color: #f5f5f5; | |
border-radius: 2px; | |
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
} | |
.progress-bar { | |
float: left; | |
width: 0%; | |
height: 100%; | |
font-size: 12px; | |
line-height: 18px; | |
color: #fff; | |
text-align: center; | |
background-color: #337ab7; | |
-webkit-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-transition: width 0.6s ease; | |
-o-transition: width 0.6s ease; | |
transition: width 0.6s ease; | |
} | |
.progress-striped .progress-bar, | |
.progress-bar-striped { | |
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: -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); | |
background-size: 40px 40px; | |
} | |
.progress.active .progress-bar, | |
.progress-bar.active { | |
-webkit-animation: progress-bar-stripes 2s linear infinite; | |
-o-animation: progress-bar-stripes 2s linear infinite; | |
animation: progress-bar-stripes 2s linear infinite; | |
} | |
.progress-bar-success { | |
background-color: #5cb85c; | |
} | |
.progress-striped .progress-bar-success { | |
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: -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); | |
} | |
.progress-bar-info { | |
background-color: #5bc0de; | |
} | |
.progress-striped .progress-bar-info { | |
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: -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); | |
} | |
.progress-bar-warning { | |
background-color: #f0ad4e; | |
} | |
.progress-striped .progress-bar-warning { | |
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: -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); | |
} | |
.progress-bar-danger { | |
background-color: #d9534f; | |
} | |
.progress-striped .progress-bar-danger { | |
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: -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); | |
} | |
.media { | |
margin-top: 15px; | |
} | |
.media:first-child { | |
margin-top: 0; | |
} | |
.media, | |
.media-body { | |
zoom: 1; | |
overflow: hidden; | |
} | |
.media-body { | |
width: 10000px; | |
} | |
.media-object { | |
display: block; | |
} | |
.media-object.img-thumbnail { | |
max-width: none; | |
} | |
.media-right, | |
.media > .pull-right { | |
padding-left: 10px; | |
} | |
.media-left, | |
.media > .pull-left { | |
padding-right: 10px; | |
} | |
.media-left, | |
.media-right, | |
.media-body { | |
display: table-cell; | |
vertical-align: top; | |
} | |
.media-middle { | |
vertical-align: middle; | |
} | |
.media-bottom { | |
vertical-align: bottom; | |
} | |
.media-heading { | |
margin-top: 0; | |
margin-bottom: 5px; | |
} | |
.media-list { | |
padding-left: 0; | |
list-style: none; | |
} | |
.list-group { | |
margin-bottom: 20px; | |
padding-left: 0; | |
} | |
.list-group-item { | |
position: relative; | |
display: block; | |
padding: 10px 15px; | |
margin-bottom: -1px; | |
background-color: #fff; | |
border: 1px solid #ddd; | |
} | |
.list-group-item:first-child { | |
border-top-right-radius: 2px; | |
border-top-left-radius: 2px; | |
} | |
.list-group-item:last-child { | |
margin-bottom: 0; | |
border-bottom-right-radius: 2px; | |
border-bottom-left-radius: 2px; | |
} | |
a.list-group-item, | |
button.list-group-item { | |
color: #555; | |
} | |
a.list-group-item .list-group-item-heading, | |
button.list-group-item .list-group-item-heading { | |
color: #333; | |
} | |
a.list-group-item:hover, | |
button.list-group-item:hover, | |
a.list-group-item:focus, | |
button.list-group-item:focus { | |
text-decoration: none; | |
color: #555; | |
background-color: #f5f5f5; | |
} | |
button.list-group-item { | |
width: 100%; | |
text-align: left; | |
} | |
.list-group-item.disabled, | |
.list-group-item.disabled:hover, | |
.list-group-item.disabled:focus { | |
background-color: #eeeeee; | |
color: #777777; | |
cursor: not-allowed; | |
} | |
.list-group-item.disabled .list-group-item-heading, | |
.list-group-item.disabled:hover .list-group-item-heading, | |
.list-group-item.disabled:focus .list-group-item-heading { | |
color: inherit; | |
} | |
.list-group-item.disabled .list-group-item-text, | |
.list-group-item.disabled:hover .list-group-item-text, | |
.list-group-item.disabled:focus .list-group-item-text { | |
color: #777777; | |
} | |
.list-group-item.active, | |
.list-group-item.active:hover, | |
.list-group-item.active:focus { | |
z-index: 2; | |
color: #fff; | |
background-color: #337ab7; | |
border-color: #337ab7; | |
} | |
.list-group-item.active .list-group-item-heading, | |
.list-group-item.active:hover .list-group-item-heading, | |
.list-group-item.active:focus .list-group-item-heading, | |
.list-group-item.active .list-group-item-heading > small, | |
.list-group-item.active:hover .list-group-item-heading > small, | |
.list-group-item.active:focus .list-group-item-heading > small, | |
.list-group-item.active .list-group-item-heading > .small, | |
.list-group-item.active:hover .list-group-item-heading > .small, | |
.list-group-item.active:focus .list-group-item-heading > .small { | |
color: inherit; | |
} | |
.list-group-item.active .list-group-item-text, | |
.list-group-item.active:hover .list-group-item-text, | |
.list-group-item.active:focus .list-group-item-text { | |
color: #c7ddef; | |
} | |
.list-group-item-success { | |
color: #3c763d; | |
background-color: #dff0d8; | |
} | |
a.list-group-item-success, | |
button.list-group-item-success { | |
color: #3c763d; | |
} | |
a.list-group-item-success .list-group-item-heading, | |
button.list-group-item-success .list-group-item-heading { | |
color: inherit; | |
} | |
a.list-group-item-success:hover, | |
button.list-group-item-success:hover, | |
a.list-group-item-success:focus, | |
button.list-group-item-success:focus { | |
color: #3c763d; | |
background-color: #d0e9c6; | |
} | |
a.list-group-item-success.active, | |
button.list-group-item-success.active, | |
a.list-group-item-success.active:hover, | |
button.list-group-item-success.active:hover, | |
a.list-group-item-success.active:focus, | |
button.list-group-item-success.active:focus { | |
color: #fff; | |
background-color: #3c763d; | |
border-color: #3c763d; | |
} | |
.list-group-item-info { | |
color: #31708f; | |
background-color: #d9edf7; | |
} | |
a.list-group-item-info, | |
button.list-group-item-info { | |
color: #31708f; | |
} | |
a.list-group-item-info .list-group-item-heading, | |
button.list-group-item-info .list-group-item-heading { | |
color: inherit; | |
} | |
a.list-group-item-info:hover, | |
button.list-group-item-info:hover, | |
a.list-group-item-info:focus, | |
button.list-group-item-info:focus { | |
color: #31708f; | |
background-color: #c4e3f3; | |
} | |
a.list-group-item-info.active, | |
button.list-group-item-info.active, | |
a.list-group-item-info.active:hover, | |
button.list-group-item-info.active:hover, | |
a.list-group-item-info.active:focus, | |
button.list-group-item-info.active:focus { | |
color: #fff; | |
background-color: #31708f; | |
border-color: #31708f; | |
} | |
.list-group-item-warning { | |
color: #8a6d3b; | |
background-color: #fcf8e3; | |
} | |
a.list-group-item-warning, | |
button.list-group-item-warning { | |
color: #8a6d3b; | |
} | |
a.list-group-item-warning .list-group-item-heading, | |
button.list-group-item-warning .list-group-item-heading { | |
color: inherit; | |
} | |
a.list-group-item-warning:hover, | |
button.list-group-item-warning:hover, | |
a.list-group-item-warning:focus, | |
button.list-group-item-warning:focus { | |
color: #8a6d3b; | |
background-color: #faf2cc; | |
} | |
a.list-group-item-warning.active, | |
button.list-group-item-warning.active, | |
a.list-group-item-warning.active:hover, | |
button.list-group-item-warning.active:hover, | |
a.list-group-item-warning.active:focus, | |
button.list-group-item-warning.active:focus { | |
color: #fff; | |
background-color: #8a6d3b; | |
border-color: #8a6d3b; | |
} | |
.list-group-item-danger { | |
color: #a94442; | |
background-color: #f2dede; | |
} | |
a.list-group-item-danger, | |
button.list-group-item-danger { | |
color: #a94442; | |
} | |
a.list-group-item-danger .list-group-item-heading, | |
button.list-group-item-danger .list-group-item-heading { | |
color: inherit; | |
} | |
a.list-group-item-danger:hover, | |
button.list-group-item-danger:hover, | |
a.list-group-item-danger:focus, | |
button.list-group-item-danger:focus { | |
color: #a94442; | |
background-color: #ebcccc; | |
} | |
a.list-group-item-danger.active, | |
button.list-group-item-danger.active, | |
a.list-group-item-danger.active:hover, | |
button.list-group-item-danger.active:hover, | |
a.list-group-item-danger.active:focus, | |
button.list-group-item-danger.active:focus { | |
color: #fff; | |
background-color: #a94442; | |
border-color: #a94442; | |
} | |
.list-group-item-heading { | |
margin-top: 0; | |
margin-bottom: 5px; | |
} | |
.list-group-item-text { | |
margin-bottom: 0; | |
line-height: 1.3; | |
} | |
.panel { | |
margin-bottom: 18px; | |
background-color: #fff; | |
border: 1px solid transparent; | |
border-radius: 2px; | |
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); | |
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); | |
} | |
.panel-body { | |
padding: 15px; | |
} | |
.panel-heading { | |
padding: 10px 15px; | |
border-bottom: 1px solid transparent; | |
border-top-right-radius: 1px; | |
border-top-left-radius: 1px; | |
} | |
.panel-heading > .dropdown .dropdown-toggle { | |
color: inherit; | |
} | |
.panel-title { | |
margin-top: 0; | |
margin-bottom: 0; | |
font-size: 15px; | |
color: inherit; | |
} | |
.panel-title > a, | |
.panel-title > small, | |
.panel-title > .small, | |
.panel-title > small > a, | |
.panel-title > .small > a { | |
color: inherit; | |
} | |
.panel-footer { | |
padding: 10px 15px; | |
background-color: #f5f5f5; | |
border-top: 1px solid #ddd; | |
border-bottom-right-radius: 1px; | |
border-bottom-left-radius: 1px; | |
} | |
.panel > .list-group, | |
.panel > .panel-collapse > .list-group { | |
margin-bottom: 0; | |
} | |
.panel > .list-group .list-group-item, | |
.panel > .panel-collapse > .list-group .list-group-item { | |
border-width: 1px 0; | |
border-radius: 0; | |
} | |
.panel > .list-group:first-child .list-group-item:first-child, | |
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { | |
border-top: 0; | |
border-top-right-radius: 1px; | |
border-top-left-radius: 1px; | |
} | |
.panel > .list-group:last-child .list-group-item:last-child, | |
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { | |
border-bottom: 0; | |
border-bottom-right-radius: 1px; | |
border-bottom-left-radius: 1px; | |
} | |
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.panel-heading + .list-group .list-group-item:first-child { | |
border-top-width: 0; | |
} | |
.list-group + .panel-footer { | |
border-top-width: 0; | |
} | |
.panel > .table, | |
.panel > .table-responsive > .table, | |
.panel > .panel-collapse > .table { | |
margin-bottom: 0; | |
} | |
.panel > .table caption, | |
.panel > .table-responsive > .table caption, | |
.panel > .panel-collapse > .table caption { | |
padding-left: 15px; | |
padding-right: 15px; | |
} | |
.panel > .table:first-child, | |
.panel > .table-responsive:first-child > .table:first-child { | |
border-top-right-radius: 1px; | |
border-top-left-radius: 1px; | |
} | |
.panel > .table:first-child > thead:first-child > tr:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, | |
.panel > .table:first-child > tbody:first-child > tr:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { | |
border-top-left-radius: 1px; | |
border-top-right-radius: 1px; | |
} | |
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, | |
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, | |
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, | |
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, | |
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { | |
border-top-left-radius: 1px; | |
} | |
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, | |
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, | |
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, | |
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, | |
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, | |
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, | |
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, | |
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { | |
border-top-right-radius: 1px; | |
} | |
.panel > .table:last-child, | |
.panel > .table-responsive:last-child > .table:last-child { | |
border-bottom-right-radius: 1px; | |
border-bottom-left-radius: 1px; | |
} | |
.panel > .table:last-child > tbody:last-child > tr:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, | |
.panel > .table:last-child > tfoot:last-child > tr:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { | |
border-bottom-left-radius: 1px; | |
border-bottom-right-radius: 1px; | |
} | |
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, | |
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, | |
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, | |
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, | |
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, | |
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, | |
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, | |
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { | |
border-bottom-left-radius: 1px; | |
} | |
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, | |
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, | |
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, | |
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, | |
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { | |
border-bottom-right-radius: 1px; | |
} | |
.panel > .panel-body + .table, | |
.panel > .panel-body + .table-responsive, | |
.panel > .table + .panel-body, | |
.panel > .table-responsive + .panel-body { | |
border-top: 1px solid #ddd; | |
} | |
.panel > .table > tbody:first-child > tr:first-child th, | |
.panel > .table > tbody:first-child > tr:first-child td { | |
border-top: 0; | |
} | |
.panel > .table-bordered, | |
.panel > .table-responsive > .table-bordered { | |
border: 0; | |
} | |
.panel > .table-bordered > thead > tr > th:first-child, | |
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, | |
.panel > .table-bordered > tbody > tr > th:first-child, | |
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, | |
.panel > .table-bordered > tfoot > tr > th:first-child, | |
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, | |
.panel > .table-bordered > thead > tr > td:first-child, | |
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, | |
.panel > .table-bordered > tbody > tr > td:first-child, | |
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, | |
.panel > .table-bordered > tfoot > tr > td:first-child, | |
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { | |
border-left: 0; | |
} | |
.panel > .table-bordered > thead > tr > th:last-child, | |
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, | |
.panel > .table-bordered > tbody > tr > th:last-child, | |
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, | |
.panel > .table-bordered > tfoot > tr > th:last-child, | |
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, | |
.panel > .table-bordered > thead > tr > td:last-child, | |
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, | |
.panel > .table-bordered > tbody > tr > td:last-child, | |
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, | |
.panel > .table-bordered > tfoot > tr > td:last-child, | |
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { | |
border-right: 0; | |
} | |
.panel > .table-bordered > thead > tr:first-child > td, | |
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, | |
.panel > .table-bordered > tbody > tr:first-child > td, | |
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, | |
.panel > .table-bordered > thead > tr:first-child > th, | |
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, | |
.panel > .table-bordered > tbody > tr:first-child > th, | |
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { | |
border-bottom: 0; | |
} | |
.panel > .table-bordered > tbody > tr:last-child > td, | |
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, | |
.panel > .table-bordered > tfoot > tr:last-child > td, | |
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, | |
.panel > .table-bordered > tbody > tr:last-child > th, | |
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, | |
.panel > .table-bordered > tfoot > tr:last-child > th, | |
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { | |
border-bottom: 0; | |
} | |
.panel > .table-responsive { | |
border: 0; | |
margin-bottom: 0; | |
} | |
.panel-group { | |
margin-bottom: 18px; | |
} | |
.panel-group .panel { | |
margin-bottom: 0; | |
border-radius: 2px; | |
} | |
.panel-group .panel + .panel { | |
margin-top: 5px; | |
} | |
.panel-group .panel-heading { | |
border-bottom: 0; | |
} | |
.panel-group .panel-heading + .panel-collapse > .panel-body, | |
.panel-group .panel-heading + .panel-collapse > .list-group { | |
border-top: 1px solid #ddd; | |
} | |
.panel-group .panel-footer { | |
border-top: 0; | |
} | |
.panel-group .panel-footer + .panel-collapse .panel-body { | |
border-bottom: 1px solid #ddd; | |
} | |
.panel-default { | |
border-color: #ddd; | |
} | |
.panel-default > .panel-heading { | |
color: #333333; | |
background-color: #f5f5f5; | |
border-color: #ddd; | |
} | |
.panel-default > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #ddd; | |
} | |
.panel-default > .panel-heading .badge { | |
color: #f5f5f5; | |
background-color: #333333; | |
} | |
.panel-default > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #ddd; | |
} | |
.panel-primary { | |
border-color: #337ab7; | |
} | |
.panel-primary > .panel-heading { | |
color: #fff; | |
background-color: #337ab7; | |
border-color: #337ab7; | |
} | |
.panel-primary > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #337ab7; | |
} | |
.panel-primary > .panel-heading .badge { | |
color: #337ab7; | |
background-color: #fff; | |
} | |
.panel-primary > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #337ab7; | |
} | |
.panel-success { | |
border-color: #d6e9c6; | |
} | |
.panel-success > .panel-heading { | |
color: #3c763d; | |
background-color: #dff0d8; | |
border-color: #d6e9c6; | |
} | |
.panel-success > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #d6e9c6; | |
} | |
.panel-success > .panel-heading .badge { | |
color: #dff0d8; | |
background-color: #3c763d; | |
} | |
.panel-success > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #d6e9c6; | |
} | |
.panel-info { | |
border-color: #bce8f1; | |
} | |
.panel-info > .panel-heading { | |
color: #31708f; | |
background-color: #d9edf7; | |
border-color: #bce8f1; | |
} | |
.panel-info > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #bce8f1; | |
} | |
.panel-info > .panel-heading .badge { | |
color: #d9edf7; | |
background-color: #31708f; | |
} | |
.panel-info > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #bce8f1; | |
} | |
.panel-warning { | |
border-color: #faebcc; | |
} | |
.panel-warning > .panel-heading { | |
color: #8a6d3b; | |
background-color: #fcf8e3; | |
border-color: #faebcc; | |
} | |
.panel-warning > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #faebcc; | |
} | |
.panel-warning > .panel-heading .badge { | |
color: #fcf8e3; | |
background-color: #8a6d3b; | |
} | |
.panel-warning > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #faebcc; | |
} | |
.panel-danger { | |
border-color: #ebccd1; | |
} | |
.panel-danger > .panel-heading { | |
color: #a94442; | |
background-color: #f2dede; | |
border-color: #ebccd1; | |
} | |
.panel-danger > .panel-heading + .panel-collapse > .panel-body { | |
border-top-color: #ebccd1; | |
} | |
.panel-danger > .panel-heading .badge { | |
color: #f2dede; | |
background-color: #a94442; | |
} | |
.panel-danger > .panel-footer + .panel-collapse > .panel-body { | |
border-bottom-color: #ebccd1; | |
} | |
.embed-responsive { | |
position: relative; | |
display: block; | |
height: 0; | |
padding: 0; | |
overflow: hidden; | |
} | |
.embed-responsive .embed-responsive-item, | |
.embed-responsive iframe, | |
.embed-responsive embed, | |
.embed-responsive object, | |
.embed-responsive video { | |
position: absolute; | |
top: 0; | |
left: 0; | |
bottom: 0; | |
height: 100%; | |
width: 100%; | |
border: 0; | |
} | |
.embed-responsive-16by9 { | |
padding-bottom: 56.25%; | |
} | |
.embed-responsive-4by3 { | |
padding-bottom: 75%; | |
} | |
.well { | |
min-height: 20px; | |
padding: 19px; | |
margin-bottom: 20px; | |
background-color: #f5f5f5; | |
border: 1px solid #e3e3e3; | |
border-radius: 2px; | |
-webkit-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); | |
} | |
.well-lg { | |
padding: 24px; | |
border-radius: 3px; | |
} | |
.well-sm { | |
padding: 9px; | |
border-radius: 1px; | |
} | |
.close { | |
float: right; | |
font-size: 19.5px; | |
font-weight: bold; | |
line-height: 1; | |
color: #000; | |
text-shadow: 0 1px 0 #fff; | |
opacity: 0.2; | |
filter: alpha(opacity=20); | |
} | |
.close:hover, | |
.close:focus { | |
color: #000; | |
text-decoration: none; | |
cursor: pointer; | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
} | |
button.close { | |
padding: 0; | |
cursor: pointer; | |
background: transparent; | |
border: 0; | |
-webkit-appearance: none; | |
} | |
.modal-open { | |
overflow: hidden; | |
} | |
.modal { | |
display: none; | |
overflow: hidden; | |
position: fixed; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
left: 0; | |
z-index: 1050; | |
-webkit-overflow-scrolling: touch; | |
outline: 0; | |
} | |
.modal.fade .modal-dialog { | |
-webkit-transform: translate(0, -25%); | |
-ms-transform: translate(0, -25%); | |
-o-transform: translate(0, -25%); | |
transform: translate(0, -25%); | |
-webkit-transition: -webkit-transform 0.3s ease-out; | |
-moz-transition: -moz-transform 0.3s ease-out; | |
-o-transition: -o-transform 0.3s ease-out; | |
transition: transform 0.3s ease-out; | |
} | |
.modal.in .modal-dialog { | |
-webkit-transform: translate(0, 0); | |
-ms-transform: translate(0, 0); | |
-o-transform: translate(0, 0); | |
transform: translate(0, 0); | |
} | |
.modal-open .modal { | |
overflow-x: hidden; | |
overflow-y: auto; | |
} | |
.modal-dialog { | |
position: relative; | |
width: auto; | |
margin: 10px; | |
} | |
.modal-content { | |
position: relative; | |
background-color: #fff; | |
border: 1px solid #999; | |
border: 1px solid rgba(0, 0, 0, 0.2); | |
border-radius: 3px; | |
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); | |
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); | |
background-clip: padding-box; | |
outline: 0; | |
} | |
.modal-backdrop { | |
position: fixed; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
left: 0; | |
z-index: 1040; | |
background-color: #000; | |
} | |
.modal-backdrop.fade { | |
opacity: 0; | |
filter: alpha(opacity=0); | |
} | |
.modal-backdrop.in { | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
} | |
.modal-header { | |
padding: 15px; | |
border-bottom: 1px solid #e5e5e5; | |
} | |
.modal-header .close { | |
margin-top: -2px; | |
} | |
.modal-title { | |
margin: 0; | |
line-height: 1.42857143; | |
} | |
.modal-body { | |
position: relative; | |
padding: 15px; | |
} | |
.modal-footer { | |
padding: 15px; | |
text-align: right; | |
border-top: 1px solid #e5e5e5; | |
} | |
.modal-footer .btn + .btn { | |
margin-left: 5px; | |
margin-bottom: 0; | |
} | |
.modal-footer .btn-group .btn + .btn { | |
margin-left: -1px; | |
} | |
.modal-footer .btn-block + .btn-block { | |
margin-left: 0; | |
} | |
.modal-scrollbar-measure { | |
position: absolute; | |
top: -9999px; | |
width: 50px; | |
height: 50px; | |
overflow: scroll; | |
} | |
@media (min-width: 768px) { | |
.modal-dialog { | |
width: 600px; | |
margin: 30px auto; | |
} | |
.modal-content { | |
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); | |
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); | |
} | |
.modal-sm { | |
width: 300px; | |
} | |
} | |
@media (min-width: 992px) { | |
.modal-lg { | |
width: 900px; | |
} | |
} | |
.tooltip { | |
position: absolute; | |
z-index: 1070; | |
display: block; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-style: normal; | |
font-weight: normal; | |
letter-spacing: normal; | |
line-break: auto; | |
line-height: 1.42857143; | |
text-align: left; | |
text-align: start; | |
text-decoration: none; | |
text-shadow: none; | |
text-transform: none; | |
white-space: normal; | |
word-break: normal; | |
word-spacing: normal; | |
word-wrap: normal; | |
font-size: 12px; | |
opacity: 0; | |
filter: alpha(opacity=0); | |
} | |
.tooltip.in { | |
opacity: 0.9; | |
filter: alpha(opacity=90); | |
} | |
.tooltip.top { | |
margin-top: -3px; | |
padding: 5px 0; | |
} | |
.tooltip.right { | |
margin-left: 3px; | |
padding: 0 5px; | |
} | |
.tooltip.bottom { | |
margin-top: 3px; | |
padding: 5px 0; | |
} | |
.tooltip.left { | |
margin-left: -3px; | |
padding: 0 5px; | |
} | |
.tooltip-inner { | |
max-width: 200px; | |
padding: 3px 8px; | |
color: #fff; | |
text-align: center; | |
background-color: #000; | |
border-radius: 2px; | |
} | |
.tooltip-arrow { | |
position: absolute; | |
width: 0; | |
height: 0; | |
border-color: transparent; | |
border-style: solid; | |
} | |
.tooltip.top .tooltip-arrow { | |
bottom: 0; | |
left: 50%; | |
margin-left: -5px; | |
border-width: 5px 5px 0; | |
border-top-color: #000; | |
} | |
.tooltip.top-left .tooltip-arrow { | |
bottom: 0; | |
right: 5px; | |
margin-bottom: -5px; | |
border-width: 5px 5px 0; | |
border-top-color: #000; | |
} | |
.tooltip.top-right .tooltip-arrow { | |
bottom: 0; | |
left: 5px; | |
margin-bottom: -5px; | |
border-width: 5px 5px 0; | |
border-top-color: #000; | |
} | |
.tooltip.right .tooltip-arrow { | |
top: 50%; | |
left: 0; | |
margin-top: -5px; | |
border-width: 5px 5px 5px 0; | |
border-right-color: #000; | |
} | |
.tooltip.left .tooltip-arrow { | |
top: 50%; | |
right: 0; | |
margin-top: -5px; | |
border-width: 5px 0 5px 5px; | |
border-left-color: #000; | |
} | |
.tooltip.bottom .tooltip-arrow { | |
top: 0; | |
left: 50%; | |
margin-left: -5px; | |
border-width: 0 5px 5px; | |
border-bottom-color: #000; | |
} | |
.tooltip.bottom-left .tooltip-arrow { | |
top: 0; | |
right: 5px; | |
margin-top: -5px; | |
border-width: 0 5px 5px; | |
border-bottom-color: #000; | |
} | |
.tooltip.bottom-right .tooltip-arrow { | |
top: 0; | |
left: 5px; | |
margin-top: -5px; | |
border-width: 0 5px 5px; | |
border-bottom-color: #000; | |
} | |
.popover { | |
position: absolute; | |
top: 0; | |
left: 0; | |
z-index: 1060; | |
display: none; | |
max-width: 276px; | |
padding: 1px; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-style: normal; | |
font-weight: normal; | |
letter-spacing: normal; | |
line-break: auto; | |
line-height: 1.42857143; | |
text-align: left; | |
text-align: start; | |
text-decoration: none; | |
text-shadow: none; | |
text-transform: none; | |
white-space: normal; | |
word-break: normal; | |
word-spacing: normal; | |
word-wrap: normal; | |
font-size: 13px; | |
background-color: #fff; | |
background-clip: padding-box; | |
border: 1px solid #ccc; | |
border: 1px solid rgba(0, 0, 0, 0.2); | |
border-radius: 3px; | |
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |
} | |
.popover.top { | |
margin-top: -10px; | |
} | |
.popover.right { | |
margin-left: 10px; | |
} | |
.popover.bottom { | |
margin-top: 10px; | |
} | |
.popover.left { | |
margin-left: -10px; | |
} | |
.popover-title { | |
margin: 0; | |
padding: 8px 14px; | |
font-size: 13px; | |
background-color: #f7f7f7; | |
border-bottom: 1px solid #ebebeb; | |
border-radius: 2px 2px 0 0; | |
} | |
.popover-content { | |
padding: 9px 14px; | |
} | |
.popover > .arrow, | |
.popover > .arrow:after { | |
position: absolute; | |
display: block; | |
width: 0; | |
height: 0; | |
border-color: transparent; | |
border-style: solid; | |
} | |
.popover > .arrow { | |
border-width: 11px; | |
} | |
.popover > .arrow:after { | |
border-width: 10px; | |
content: ""; | |
} | |
.popover.top > .arrow { | |
left: 50%; | |
margin-left: -11px; | |
border-bottom-width: 0; | |
border-top-color: #999999; | |
border-top-color: rgba(0, 0, 0, 0.25); | |
bottom: -11px; | |
} | |
.popover.top > .arrow:after { | |
content: " "; | |
bottom: 1px; | |
margin-left: -10px; | |
border-bottom-width: 0; | |
border-top-color: #fff; | |
} | |
.popover.right > .arrow { | |
top: 50%; | |
left: -11px; | |
margin-top: -11px; | |
border-left-width: 0; | |
border-right-color: #999999; | |
border-right-color: rgba(0, 0, 0, 0.25); | |
} | |
.popover.right > .arrow:after { | |
content: " "; | |
left: 1px; | |
bottom: -10px; | |
border-left-width: 0; | |
border-right-color: #fff; | |
} | |
.popover.bottom > .arrow { | |
left: 50%; | |
margin-left: -11px; | |
border-top-width: 0; | |
border-bottom-color: #999999; | |
border-bottom-color: rgba(0, 0, 0, 0.25); | |
top: -11px; | |
} | |
.popover.bottom > .arrow:after { | |
content: " "; | |
top: 1px; | |
margin-left: -10px; | |
border-top-width: 0; | |
border-bottom-color: #fff; | |
} | |
.popover.left > .arrow { | |
top: 50%; | |
right: -11px; | |
margin-top: -11px; | |
border-right-width: 0; | |
border-left-color: #999999; | |
border-left-color: rgba(0, 0, 0, 0.25); | |
} | |
.popover.left > .arrow:after { | |
content: " "; | |
right: 1px; | |
border-right-width: 0; | |
border-left-color: #fff; | |
bottom: -10px; | |
} | |
.carousel { | |
position: relative; | |
} | |
.carousel-inner { | |
position: relative; | |
overflow: hidden; | |
width: 100%; | |
} | |
.carousel-inner > .item { | |
display: none; | |
position: relative; | |
-webkit-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 { | |
line-height: 1; | |
} | |
@media all and (transform-3d), (-webkit-transform-3d) { | |
.carousel-inner > .item { | |
-webkit-transition: -webkit-transform 0.6s ease-in-out; | |
-moz-transition: -moz-transform 0.6s ease-in-out; | |
-o-transition: -o-transform 0.6s ease-in-out; | |
transition: transform 0.6s ease-in-out; | |
-webkit-backface-visibility: hidden; | |
-moz-backface-visibility: hidden; | |
backface-visibility: hidden; | |
-webkit-perspective: 1000px; | |
-moz-perspective: 1000px; | |
perspective: 1000px; | |
} | |
.carousel-inner > .item.next, | |
.carousel-inner > .item.active.right { | |
-webkit-transform: translate3d(100%, 0, 0); | |
transform: translate3d(100%, 0, 0); | |
left: 0; | |
} | |
.carousel-inner > .item.prev, | |
.carousel-inner > .item.active.left { | |
-webkit-transform: translate3d(-100%, 0, 0); | |
transform: translate3d(-100%, 0, 0); | |
left: 0; | |
} | |
.carousel-inner > .item.next.left, | |
.carousel-inner > .item.prev.right, | |
.carousel-inner > .item.active { | |
-webkit-transform: translate3d(0, 0, 0); | |
transform: translate3d(0, 0, 0); | |
left: 0; | |
} | |
} | |
.carousel-inner > .active, | |
.carousel-inner > .next, | |
.carousel-inner > .prev { | |
display: block; | |
} | |
.carousel-inner > .active { | |
left: 0; | |
} | |
.carousel-inner > .next, | |
.carousel-inner > .prev { | |
position: absolute; | |
top: 0; | |
width: 100%; | |
} | |
.carousel-inner > .next { | |
left: 100%; | |
} | |
.carousel-inner > .prev { | |
left: -100%; | |
} | |
.carousel-inner > .next.left, | |
.carousel-inner > .prev.right { | |
left: 0; | |
} | |
.carousel-inner > .active.left { | |
left: -100%; | |
} | |
.carousel-inner > .active.right { | |
left: 100%; | |
} | |
.carousel-control { | |
position: absolute; | |
top: 0; | |
left: 0; | |
bottom: 0; | |
width: 15%; | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
font-size: 20px; | |
color: #fff; | |
text-align: center; | |
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); | |
background-color: rgba(0, 0, 0, 0); | |
} | |
.carousel-control.left { | |
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); | |
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); | |
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); | |
} | |
.carousel-control.right { | |
left: auto; | |
right: 0; | |
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); | |
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); | |
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); | |
} | |
.carousel-control:hover, | |
.carousel-control:focus { | |
outline: 0; | |
color: #fff; | |
text-decoration: none; | |
opacity: 0.9; | |
filter: alpha(opacity=90); | |
} | |
.carousel-control .icon-prev, | |
.carousel-control .icon-next, | |
.carousel-control .glyphicon-chevron-left, | |
.carousel-control .glyphicon-chevron-right { | |
position: absolute; | |
top: 50%; | |
margin-top: -10px; | |
z-index: 5; | |
display: inline-block; | |
} | |
.carousel-control .icon-prev, | |
.carousel-control .glyphicon-chevron-left { | |
left: 50%; | |
margin-left: -10px; | |
} | |
.carousel-control .icon-next, | |
.carousel-control .glyphicon-chevron-right { | |
right: 50%; | |
margin-right: -10px; | |
} | |
.carousel-control .icon-prev, | |
.carousel-control .icon-next { | |
width: 20px; | |
height: 20px; | |
line-height: 1; | |
font-family: serif; | |
} | |
.carousel-control .icon-prev:before { | |
content: '\2039'; | |
} | |
.carousel-control .icon-next:before { | |
content: '\203a'; | |
} | |
.carousel-indicators { | |
position: absolute; | |
bottom: 10px; | |
left: 50%; | |
z-index: 15; | |
width: 60%; | |
margin-left: -30%; | |
padding-left: 0; | |
list-style: none; | |
text-align: center; | |
} | |
.carousel-indicators li { | |
display: inline-block; | |
width: 10px; | |
height: 10px; | |
margin: 1px; | |
text-indent: -999px; | |
border: 1px solid #fff; | |
border-radius: 10px; | |
cursor: pointer; | |
background-color: #000 \9; | |
background-color: rgba(0, 0, 0, 0); | |
} | |
.carousel-indicators .active { | |
margin: 0; | |
width: 12px; | |
height: 12px; | |
background-color: #fff; | |
} | |
.carousel-caption { | |
position: absolute; | |
left: 15%; | |
right: 15%; | |
bottom: 20px; | |
z-index: 10; | |
padding-top: 20px; | |
padding-bottom: 20px; | |
color: #fff; | |
text-align: center; | |
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); | |
} | |
.carousel-caption .btn { | |
text-shadow: none; | |
} | |
@media screen and (min-width: 768px) { | |
.carousel-control .glyphicon-chevron-left, | |
.carousel-control .glyphicon-chevron-right, | |
.carousel-control .icon-prev, | |
.carousel-control .icon-next { | |
width: 30px; | |
height: 30px; | |
margin-top: -10px; | |
font-size: 30px; | |
} | |
.carousel-control .glyphicon-chevron-left, | |
.carousel-control .icon-prev { | |
margin-left: -10px; | |
} | |
.carousel-control .glyphicon-chevron-right, | |
.carousel-control .icon-next { | |
margin-right: -10px; | |
} | |
.carousel-caption { | |
left: 20%; | |
right: 20%; | |
padding-bottom: 30px; | |
} | |
.carousel-indicators { | |
bottom: 20px; | |
} | |
} | |
.clearfix:before, | |
.clearfix:after, | |
.dl-horizontal dd:before, | |
.dl-horizontal dd:after, | |
.container:before, | |
.container:after, | |
.container-fluid:before, | |
.container-fluid:after, | |
.row:before, | |
.row:after, | |
.form-horizontal .form-group:before, | |
.form-horizontal .form-group:after, | |
.btn-toolbar:before, | |
.btn-toolbar:after, | |
.btn-group-vertical > .btn-group:before, | |
.btn-group-vertical > .btn-group:after, | |
.nav:before, | |
.nav:after, | |
.navbar:before, | |
.navbar:after, | |
.navbar-header:before, | |
.navbar-header:after, | |
.navbar-collapse:before, | |
.navbar-collapse:after, | |
.pager:before, | |
.pager:after, | |
.panel-body:before, | |
.panel-body:after, | |
.modal-header:before, | |
.modal-header:after, | |
.modal-footer:before, | |
.modal-footer:after, | |
.item_buttons:before, | |
.item_buttons:after { | |
content: " "; | |
display: table; | |
} | |
.clearfix:after, | |
.dl-horizontal dd:after, | |
.container:after, | |
.container-fluid:after, | |
.row:after, | |
.form-horizontal .form-group:after, | |
.btn-toolbar:after, | |
.btn-group-vertical > .btn-group:after, | |
.nav:after, | |
.navbar:after, | |
.navbar-header:after, | |
.navbar-collapse:after, | |
.pager:after, | |
.panel-body:after, | |
.modal-header:after, | |
.modal-footer:after, | |
.item_buttons:after { | |
clear: both; | |
} | |
.center-block { | |
display: block; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
.pull-right { | |
float: right !important; | |
} | |
.pull-left { | |
float: left !important; | |
} | |
.hide { | |
display: none !important; | |
} | |
.show { | |
display: block !important; | |
} | |
.invisible { | |
visibility: hidden; | |
} | |
.text-hide { | |
font: 0/0 a; | |
color: transparent; | |
text-shadow: none; | |
background-color: transparent; | |
border: 0; | |
} | |
.hidden { | |
display: none !important; | |
} | |
.affix { | |
position: fixed; | |
} | |
@-ms-viewport { | |
width: device-width; | |
} | |
.visible-xs, | |
.visible-sm, | |
.visible-md, | |
.visible-lg { | |
display: none !important; | |
} | |
.visible-xs-block, | |
.visible-xs-inline, | |
.visible-xs-inline-block, | |
.visible-sm-block, | |
.visible-sm-inline, | |
.visible-sm-inline-block, | |
.visible-md-block, | |
.visible-md-inline, | |
.visible-md-inline-block, | |
.visible-lg-block, | |
.visible-lg-inline, | |
.visible-lg-inline-block { | |
display: none !important; | |
} | |
@media (max-width: 767px) { | |
.visible-xs { | |
display: block !important; | |
} | |
table.visible-xs { | |
display: table !important; | |
} | |
tr.visible-xs { | |
display: table-row !important; | |
} | |
th.visible-xs, | |
td.visible-xs { | |
display: table-cell !important; | |
} | |
} | |
@media (max-width: 767px) { | |
.visible-xs-block { | |
display: block !important; | |
} | |
} | |
@media (max-width: 767px) { | |
.visible-xs-inline { | |
display: inline !important; | |
} | |
} | |
@media (max-width: 767px) { | |
.visible-xs-inline-block { | |
display: inline-block !important; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.visible-sm { | |
display: block !important; | |
} | |
table.visible-sm { | |
display: table !important; | |
} | |
tr.visible-sm { | |
display: table-row !important; | |
} | |
th.visible-sm, | |
td.visible-sm { | |
display: table-cell !important; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.visible-sm-block { | |
display: block !important; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.visible-sm-inline { | |
display: inline !important; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.visible-sm-inline-block { | |
display: inline-block !important; | |
} | |
} | |
@media (min-width: 992px) and (max-width: 1199px) { | |
.visible-md { | |
display: block !important; | |
} | |
table.visible-md { | |
display: table !important; | |
} | |
tr.visible-md { | |
display: table-row !important; | |
} | |
th.visible-md, | |
td.visible-md { | |
display: table-cell !important; | |
} | |
} | |
@media (min-width: 992px) and (max-width: 1199px) { | |
.visible-md-block { | |
display: block !important; | |
} | |
} | |
@media (min-width: 992px) and (max-width: 1199px) { | |
.visible-md-inline { | |
display: inline !important; | |
} | |
} | |
@media (min-width: 992px) and (max-width: 1199px) { | |
.visible-md-inline-block { | |
display: inline-block !important; | |
} | |
} | |
@media (min-width: 1200px) { | |
.visible-lg { | |
display: block !important; | |
} | |
table.visible-lg { | |
display: table !important; | |
} | |
tr.visible-lg { | |
display: table-row !important; | |
} | |
th.visible-lg, | |
td.visible-lg { | |
display: table-cell !important; | |
} | |
} | |
@media (min-width: 1200px) { | |
.visible-lg-block { | |
display: block !important; | |
} | |
} | |
@media (min-width: 1200px) { | |
.visible-lg-inline { | |
display: inline !important; | |
} | |
} | |
@media (min-width: 1200px) { | |
.visible-lg-inline-block { | |
display: inline-block !important; | |
} | |
} | |
@media (max-width: 767px) { | |
.hidden-xs { | |
display: none !important; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.hidden-sm { | |
display: none !important; | |
} | |
} | |
@media (min-width: 992px) and (max-width: 1199px) { | |
.hidden-md { | |
display: none !important; | |
} | |
} | |
@media (min-width: 1200px) { | |
.hidden-lg { | |
display: none !important; | |
} | |
} | |
.visible-print { | |
display: none !important; | |
} | |
@media print { | |
.visible-print { | |
display: block !important; | |
} | |
table.visible-print { | |
display: table !important; | |
} | |
tr.visible-print { | |
display: table-row !important; | |
} | |
th.visible-print, | |
td.visible-print { | |
display: table-cell !important; | |
} | |
} | |
.visible-print-block { | |
display: none !important; | |
} | |
@media print { | |
.visible-print-block { | |
display: block !important; | |
} | |
} | |
.visible-print-inline { | |
display: none !important; | |
} | |
@media print { | |
.visible-print-inline { | |
display: inline !important; | |
} | |
} | |
.visible-print-inline-block { | |
display: none !important; | |
} | |
@media print { | |
.visible-print-inline-block { | |
display: inline-block !important; | |
} | |
} | |
@media print { | |
.hidden-print { | |
display: none !important; | |
} | |
} | |
/*! | |
* | |
* Font Awesome | |
* | |
*/ | |
/*! | |
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome | |
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) | |
*/ | |
/* FONT PATH | |
* -------------------------- */ | |
@font-face { | |
font-family: 'FontAwesome'; | |
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0'); | |
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); | |
font-weight: normal; | |
font-style: normal; | |
} | |
.fa { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
} | |
/* makes the font 33% larger relative to the icon container */ | |
.fa-lg { | |
font-size: 1.33333333em; | |
line-height: 0.75em; | |
vertical-align: -15%; | |
} | |
.fa-2x { | |
font-size: 2em; | |
} | |
.fa-3x { | |
font-size: 3em; | |
} | |
.fa-4x { | |
font-size: 4em; | |
} | |
.fa-5x { | |
font-size: 5em; | |
} | |
.fa-fw { | |
width: 1.28571429em; | |
text-align: center; | |
} | |
.fa-ul { | |
padding-left: 0; | |
margin-left: 2.14285714em; | |
list-style-type: none; | |
} | |
.fa-ul > li { | |
position: relative; | |
} | |
.fa-li { | |
position: absolute; | |
left: -2.14285714em; | |
width: 2.14285714em; | |
top: 0.14285714em; | |
text-align: center; | |
} | |
.fa-li.fa-lg { | |
left: -1.85714286em; | |
} | |
.fa-border { | |
padding: .2em .25em .15em; | |
border: solid 0.08em #eee; | |
border-radius: .1em; | |
} | |
.fa-pull-left { | |
float: left; | |
} | |
.fa-pull-right { | |
float: right; | |
} | |
.fa.fa-pull-left { | |
margin-right: .3em; | |
} | |
.fa.fa-pull-right { | |
margin-left: .3em; | |
} | |
/* Deprecated as of 4.4.0 */ | |
.pull-right { | |
float: right; | |
} | |
.pull-left { | |
float: left; | |
} | |
.fa.pull-left { | |
margin-right: .3em; | |
} | |
.fa.pull-right { | |
margin-left: .3em; | |
} | |
.fa-spin { | |
-webkit-animation: fa-spin 2s infinite linear; | |
animation: fa-spin 2s infinite linear; | |
} | |
.fa-pulse { | |
-webkit-animation: fa-spin 1s infinite steps(8); | |
animation: fa-spin 1s infinite steps(8); | |
} | |
@-webkit-keyframes fa-spin { | |
0% { | |
-webkit-transform: rotate(0deg); | |
transform: rotate(0deg); | |
} | |
100% { | |
-webkit-transform: rotate(359deg); | |
transform: rotate(359deg); | |
} | |
} | |
@keyframes fa-spin { | |
0% { | |
-webkit-transform: rotate(0deg); | |
transform: rotate(0deg); | |
} | |
100% { | |
-webkit-transform: rotate(359deg); | |
transform: rotate(359deg); | |
} | |
} | |
.fa-rotate-90 { | |
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; | |
-webkit-transform: rotate(90deg); | |
-ms-transform: rotate(90deg); | |
transform: rotate(90deg); | |
} | |
.fa-rotate-180 { | |
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; | |
-webkit-transform: rotate(180deg); | |
-ms-transform: rotate(180deg); | |
transform: rotate(180deg); | |
} | |
.fa-rotate-270 { | |
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; | |
-webkit-transform: rotate(270deg); | |
-ms-transform: rotate(270deg); | |
transform: rotate(270deg); | |
} | |
.fa-flip-horizontal { | |
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; | |
-webkit-transform: scale(-1, 1); | |
-ms-transform: scale(-1, 1); | |
transform: scale(-1, 1); | |
} | |
.fa-flip-vertical { | |
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; | |
-webkit-transform: scale(1, -1); | |
-ms-transform: scale(1, -1); | |
transform: scale(1, -1); | |
} | |
:root .fa-rotate-90, | |
:root .fa-rotate-180, | |
:root .fa-rotate-270, | |
:root .fa-flip-horizontal, | |
:root .fa-flip-vertical { | |
filter: none; | |
} | |
.fa-stack { | |
position: relative; | |
display: inline-block; | |
width: 2em; | |
height: 2em; | |
line-height: 2em; | |
vertical-align: middle; | |
} | |
.fa-stack-1x, | |
.fa-stack-2x { | |
position: absolute; | |
left: 0; | |
width: 100%; | |
text-align: center; | |
} | |
.fa-stack-1x { | |
line-height: inherit; | |
} | |
.fa-stack-2x { | |
font-size: 2em; | |
} | |
.fa-inverse { | |
color: #fff; | |
} | |
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen | |
readers do not read off random characters that represent icons */ | |
.fa-glass:before { | |
content: "\f000"; | |
} | |
.fa-music:before { | |
content: "\f001"; | |
} | |
.fa-search:before { | |
content: "\f002"; | |
} | |
.fa-envelope-o:before { | |
content: "\f003"; | |
} | |
.fa-heart:before { | |
content: "\f004"; | |
} | |
.fa-star:before { | |
content: "\f005"; | |
} | |
.fa-star-o:before { | |
content: "\f006"; | |
} | |
.fa-user:before { | |
content: "\f007"; | |
} | |
.fa-film:before { | |
content: "\f008"; | |
} | |
.fa-th-large:before { | |
content: "\f009"; | |
} | |
.fa-th:before { | |
content: "\f00a"; | |
} | |
.fa-th-list:before { | |
content: "\f00b"; | |
} | |
.fa-check:before { | |
content: "\f00c"; | |
} | |
.fa-remove:before, | |
.fa-close:before, | |
.fa-times:before { | |
content: "\f00d"; | |
} | |
.fa-search-plus:before { | |
content: "\f00e"; | |
} | |
.fa-search-minus:before { | |
content: "\f010"; | |
} | |
.fa-power-off:before { | |
content: "\f011"; | |
} | |
.fa-signal:before { | |
content: "\f012"; | |
} | |
.fa-gear:before, | |
.fa-cog:before { | |
content: "\f013"; | |
} | |
.fa-trash-o:before { | |
content: "\f014"; | |
} | |
.fa-home:before { | |
content: "\f015"; | |
} | |
.fa-file-o:before { | |
content: "\f016"; | |
} | |
.fa-clock-o:before { | |
content: "\f017"; | |
} | |
.fa-road:before { | |
content: "\f018"; | |
} | |
.fa-download:before { | |
content: "\f019"; | |
} | |
.fa-arrow-circle-o-down:before { | |
content: "\f01a"; | |
} | |
.fa-arrow-circle-o-up:before { | |
content: "\f01b"; | |
} | |
.fa-inbox:before { | |
content: "\f01c"; | |
} | |
.fa-play-circle-o:before { | |
content: "\f01d"; | |
} | |
.fa-rotate-right:before, | |
.fa-repeat:before { | |
content: "\f01e"; | |
} | |
.fa-refresh:before { | |
content: "\f021"; | |
} | |
.fa-list-alt:before { | |
content: "\f022"; | |
} | |
.fa-lock:before { | |
content: "\f023"; | |
} | |
.fa-flag:before { | |
content: "\f024"; | |
} | |
.fa-headphones:before { | |
content: "\f025"; | |
} | |
.fa-volume-off:before { | |
content: "\f026"; | |
} | |
.fa-volume-down:before { | |
content: "\f027"; | |
} | |
.fa-volume-up:before { | |
content: "\f028"; | |
} | |
.fa-qrcode:before { | |
content: "\f029"; | |
} | |
.fa-barcode:before { | |
content: "\f02a"; | |
} | |
.fa-tag:before { | |
content: "\f02b"; | |
} | |
.fa-tags:before { | |
content: "\f02c"; | |
} | |
.fa-book:before { | |
content: "\f02d"; | |
} | |
.fa-bookmark:before { | |
content: "\f02e"; | |
} | |
.fa-print:before { | |
content: "\f02f"; | |
} | |
.fa-camera:before { | |
content: "\f030"; | |
} | |
.fa-font:before { | |
content: "\f031"; | |
} | |
.fa-bold:before { | |
content: "\f032"; | |
} | |
.fa-italic:before { | |
content: "\f033"; | |
} | |
.fa-text-height:before { | |
content: "\f034"; | |
} | |
.fa-text-width:before { | |
content: "\f035"; | |
} | |
.fa-align-left:before { | |
content: "\f036"; | |
} | |
.fa-align-center:before { | |
content: "\f037"; | |
} | |
.fa-align-right:before { | |
content: "\f038"; | |
} | |
.fa-align-justify:before { | |
content: "\f039"; | |
} | |
.fa-list:before { | |
content: "\f03a"; | |
} | |
.fa-dedent:before, | |
.fa-outdent:before { | |
content: "\f03b"; | |
} | |
.fa-indent:before { | |
content: "\f03c"; | |
} | |
.fa-video-camera:before { | |
content: "\f03d"; | |
} | |
.fa-photo:before, | |
.fa-image:before, | |
.fa-picture-o:before { | |
content: "\f03e"; | |
} | |
.fa-pencil:before { | |
content: "\f040"; | |
} | |
.fa-map-marker:before { | |
content: "\f041"; | |
} | |
.fa-adjust:before { | |
content: "\f042"; | |
} | |
.fa-tint:before { | |
content: "\f043"; | |
} | |
.fa-edit:before, | |
.fa-pencil-square-o:before { | |
content: "\f044"; | |
} | |
.fa-share-square-o:before { | |
content: "\f045"; | |
} | |
.fa-check-square-o:before { | |
content: "\f046"; | |
} | |
.fa-arrows:before { | |
content: "\f047"; | |
} | |
.fa-step-backward:before { | |
content: "\f048"; | |
} | |
.fa-fast-backward:before { | |
content: "\f049"; | |
} | |
.fa-backward:before { | |
content: "\f04a"; | |
} | |
.fa-play:before { | |
content: "\f04b"; | |
} | |
.fa-pause:before { | |
content: "\f04c"; | |
} | |
.fa-stop:before { | |
content: "\f04d"; | |
} | |
.fa-forward:before { | |
content: "\f04e"; | |
} | |
.fa-fast-forward:before { | |
content: "\f050"; | |
} | |
.fa-step-forward:before { | |
content: "\f051"; | |
} | |
.fa-eject:before { | |
content: "\f052"; | |
} | |
.fa-chevron-left:before { | |
content: "\f053"; | |
} | |
.fa-chevron-right:before { | |
content: "\f054"; | |
} | |
.fa-plus-circle:before { | |
content: "\f055"; | |
} | |
.fa-minus-circle:before { | |
content: "\f056"; | |
} | |
.fa-times-circle:before { | |
content: "\f057"; | |
} | |
.fa-check-circle:before { | |
content: "\f058"; | |
} | |
.fa-question-circle:before { | |
content: "\f059"; | |
} | |
.fa-info-circle:before { | |
content: "\f05a"; | |
} | |
.fa-crosshairs:before { | |
content: "\f05b"; | |
} | |
.fa-times-circle-o:before { | |
content: "\f05c"; | |
} | |
.fa-check-circle-o:before { | |
content: "\f05d"; | |
} | |
.fa-ban:before { | |
content: "\f05e"; | |
} | |
.fa-arrow-left:before { | |
content: "\f060"; | |
} | |
.fa-arrow-right:before { | |
content: "\f061"; | |
} | |
.fa-arrow-up:before { | |
content: "\f062"; | |
} | |
.fa-arrow-down:before { | |
content: "\f063"; | |
} | |
.fa-mail-forward:before, | |
.fa-share:before { | |
content: "\f064"; | |
} | |
.fa-expand:before { | |
content: "\f065"; | |
} | |
.fa-compress:before { | |
content: "\f066"; | |
} | |
.fa-plus:before { | |
content: "\f067"; | |
} | |
.fa-minus:before { | |
content: "\f068"; | |
} | |
.fa-asterisk:before { | |
content: "\f069"; | |
} | |
.fa-exclamation-circle:before { | |
content: "\f06a"; | |
} | |
.fa-gift:before { | |
content: "\f06b"; | |
} | |
.fa-leaf:before { | |
content: "\f06c"; | |
} | |
.fa-fire:before { | |
content: "\f06d"; | |
} | |
.fa-eye:before { | |
content: "\f06e"; | |
} | |
.fa-eye-slash:before { | |
content: "\f070"; | |
} | |
.fa-warning:before, | |
.fa-exclamation-triangle:before { | |
content: "\f071"; | |
} | |
.fa-plane:before { | |
content: "\f072"; | |
} | |
.fa-calendar:before { | |
content: "\f073"; | |
} | |
.fa-random:before { | |
content: "\f074"; | |
} | |
.fa-comment:before { | |
content: "\f075"; | |
} | |
.fa-magnet:before { | |
content: "\f076"; | |
} | |
.fa-chevron-up:before { | |
content: "\f077"; | |
} | |
.fa-chevron-down:before { | |
content: "\f078"; | |
} | |
.fa-retweet:before { | |
content: "\f079"; | |
} | |
.fa-shopping-cart:before { | |
content: "\f07a"; | |
} | |
.fa-folder:before { | |
content: "\f07b"; | |
} | |
.fa-folder-open:before { | |
content: "\f07c"; | |
} | |
.fa-arrows-v:before { | |
content: "\f07d"; | |
} | |
.fa-arrows-h:before { | |
content: "\f07e"; | |
} | |
.fa-bar-chart-o:before, | |
.fa-bar-chart:before { | |
content: "\f080"; | |
} | |
.fa-twitter-square:before { | |
content: "\f081"; | |
} | |
.fa-facebook-square:before { | |
content: "\f082"; | |
} | |
.fa-camera-retro:before { | |
content: "\f083"; | |
} | |
.fa-key:before { | |
content: "\f084"; | |
} | |
.fa-gears:before, | |
.fa-cogs:before { | |
content: "\f085"; | |
} | |
.fa-comments:before { | |
content: "\f086"; | |
} | |
.fa-thumbs-o-up:before { | |
content: "\f087"; | |
} | |
.fa-thumbs-o-down:before { | |
content: "\f088"; | |
} | |
.fa-star-half:before { | |
content: "\f089"; | |
} | |
.fa-heart-o:before { | |
content: "\f08a"; | |
} | |
.fa-sign-out:before { | |
content: "\f08b"; | |
} | |
.fa-linkedin-square:before { | |
content: "\f08c"; | |
} | |
.fa-thumb-tack:before { | |
content: "\f08d"; | |
} | |
.fa-external-link:before { | |
content: "\f08e"; | |
} | |
.fa-sign-in:before { | |
content: "\f090"; | |
} | |
.fa-trophy:before { | |
content: "\f091"; | |
} | |
.fa-github-square:before { | |
content: "\f092"; | |
} | |
.fa-upload:before { | |
content: "\f093"; | |
} | |
.fa-lemon-o:before { | |
content: "\f094"; | |
} | |
.fa-phone:before { | |
content: "\f095"; | |
} | |
.fa-square-o:before { | |
content: "\f096"; | |
} | |
.fa-bookmark-o:before { | |
content: "\f097"; | |
} | |
.fa-phone-square:before { | |
content: "\f098"; | |
} | |
.fa-twitter:before { | |
content: "\f099"; | |
} | |
.fa-facebook-f:before, | |
.fa-facebook:before { | |
content: "\f09a"; | |
} | |
.fa-github:before { | |
content: "\f09b"; | |
} | |
.fa-unlock:before { | |
content: "\f09c"; | |
} | |
.fa-credit-card:before { | |
content: "\f09d"; | |
} | |
.fa-feed:before, | |
.fa-rss:before { | |
content: "\f09e"; | |
} | |
.fa-hdd-o:before { | |
content: "\f0a0"; | |
} | |
.fa-bullhorn:before { | |
content: "\f0a1"; | |
} | |
.fa-bell:before { | |
content: "\f0f3"; | |
} | |
.fa-certificate:before { | |
content: "\f0a3"; | |
} | |
.fa-hand-o-right:before { | |
content: "\f0a4"; | |
} | |
.fa-hand-o-left:before { | |
content: "\f0a5"; | |
} | |
.fa-hand-o-up:before { | |
content: "\f0a6"; | |
} | |
.fa-hand-o-down:before { | |
content: "\f0a7"; | |
} | |
.fa-arrow-circle-left:before { | |
content: "\f0a8"; | |
} | |
.fa-arrow-circle-right:before { | |
content: "\f0a9"; | |
} | |
.fa-arrow-circle-up:before { | |
content: "\f0aa"; | |
} | |
.fa-arrow-circle-down:before { | |
content: "\f0ab"; | |
} | |
.fa-globe:before { | |
content: "\f0ac"; | |
} | |
.fa-wrench:before { | |
content: "\f0ad"; | |
} | |
.fa-tasks:before { | |
content: "\f0ae"; | |
} | |
.fa-filter:before { | |
content: "\f0b0"; | |
} | |
.fa-briefcase:before { | |
content: "\f0b1"; | |
} | |
.fa-arrows-alt:before { | |
content: "\f0b2"; | |
} | |
.fa-group:before, | |
.fa-users:before { | |
content: "\f0c0"; | |
} | |
.fa-chain:before, | |
.fa-link:before { | |
content: "\f0c1"; | |
} | |
.fa-cloud:before { | |
content: "\f0c2"; | |
} | |
.fa-flask:before { | |
content: "\f0c3"; | |
} | |
.fa-cut:before, | |
.fa-scissors:before { | |
content: "\f0c4"; | |
} | |
.fa-copy:before, | |
.fa-files-o:before { | |
content: "\f0c5"; | |
} | |
.fa-paperclip:before { | |
content: "\f0c6"; | |
} | |
.fa-save:before, | |
.fa-floppy-o:before { | |
content: "\f0c7"; | |
} | |
.fa-square:before { | |
content: "\f0c8"; | |
} | |
.fa-navicon:before, | |
.fa-reorder:before, | |
.fa-bars:before { | |
content: "\f0c9"; | |
} | |
.fa-list-ul:before { | |
content: "\f0ca"; | |
} | |
.fa-list-ol:before { | |
content: "\f0cb"; | |
} | |
.fa-strikethrough:before { | |
content: "\f0cc"; | |
} | |
.fa-underline:before { | |
content: "\f0cd"; | |
} | |
.fa-table:before { | |
content: "\f0ce"; | |
} | |
.fa-magic:before { | |
content: "\f0d0"; | |
} | |
.fa-truck:before { | |
content: "\f0d1"; | |
} | |
.fa-pinterest:before { | |
content: "\f0d2"; | |
} | |
.fa-pinterest-square:before { | |
content: "\f0d3"; | |
} | |
.fa-google-plus-square:before { | |
content: "\f0d4"; | |
} | |
.fa-google-plus:before { | |
content: "\f0d5"; | |
} | |
.fa-money:before { | |
content: "\f0d6"; | |
} | |
.fa-caret-down:before { | |
content: "\f0d7"; | |
} | |
.fa-caret-up:before { | |
content: "\f0d8"; | |
} | |
.fa-caret-left:before { | |
content: "\f0d9"; | |
} | |
.fa-caret-right:before { | |
content: "\f0da"; | |
} | |
.fa-columns:before { | |
content: "\f0db"; | |
} | |
.fa-unsorted:before, | |
.fa-sort:before { | |
content: "\f0dc"; | |
} | |
.fa-sort-down:before, | |
.fa-sort-desc:before { | |
content: "\f0dd"; | |
} | |
.fa-sort-up:before, | |
.fa-sort-asc:before { | |
content: "\f0de"; | |
} | |
.fa-envelope:before { | |
content: "\f0e0"; | |
} | |
.fa-linkedin:before { | |
content: "\f0e1"; | |
} | |
.fa-rotate-left:before, | |
.fa-undo:before { | |
content: "\f0e2"; | |
} | |
.fa-legal:before, | |
.fa-gavel:before { | |
content: "\f0e3"; | |
} | |
.fa-dashboard:before, | |
.fa-tachometer:before { | |
content: "\f0e4"; | |
} | |
.fa-comment-o:before { | |
content: "\f0e5"; | |
} | |
.fa-comments-o:before { | |
content: "\f0e6"; | |
} | |
.fa-flash:before, | |
.fa-bolt:before { | |
content: "\f0e7"; | |
} | |
.fa-sitemap:before { | |
content: "\f0e8"; | |
} | |
.fa-umbrella:before { | |
content: "\f0e9"; | |
} | |
.fa-paste:before, | |
.fa-clipboard:before { | |
content: "\f0ea"; | |
} | |
.fa-lightbulb-o:before { | |
content: "\f0eb"; | |
} | |
.fa-exchange:before { | |
content: "\f0ec"; | |
} | |
.fa-cloud-download:before { | |
content: "\f0ed"; | |
} | |
.fa-cloud-upload:before { | |
content: "\f0ee"; | |
} | |
.fa-user-md:before { | |
content: "\f0f0"; | |
} | |
.fa-stethoscope:before { | |
content: "\f0f1"; | |
} | |
.fa-suitcase:before { | |
content: "\f0f2"; | |
} | |
.fa-bell-o:before { | |
content: "\f0a2"; | |
} | |
.fa-coffee:before { | |
content: "\f0f4"; | |
} | |
.fa-cutlery:before { | |
content: "\f0f5"; | |
} | |
.fa-file-text-o:before { | |
content: "\f0f6"; | |
} | |
.fa-building-o:before { | |
content: "\f0f7"; | |
} | |
.fa-hospital-o:before { | |
content: "\f0f8"; | |
} | |
.fa-ambulance:before { | |
content: "\f0f9"; | |
} | |
.fa-medkit:before { | |
content: "\f0fa"; | |
} | |
.fa-fighter-jet:before { | |
content: "\f0fb"; | |
} | |
.fa-beer:before { | |
content: "\f0fc"; | |
} | |
.fa-h-square:before { | |
content: "\f0fd"; | |
} | |
.fa-plus-square:before { | |
content: "\f0fe"; | |
} | |
.fa-angle-double-left:before { | |
content: "\f100"; | |
} | |
.fa-angle-double-right:before { | |
content: "\f101"; | |
} | |
.fa-angle-double-up:before { | |
content: "\f102"; | |
} | |
.fa-angle-double-down:before { | |
content: "\f103"; | |
} | |
.fa-angle-left:before { | |
content: "\f104"; | |
} | |
.fa-angle-right:before { | |
content: "\f105"; | |
} | |
.fa-angle-up:before { | |
content: "\f106"; | |
} | |
.fa-angle-down:before { | |
content: "\f107"; | |
} | |
.fa-desktop:before { | |
content: "\f108"; | |
} | |
.fa-laptop:before { | |
content: "\f109"; | |
} | |
.fa-tablet:before { | |
content: "\f10a"; | |
} | |
.fa-mobile-phone:before, | |
.fa-mobile:before { | |
content: "\f10b"; | |
} | |
.fa-circle-o:before { | |
content: "\f10c"; | |
} | |
.fa-quote-left:before { | |
content: "\f10d"; | |
} | |
.fa-quote-right:before { | |
content: "\f10e"; | |
} | |
.fa-spinner:before { | |
content: "\f110"; | |
} | |
.fa-circle:before { | |
content: "\f111"; | |
} | |
.fa-mail-reply:before, | |
.fa-reply:before { | |
content: "\f112"; | |
} | |
.fa-github-alt:before { | |
content: "\f113"; | |
} | |
.fa-folder-o:before { | |
content: "\f114"; | |
} | |
.fa-folder-open-o:before { | |
content: "\f115"; | |
} | |
.fa-smile-o:before { | |
content: "\f118"; | |
} | |
.fa-frown-o:before { | |
content: "\f119"; | |
} | |
.fa-meh-o:before { | |
content: "\f11a"; | |
} | |
.fa-gamepad:before { | |
content: "\f11b"; | |
} | |
.fa-keyboard-o:before { | |
content: "\f11c"; | |
} | |
.fa-flag-o:before { | |
content: "\f11d"; | |
} | |
.fa-flag-checkered:before { | |
content: "\f11e"; | |
} | |
.fa-terminal:before { | |
content: "\f120"; | |
} | |
.fa-code:before { | |
content: "\f121"; | |
} | |
.fa-mail-reply-all:before, | |
.fa-reply-all:before { | |
content: "\f122"; | |
} | |
.fa-star-half-empty:before, | |
.fa-star-half-full:before, | |
.fa-star-half-o:before { | |
content: "\f123"; | |
} | |
.fa-location-arrow:before { | |
content: "\f124"; | |
} | |
.fa-crop:before { | |
content: "\f125"; | |
} | |
.fa-code-fork:before { | |
content: "\f126"; | |
} | |
.fa-unlink:before, | |
.fa-chain-broken:before { | |
content: "\f127"; | |
} | |
.fa-question:before { | |
content: "\f128"; | |
} | |
.fa-info:before { | |
content: "\f129"; | |
} | |
.fa-exclamation:before { | |
content: "\f12a"; | |
} | |
.fa-superscript:before { | |
content: "\f12b"; | |
} | |
.fa-subscript:before { | |
content: "\f12c"; | |
} | |
.fa-eraser:before { | |
content: "\f12d"; | |
} | |
.fa-puzzle-piece:before { | |
content: "\f12e"; | |
} | |
.fa-microphone:before { | |
content: "\f130"; | |
} | |
.fa-microphone-slash:before { | |
content: "\f131"; | |
} | |
.fa-shield:before { | |
content: "\f132"; | |
} | |
.fa-calendar-o:before { | |
content: "\f133"; | |
} | |
.fa-fire-extinguisher:before { | |
content: "\f134"; | |
} | |
.fa-rocket:before { | |
content: "\f135"; | |
} | |
.fa-maxcdn:before { | |
content: "\f136"; | |
} | |
.fa-chevron-circle-left:before { | |
content: "\f137"; | |
} | |
.fa-chevron-circle-right:before { | |
content: "\f138"; | |
} | |
.fa-chevron-circle-up:before { | |
content: "\f139"; | |
} | |
.fa-chevron-circle-down:before { | |
content: "\f13a"; | |
} | |
.fa-html5:before { | |
content: "\f13b"; | |
} | |
.fa-css3:before { | |
content: "\f13c"; | |
} | |
.fa-anchor:before { | |
content: "\f13d"; | |
} | |
.fa-unlock-alt:before { | |
content: "\f13e"; | |
} | |
.fa-bullseye:before { | |
content: "\f140"; | |
} | |
.fa-ellipsis-h:before { | |
content: "\f141"; | |
} | |
.fa-ellipsis-v:before { | |
content: "\f142"; | |
} | |
.fa-rss-square:before { | |
content: "\f143"; | |
} | |
.fa-play-circle:before { | |
content: "\f144"; | |
} | |
.fa-ticket:before { | |
content: "\f145"; | |
} | |
.fa-minus-square:before { | |
content: "\f146"; | |
} | |
.fa-minus-square-o:before { | |
content: "\f147"; | |
} | |
.fa-level-up:before { | |
content: "\f148"; | |
} | |
.fa-level-down:before { | |
content: "\f149"; | |
} | |
.fa-check-square:before { | |
content: "\f14a"; | |
} | |
.fa-pencil-square:before { | |
content: "\f14b"; | |
} | |
.fa-external-link-square:before { | |
content: "\f14c"; | |
} | |
.fa-share-square:before { | |
content: "\f14d"; | |
} | |
.fa-compass:before { | |
content: "\f14e"; | |
} | |
.fa-toggle-down:before, | |
.fa-caret-square-o-down:before { | |
content: "\f150"; | |
} | |
.fa-toggle-up:before, | |
.fa-caret-square-o-up:before { | |
content: "\f151"; | |
} | |
.fa-toggle-right:before, | |
.fa-caret-square-o-right:before { | |
content: "\f152"; | |
} | |
.fa-euro:before, | |
.fa-eur:before { | |
content: "\f153"; | |
} | |
.fa-gbp:before { | |
content: "\f154"; | |
} | |
.fa-dollar:before, | |
.fa-usd:before { | |
content: "\f155"; | |
} | |
.fa-rupee:before, | |
.fa-inr:before { | |
content: "\f156"; | |
} | |
.fa-cny:before, | |
.fa-rmb:before, | |
.fa-yen:before, | |
.fa-jpy:before { | |
content: "\f157"; | |
} | |
.fa-ruble:before, | |
.fa-rouble:before, | |
.fa-rub:before { | |
content: "\f158"; | |
} | |
.fa-won:before, | |
.fa-krw:before { | |
content: "\f159"; | |
} | |
.fa-bitcoin:before, | |
.fa-btc:before { | |
content: "\f15a"; | |
} | |
.fa-file:before { | |
content: "\f15b"; | |
} | |
.fa-file-text:before { | |
content: "\f15c"; | |
} | |
.fa-sort-alpha-asc:before { | |
content: "\f15d"; | |
} | |
.fa-sort-alpha-desc:before { | |
content: "\f15e"; | |
} | |
.fa-sort-amount-asc:before { | |
content: "\f160"; | |
} | |
.fa-sort-amount-desc:before { | |
content: "\f161"; | |
} | |
.fa-sort-numeric-asc:before { | |
content: "\f162"; | |
} | |
.fa-sort-numeric-desc:before { | |
content: "\f163"; | |
} | |
.fa-thumbs-up:before { | |
content: "\f164"; | |
} | |
.fa-thumbs-down:before { | |
content: "\f165"; | |
} | |
.fa-youtube-square:before { | |
content: "\f166"; | |
} | |
.fa-youtube:before { | |
content: "\f167"; | |
} | |
.fa-xing:before { | |
content: "\f168"; | |
} | |
.fa-xing-square:before { | |
content: "\f169"; | |
} | |
.fa-youtube-play:before { | |
content: "\f16a"; | |
} | |
.fa-dropbox:before { | |
content: "\f16b"; | |
} | |
.fa-stack-overflow:before { | |
content: "\f16c"; | |
} | |
.fa-instagram:before { | |
content: "\f16d"; | |
} | |
.fa-flickr:before { | |
content: "\f16e"; | |
} | |
.fa-adn:before { | |
content: "\f170"; | |
} | |
.fa-bitbucket:before { | |
content: "\f171"; | |
} | |
.fa-bitbucket-square:before { | |
content: "\f172"; | |
} | |
.fa-tumblr:before { | |
content: "\f173"; | |
} | |
.fa-tumblr-square:before { | |
content: "\f174"; | |
} | |
.fa-long-arrow-down:before { | |
content: "\f175"; | |
} | |
.fa-long-arrow-up:before { | |
content: "\f176"; | |
} | |
.fa-long-arrow-left:before { | |
content: "\f177"; | |
} | |
.fa-long-arrow-right:before { | |
content: "\f178"; | |
} | |
.fa-apple:before { | |
content: "\f179"; | |
} | |
.fa-windows:before { | |
content: "\f17a"; | |
} | |
.fa-android:before { | |
content: "\f17b"; | |
} | |
.fa-linux:before { | |
content: "\f17c"; | |
} | |
.fa-dribbble:before { | |
content: "\f17d"; | |
} | |
.fa-skype:before { | |
content: "\f17e"; | |
} | |
.fa-foursquare:before { | |
content: "\f180"; | |
} | |
.fa-trello:before { | |
content: "\f181"; | |
} | |
.fa-female:before { | |
content: "\f182"; | |
} | |
.fa-male:before { | |
content: "\f183"; | |
} | |
.fa-gittip:before, | |
.fa-gratipay:before { | |
content: "\f184"; | |
} | |
.fa-sun-o:before { | |
content: "\f185"; | |
} | |
.fa-moon-o:before { | |
content: "\f186"; | |
} | |
.fa-archive:before { | |
content: "\f187"; | |
} | |
.fa-bug:before { | |
content: "\f188"; | |
} | |
.fa-vk:before { | |
content: "\f189"; | |
} | |
.fa-weibo:before { | |
content: "\f18a"; | |
} | |
.fa-renren:before { | |
content: "\f18b"; | |
} | |
.fa-pagelines:before { | |
content: "\f18c"; | |
} | |
.fa-stack-exchange:before { | |
content: "\f18d"; | |
} | |
.fa-arrow-circle-o-right:before { | |
content: "\f18e"; | |
} | |
.fa-arrow-circle-o-left:before { | |
content: "\f190"; | |
} | |
.fa-toggle-left:before, | |
.fa-caret-square-o-left:before { | |
content: "\f191"; | |
} | |
.fa-dot-circle-o:before { | |
content: "\f192"; | |
} | |
.fa-wheelchair:before { | |
content: "\f193"; | |
} | |
.fa-vimeo-square:before { | |
content: "\f194"; | |
} | |
.fa-turkish-lira:before, | |
.fa-try:before { | |
content: "\f195"; | |
} | |
.fa-plus-square-o:before { | |
content: "\f196"; | |
} | |
.fa-space-shuttle:before { | |
content: "\f197"; | |
} | |
.fa-slack:before { | |
content: "\f198"; | |
} | |
.fa-envelope-square:before { | |
content: "\f199"; | |
} | |
.fa-wordpress:before { | |
content: "\f19a"; | |
} | |
.fa-openid:before { | |
content: "\f19b"; | |
} | |
.fa-institution:before, | |
.fa-bank:before, | |
.fa-university:before { | |
content: "\f19c"; | |
} | |
.fa-mortar-board:before, | |
.fa-graduation-cap:before { | |
content: "\f19d"; | |
} | |
.fa-yahoo:before { | |
content: "\f19e"; | |
} | |
.fa-google:before { | |
content: "\f1a0"; | |
} | |
.fa-reddit:before { | |
content: "\f1a1"; | |
} | |
.fa-reddit-square:before { | |
content: "\f1a2"; | |
} | |
.fa-stumbleupon-circle:before { | |
content: "\f1a3"; | |
} | |
.fa-stumbleupon:before { | |
content: "\f1a4"; | |
} | |
.fa-delicious:before { | |
content: "\f1a5"; | |
} | |
.fa-digg:before { | |
content: "\f1a6"; | |
} | |
.fa-pied-piper-pp:before { | |
content: "\f1a7"; | |
} | |
.fa-pied-piper-alt:before { | |
content: "\f1a8"; | |
} | |
.fa-drupal:before { | |
content: "\f1a9"; | |
} | |
.fa-joomla:before { | |
content: "\f1aa"; | |
} | |
.fa-language:before { | |
content: "\f1ab"; | |
} | |
.fa-fax:before { | |
content: "\f1ac"; | |
} | |
.fa-building:before { | |
content: "\f1ad"; | |
} | |
.fa-child:before { | |
content: "\f1ae"; | |
} | |
.fa-paw:before { | |
content: "\f1b0"; | |
} | |
.fa-spoon:before { | |
content: "\f1b1"; | |
} | |
.fa-cube:before { | |
content: "\f1b2"; | |
} | |
.fa-cubes:before { | |
content: "\f1b3"; | |
} | |
.fa-behance:before { | |
content: "\f1b4"; | |
} | |
.fa-behance-square:before { | |
content: "\f1b5"; | |
} | |
.fa-steam:before { | |
content: "\f1b6"; | |
} | |
.fa-steam-square:before { | |
content: "\f1b7"; | |
} | |
.fa-recycle:before { | |
content: "\f1b8"; | |
} | |
.fa-automobile:before, | |
.fa-car:before { | |
content: "\f1b9"; | |
} | |
.fa-cab:before, | |
.fa-taxi:before { | |
content: "\f1ba"; | |
} | |
.fa-tree:before { | |
content: "\f1bb"; | |
} | |
.fa-spotify:before { | |
content: "\f1bc"; | |
} | |
.fa-deviantart:before { | |
content: "\f1bd"; | |
} | |
.fa-soundcloud:before { | |
content: "\f1be"; | |
} | |
.fa-database:before { | |
content: "\f1c0"; | |
} | |
.fa-file-pdf-o:before { | |
content: "\f1c1"; | |
} | |
.fa-file-word-o:before { | |
content: "\f1c2"; | |
} | |
.fa-file-excel-o:before { | |
content: "\f1c3"; | |
} | |
.fa-file-powerpoint-o:before { | |
content: "\f1c4"; | |
} | |
.fa-file-photo-o:before, | |
.fa-file-picture-o:before, | |
.fa-file-image-o:before { | |
content: "\f1c5"; | |
} | |
.fa-file-zip-o:before, | |
.fa-file-archive-o:before { | |
content: "\f1c6"; | |
} | |
.fa-file-sound-o:before, | |
.fa-file-audio-o:before { | |
content: "\f1c7"; | |
} | |
.fa-file-movie-o:before, | |
.fa-file-video-o:before { | |
content: "\f1c8"; | |
} | |
.fa-file-code-o:before { | |
content: "\f1c9"; | |
} | |
.fa-vine:before { | |
content: "\f1ca"; | |
} | |
.fa-codepen:before { | |
content: "\f1cb"; | |
} | |
.fa-jsfiddle:before { | |
content: "\f1cc"; | |
} | |
.fa-life-bouy:before, | |
.fa-life-buoy:before, | |
.fa-life-saver:before, | |
.fa-support:before, | |
.fa-life-ring:before { | |
content: "\f1cd"; | |
} | |
.fa-circle-o-notch:before { | |
content: "\f1ce"; | |
} | |
.fa-ra:before, | |
.fa-resistance:before, | |
.fa-rebel:before { | |
content: "\f1d0"; | |
} | |
.fa-ge:before, | |
.fa-empire:before { | |
content: "\f1d1"; | |
} | |
.fa-git-square:before { | |
content: "\f1d2"; | |
} | |
.fa-git:before { | |
content: "\f1d3"; | |
} | |
.fa-y-combinator-square:before, | |
.fa-yc-square:before, | |
.fa-hacker-news:before { | |
content: "\f1d4"; | |
} | |
.fa-tencent-weibo:before { | |
content: "\f1d5"; | |
} | |
.fa-qq:before { | |
content: "\f1d6"; | |
} | |
.fa-wechat:before, | |
.fa-weixin:before { | |
content: "\f1d7"; | |
} | |
.fa-send:before, | |
.fa-paper-plane:before { | |
content: "\f1d8"; | |
} | |
.fa-send-o:before, | |
.fa-paper-plane-o:before { | |
content: "\f1d9"; | |
} | |
.fa-history:before { | |
content: "\f1da"; | |
} | |
.fa-circle-thin:before { | |
content: "\f1db"; | |
} | |
.fa-header:before { | |
content: "\f1dc"; | |
} | |
.fa-paragraph:before { | |
content: "\f1dd"; | |
} | |
.fa-sliders:before { | |
content: "\f1de"; | |
} | |
.fa-share-alt:before { | |
content: "\f1e0"; | |
} | |
.fa-share-alt-square:before { | |
content: "\f1e1"; | |
} | |
.fa-bomb:before { | |
content: "\f1e2"; | |
} | |
.fa-soccer-ball-o:before, | |
.fa-futbol-o:before { | |
content: "\f1e3"; | |
} | |
.fa-tty:before { | |
content: "\f1e4"; | |
} | |
.fa-binoculars:before { | |
content: "\f1e5"; | |
} | |
.fa-plug:before { | |
content: "\f1e6"; | |
} | |
.fa-slideshare:before { | |
content: "\f1e7"; | |
} | |
.fa-twitch:before { | |
content: "\f1e8"; | |
} | |
.fa-yelp:before { | |
content: "\f1e9"; | |
} | |
.fa-newspaper-o:before { | |
content: "\f1ea"; | |
} | |
.fa-wifi:before { | |
content: "\f1eb"; | |
} | |
.fa-calculator:before { | |
content: "\f1ec"; | |
} | |
.fa-paypal:before { | |
content: "\f1ed"; | |
} | |
.fa-google-wallet:before { | |
content: "\f1ee"; | |
} | |
.fa-cc-visa:before { | |
content: "\f1f0"; | |
} | |
.fa-cc-mastercard:before { | |
content: "\f1f1"; | |
} | |
.fa-cc-discover:before { | |
content: "\f1f2"; | |
} | |
.fa-cc-amex:before { | |
content: "\f1f3"; | |
} | |
.fa-cc-paypal:before { | |
content: "\f1f4"; | |
} | |
.fa-cc-stripe:before { | |
content: "\f1f5"; | |
} | |
.fa-bell-slash:before { | |
content: "\f1f6"; | |
} | |
.fa-bell-slash-o:before { | |
content: "\f1f7"; | |
} | |
.fa-trash:before { | |
content: "\f1f8"; | |
} | |
.fa-copyright:before { | |
content: "\f1f9"; | |
} | |
.fa-at:before { | |
content: "\f1fa"; | |
} | |
.fa-eyedropper:before { | |
content: "\f1fb"; | |
} | |
.fa-paint-brush:before { | |
content: "\f1fc"; | |
} | |
.fa-birthday-cake:before { | |
content: "\f1fd"; | |
} | |
.fa-area-chart:before { | |
content: "\f1fe"; | |
} | |
.fa-pie-chart:before { | |
content: "\f200"; | |
} | |
.fa-line-chart:before { | |
content: "\f201"; | |
} | |
.fa-lastfm:before { | |
content: "\f202"; | |
} | |
.fa-lastfm-square:before { | |
content: "\f203"; | |
} | |
.fa-toggle-off:before { | |
content: "\f204"; | |
} | |
.fa-toggle-on:before { | |
content: "\f205"; | |
} | |
.fa-bicycle:before { | |
content: "\f206"; | |
} | |
.fa-bus:before { | |
content: "\f207"; | |
} | |
.fa-ioxhost:before { | |
content: "\f208"; | |
} | |
.fa-angellist:before { | |
content: "\f209"; | |
} | |
.fa-cc:before { | |
content: "\f20a"; | |
} | |
.fa-shekel:before, | |
.fa-sheqel:before, | |
.fa-ils:before { | |
content: "\f20b"; | |
} | |
.fa-meanpath:before { | |
content: "\f20c"; | |
} | |
.fa-buysellads:before { | |
content: "\f20d"; | |
} | |
.fa-connectdevelop:before { | |
content: "\f20e"; | |
} | |
.fa-dashcube:before { | |
content: "\f210"; | |
} | |
.fa-forumbee:before { | |
content: "\f211"; | |
} | |
.fa-leanpub:before { | |
content: "\f212"; | |
} | |
.fa-sellsy:before { | |
content: "\f213"; | |
} | |
.fa-shirtsinbulk:before { | |
content: "\f214"; | |
} | |
.fa-simplybuilt:before { | |
content: "\f215"; | |
} | |
.fa-skyatlas:before { | |
content: "\f216"; | |
} | |
.fa-cart-plus:before { | |
content: "\f217"; | |
} | |
.fa-cart-arrow-down:before { | |
content: "\f218"; | |
} | |
.fa-diamond:before { | |
content: "\f219"; | |
} | |
.fa-ship:before { | |
content: "\f21a"; | |
} | |
.fa-user-secret:before { | |
content: "\f21b"; | |
} | |
.fa-motorcycle:before { | |
content: "\f21c"; | |
} | |
.fa-street-view:before { | |
content: "\f21d"; | |
} | |
.fa-heartbeat:before { | |
content: "\f21e"; | |
} | |
.fa-venus:before { | |
content: "\f221"; | |
} | |
.fa-mars:before { | |
content: "\f222"; | |
} | |
.fa-mercury:before { | |
content: "\f223"; | |
} | |
.fa-intersex:before, | |
.fa-transgender:before { | |
content: "\f224"; | |
} | |
.fa-transgender-alt:before { | |
content: "\f225"; | |
} | |
.fa-venus-double:before { | |
content: "\f226"; | |
} | |
.fa-mars-double:before { | |
content: "\f227"; | |
} | |
.fa-venus-mars:before { | |
content: "\f228"; | |
} | |
.fa-mars-stroke:before { | |
content: "\f229"; | |
} | |
.fa-mars-stroke-v:before { | |
content: "\f22a"; | |
} | |
.fa-mars-stroke-h:before { | |
content: "\f22b"; | |
} | |
.fa-neuter:before { | |
content: "\f22c"; | |
} | |
.fa-genderless:before { | |
content: "\f22d"; | |
} | |
.fa-facebook-official:before { | |
content: "\f230"; | |
} | |
.fa-pinterest-p:before { | |
content: "\f231"; | |
} | |
.fa-whatsapp:before { | |
content: "\f232"; | |
} | |
.fa-server:before { | |
content: "\f233"; | |
} | |
.fa-user-plus:before { | |
content: "\f234"; | |
} | |
.fa-user-times:before { | |
content: "\f235"; | |
} | |
.fa-hotel:before, | |
.fa-bed:before { | |
content: "\f236"; | |
} | |
.fa-viacoin:before { | |
content: "\f237"; | |
} | |
.fa-train:before { | |
content: "\f238"; | |
} | |
.fa-subway:before { | |
content: "\f239"; | |
} | |
.fa-medium:before { | |
content: "\f23a"; | |
} | |
.fa-yc:before, | |
.fa-y-combinator:before { | |
content: "\f23b"; | |
} | |
.fa-optin-monster:before { | |
content: "\f23c"; | |
} | |
.fa-opencart:before { | |
content: "\f23d"; | |
} | |
.fa-expeditedssl:before { | |
content: "\f23e"; | |
} | |
.fa-battery-4:before, | |
.fa-battery:before, | |
.fa-battery-full:before { | |
content: "\f240"; | |
} | |
.fa-battery-3:before, | |
.fa-battery-three-quarters:before { | |
content: "\f241"; | |
} | |
.fa-battery-2:before, | |
.fa-battery-half:before { | |
content: "\f242"; | |
} | |
.fa-battery-1:before, | |
.fa-battery-quarter:before { | |
content: "\f243"; | |
} | |
.fa-battery-0:before, | |
.fa-battery-empty:before { | |
content: "\f244"; | |
} | |
.fa-mouse-pointer:before { | |
content: "\f245"; | |
} | |
.fa-i-cursor:before { | |
content: "\f246"; | |
} | |
.fa-object-group:before { | |
content: "\f247"; | |
} | |
.fa-object-ungroup:before { | |
content: "\f248"; | |
} | |
.fa-sticky-note:before { | |
content: "\f249"; | |
} | |
.fa-sticky-note-o:before { | |
content: "\f24a"; | |
} | |
.fa-cc-jcb:before { | |
content: "\f24b"; | |
} | |
.fa-cc-diners-club:before { | |
content: "\f24c"; | |
} | |
.fa-clone:before { | |
content: "\f24d"; | |
} | |
.fa-balance-scale:before { | |
content: "\f24e"; | |
} | |
.fa-hourglass-o:before { | |
content: "\f250"; | |
} | |
.fa-hourglass-1:before, | |
.fa-hourglass-start:before { | |
content: "\f251"; | |
} | |
.fa-hourglass-2:before, | |
.fa-hourglass-half:before { | |
content: "\f252"; | |
} | |
.fa-hourglass-3:before, | |
.fa-hourglass-end:before { | |
content: "\f253"; | |
} | |
.fa-hourglass:before { | |
content: "\f254"; | |
} | |
.fa-hand-grab-o:before, | |
.fa-hand-rock-o:before { | |
content: "\f255"; | |
} | |
.fa-hand-stop-o:before, | |
.fa-hand-paper-o:before { | |
content: "\f256"; | |
} | |
.fa-hand-scissors-o:before { | |
content: "\f257"; | |
} | |
.fa-hand-lizard-o:before { | |
content: "\f258"; | |
} | |
.fa-hand-spock-o:before { | |
content: "\f259"; | |
} | |
.fa-hand-pointer-o:before { | |
content: "\f25a"; | |
} | |
.fa-hand-peace-o:before { | |
content: "\f25b"; | |
} | |
.fa-trademark:before { | |
content: "\f25c"; | |
} | |
.fa-registered:before { | |
content: "\f25d"; | |
} | |
.fa-creative-commons:before { | |
content: "\f25e"; | |
} | |
.fa-gg:before { | |
content: "\f260"; | |
} | |
.fa-gg-circle:before { | |
content: "\f261"; | |
} | |
.fa-tripadvisor:before { | |
content: "\f262"; | |
} | |
.fa-odnoklassniki:before { | |
content: "\f263"; | |
} | |
.fa-odnoklassniki-square:before { | |
content: "\f264"; | |
} | |
.fa-get-pocket:before { | |
content: "\f265"; | |
} | |
.fa-wikipedia-w:before { | |
content: "\f266"; | |
} | |
.fa-safari:before { | |
content: "\f267"; | |
} | |
.fa-chrome:before { | |
content: "\f268"; | |
} | |
.fa-firefox:before { | |
content: "\f269"; | |
} | |
.fa-opera:before { | |
content: "\f26a"; | |
} | |
.fa-internet-explorer:before { | |
content: "\f26b"; | |
} | |
.fa-tv:before, | |
.fa-television:before { | |
content: "\f26c"; | |
} | |
.fa-contao:before { | |
content: "\f26d"; | |
} | |
.fa-500px:before { | |
content: "\f26e"; | |
} | |
.fa-amazon:before { | |
content: "\f270"; | |
} | |
.fa-calendar-plus-o:before { | |
content: "\f271"; | |
} | |
.fa-calendar-minus-o:before { | |
content: "\f272"; | |
} | |
.fa-calendar-times-o:before { | |
content: "\f273"; | |
} | |
.fa-calendar-check-o:before { | |
content: "\f274"; | |
} | |
.fa-industry:before { | |
content: "\f275"; | |
} | |
.fa-map-pin:before { | |
content: "\f276"; | |
} | |
.fa-map-signs:before { | |
content: "\f277"; | |
} | |
.fa-map-o:before { | |
content: "\f278"; | |
} | |
.fa-map:before { | |
content: "\f279"; | |
} | |
.fa-commenting:before { | |
content: "\f27a"; | |
} | |
.fa-commenting-o:before { | |
content: "\f27b"; | |
} | |
.fa-houzz:before { | |
content: "\f27c"; | |
} | |
.fa-vimeo:before { | |
content: "\f27d"; | |
} | |
.fa-black-tie:before { | |
content: "\f27e"; | |
} | |
.fa-fonticons:before { | |
content: "\f280"; | |
} | |
.fa-reddit-alien:before { | |
content: "\f281"; | |
} | |
.fa-edge:before { | |
content: "\f282"; | |
} | |
.fa-credit-card-alt:before { | |
content: "\f283"; | |
} | |
.fa-codiepie:before { | |
content: "\f284"; | |
} | |
.fa-modx:before { | |
content: "\f285"; | |
} | |
.fa-fort-awesome:before { | |
content: "\f286"; | |
} | |
.fa-usb:before { | |
content: "\f287"; | |
} | |
.fa-product-hunt:before { | |
content: "\f288"; | |
} | |
.fa-mixcloud:before { | |
content: "\f289"; | |
} | |
.fa-scribd:before { | |
content: "\f28a"; | |
} | |
.fa-pause-circle:before { | |
content: "\f28b"; | |
} | |
.fa-pause-circle-o:before { | |
content: "\f28c"; | |
} | |
.fa-stop-circle:before { | |
content: "\f28d"; | |
} | |
.fa-stop-circle-o:before { | |
content: "\f28e"; | |
} | |
.fa-shopping-bag:before { | |
content: "\f290"; | |
} | |
.fa-shopping-basket:before { | |
content: "\f291"; | |
} | |
.fa-hashtag:before { | |
content: "\f292"; | |
} | |
.fa-bluetooth:before { | |
content: "\f293"; | |
} | |
.fa-bluetooth-b:before { | |
content: "\f294"; | |
} | |
.fa-percent:before { | |
content: "\f295"; | |
} | |
.fa-gitlab:before { | |
content: "\f296"; | |
} | |
.fa-wpbeginner:before { | |
content: "\f297"; | |
} | |
.fa-wpforms:before { | |
content: "\f298"; | |
} | |
.fa-envira:before { | |
content: "\f299"; | |
} | |
.fa-universal-access:before { | |
content: "\f29a"; | |
} | |
.fa-wheelchair-alt:before { | |
content: "\f29b"; | |
} | |
.fa-question-circle-o:before { | |
content: "\f29c"; | |
} | |
.fa-blind:before { | |
content: "\f29d"; | |
} | |
.fa-audio-description:before { | |
content: "\f29e"; | |
} | |
.fa-volume-control-phone:before { | |
content: "\f2a0"; | |
} | |
.fa-braille:before { | |
content: "\f2a1"; | |
} | |
.fa-assistive-listening-systems:before { | |
content: "\f2a2"; | |
} | |
.fa-asl-interpreting:before, | |
.fa-american-sign-language-interpreting:before { | |
content: "\f2a3"; | |
} | |
.fa-deafness:before, | |
.fa-hard-of-hearing:before, | |
.fa-deaf:before { | |
content: "\f2a4"; | |
} | |
.fa-glide:before { | |
content: "\f2a5"; | |
} | |
.fa-glide-g:before { | |
content: "\f2a6"; | |
} | |
.fa-signing:before, | |
.fa-sign-language:before { | |
content: "\f2a7"; | |
} | |
.fa-low-vision:before { | |
content: "\f2a8"; | |
} | |
.fa-viadeo:before { | |
content: "\f2a9"; | |
} | |
.fa-viadeo-square:before { | |
content: "\f2aa"; | |
} | |
.fa-snapchat:before { | |
content: "\f2ab"; | |
} | |
.fa-snapchat-ghost:before { | |
content: "\f2ac"; | |
} | |
.fa-snapchat-square:before { | |
content: "\f2ad"; | |
} | |
.fa-pied-piper:before { | |
content: "\f2ae"; | |
} | |
.fa-first-order:before { | |
content: "\f2b0"; | |
} | |
.fa-yoast:before { | |
content: "\f2b1"; | |
} | |
.fa-themeisle:before { | |
content: "\f2b2"; | |
} | |
.fa-google-plus-circle:before, | |
.fa-google-plus-official:before { | |
content: "\f2b3"; | |
} | |
.fa-fa:before, | |
.fa-font-awesome:before { | |
content: "\f2b4"; | |
} | |
.fa-handshake-o:before { | |
content: "\f2b5"; | |
} | |
.fa-envelope-open:before { | |
content: "\f2b6"; | |
} | |
.fa-envelope-open-o:before { | |
content: "\f2b7"; | |
} | |
.fa-linode:before { | |
content: "\f2b8"; | |
} | |
.fa-address-book:before { | |
content: "\f2b9"; | |
} | |
.fa-address-book-o:before { | |
content: "\f2ba"; | |
} | |
.fa-vcard:before, | |
.fa-address-card:before { | |
content: "\f2bb"; | |
} | |
.fa-vcard-o:before, | |
.fa-address-card-o:before { | |
content: "\f2bc"; | |
} | |
.fa-user-circle:before { | |
content: "\f2bd"; | |
} | |
.fa-user-circle-o:before { | |
content: "\f2be"; | |
} | |
.fa-user-o:before { | |
content: "\f2c0"; | |
} | |
.fa-id-badge:before { | |
content: "\f2c1"; | |
} | |
.fa-drivers-license:before, | |
.fa-id-card:before { | |
content: "\f2c2"; | |
} | |
.fa-drivers-license-o:before, | |
.fa-id-card-o:before { | |
content: "\f2c3"; | |
} | |
.fa-quora:before { | |
content: "\f2c4"; | |
} | |
.fa-free-code-camp:before { | |
content: "\f2c5"; | |
} | |
.fa-telegram:before { | |
content: "\f2c6"; | |
} | |
.fa-thermometer-4:before, | |
.fa-thermometer:before, | |
.fa-thermometer-full:before { | |
content: "\f2c7"; | |
} | |
.fa-thermometer-3:before, | |
.fa-thermometer-three-quarters:before { | |
content: "\f2c8"; | |
} | |
.fa-thermometer-2:before, | |
.fa-thermometer-half:before { | |
content: "\f2c9"; | |
} | |
.fa-thermometer-1:before, | |
.fa-thermometer-quarter:before { | |
content: "\f2ca"; | |
} | |
.fa-thermometer-0:before, | |
.fa-thermometer-empty:before { | |
content: "\f2cb"; | |
} | |
.fa-shower:before { | |
content: "\f2cc"; | |
} | |
.fa-bathtub:before, | |
.fa-s15:before, | |
.fa-bath:before { | |
content: "\f2cd"; | |
} | |
.fa-podcast:before { | |
content: "\f2ce"; | |
} | |
.fa-window-maximize:before { | |
content: "\f2d0"; | |
} | |
.fa-window-minimize:before { | |
content: "\f2d1"; | |
} | |
.fa-window-restore:before { | |
content: "\f2d2"; | |
} | |
.fa-times-rectangle:before, | |
.fa-window-close:before { | |
content: "\f2d3"; | |
} | |
.fa-times-rectangle-o:before, | |
.fa-window-close-o:before { | |
content: "\f2d4"; | |
} | |
.fa-bandcamp:before { | |
content: "\f2d5"; | |
} | |
.fa-grav:before { | |
content: "\f2d6"; | |
} | |
.fa-etsy:before { | |
content: "\f2d7"; | |
} | |
.fa-imdb:before { | |
content: "\f2d8"; | |
} | |
.fa-ravelry:before { | |
content: "\f2d9"; | |
} | |
.fa-eercast:before { | |
content: "\f2da"; | |
} | |
.fa-microchip:before { | |
content: "\f2db"; | |
} | |
.fa-snowflake-o:before { | |
content: "\f2dc"; | |
} | |
.fa-superpowers:before { | |
content: "\f2dd"; | |
} | |
.fa-wpexplorer:before { | |
content: "\f2de"; | |
} | |
.fa-meetup:before { | |
content: "\f2e0"; | |
} | |
.sr-only { | |
position: absolute; | |
width: 1px; | |
height: 1px; | |
padding: 0; | |
margin: -1px; | |
overflow: hidden; | |
clip: rect(0, 0, 0, 0); | |
border: 0; | |
} | |
.sr-only-focusable:active, | |
.sr-only-focusable:focus { | |
position: static; | |
width: auto; | |
height: auto; | |
margin: 0; | |
overflow: visible; | |
clip: auto; | |
} | |
.sr-only-focusable:active, | |
.sr-only-focusable:focus { | |
position: static; | |
width: auto; | |
height: auto; | |
margin: 0; | |
overflow: visible; | |
clip: auto; | |
} | |
/*! | |
* | |
* IPython base | |
* | |
*/ | |
.modal.fade .modal-dialog { | |
-webkit-transform: translate(0, 0); | |
-ms-transform: translate(0, 0); | |
-o-transform: translate(0, 0); | |
transform: translate(0, 0); | |
} | |
code { | |
color: #000; | |
} | |
pre { | |
font-size: inherit; | |
line-height: inherit; | |
} | |
label { | |
font-weight: normal; | |
} | |
/* Make the page background atleast 100% the height of the view port */ | |
/* Make the page itself atleast 70% the height of the view port */ | |
.border-box-sizing { | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
.corner-all { | |
border-radius: 2px; | |
} | |
.no-padding { | |
padding: 0px; | |
} | |
/* Flexible box model classes */ | |
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */ | |
/* This file is a compatability layer. It allows the usage of flexible box | |
model layouts accross multiple browsers, including older browsers. The newest, | |
universal implementation of the flexible box model is used when available (see | |
`Modern browsers` comments below). Browsers that are known to implement this | |
new spec completely include: | |
Firefox 28.0+ | |
Chrome 29.0+ | |
Internet Explorer 11+ | |
Opera 17.0+ | |
Browsers not listed, including Safari, are supported via the styling under the | |
`Old browsers` comments below. | |
*/ | |
.hbox { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
} | |
.hbox > * { | |
/* Old browsers */ | |
-webkit-box-flex: 0; | |
-moz-box-flex: 0; | |
box-flex: 0; | |
/* Modern browsers */ | |
flex: none; | |
} | |
.vbox { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
} | |
.vbox > * { | |
/* Old browsers */ | |
-webkit-box-flex: 0; | |
-moz-box-flex: 0; | |
box-flex: 0; | |
/* Modern browsers */ | |
flex: none; | |
} | |
.hbox.reverse, | |
.vbox.reverse, | |
.reverse { | |
/* Old browsers */ | |
-webkit-box-direction: reverse; | |
-moz-box-direction: reverse; | |
box-direction: reverse; | |
/* Modern browsers */ | |
flex-direction: row-reverse; | |
} | |
.hbox.box-flex0, | |
.vbox.box-flex0, | |
.box-flex0 { | |
/* Old browsers */ | |
-webkit-box-flex: 0; | |
-moz-box-flex: 0; | |
box-flex: 0; | |
/* Modern browsers */ | |
flex: none; | |
width: auto; | |
} | |
.hbox.box-flex1, | |
.vbox.box-flex1, | |
.box-flex1 { | |
/* Old browsers */ | |
-webkit-box-flex: 1; | |
-moz-box-flex: 1; | |
box-flex: 1; | |
/* Modern browsers */ | |
flex: 1; | |
} | |
.hbox.box-flex, | |
.vbox.box-flex, | |
.box-flex { | |
/* Old browsers */ | |
/* Old browsers */ | |
-webkit-box-flex: 1; | |
-moz-box-flex: 1; | |
box-flex: 1; | |
/* Modern browsers */ | |
flex: 1; | |
} | |
.hbox.box-flex2, | |
.vbox.box-flex2, | |
.box-flex2 { | |
/* Old browsers */ | |
-webkit-box-flex: 2; | |
-moz-box-flex: 2; | |
box-flex: 2; | |
/* Modern browsers */ | |
flex: 2; | |
} | |
.box-group1 { | |
/* Deprecated */ | |
-webkit-box-flex-group: 1; | |
-moz-box-flex-group: 1; | |
box-flex-group: 1; | |
} | |
.box-group2 { | |
/* Deprecated */ | |
-webkit-box-flex-group: 2; | |
-moz-box-flex-group: 2; | |
box-flex-group: 2; | |
} | |
.hbox.start, | |
.vbox.start, | |
.start { | |
/* Old browsers */ | |
-webkit-box-pack: start; | |
-moz-box-pack: start; | |
box-pack: start; | |
/* Modern browsers */ | |
justify-content: flex-start; | |
} | |
.hbox.end, | |
.vbox.end, | |
.end { | |
/* Old browsers */ | |
-webkit-box-pack: end; | |
-moz-box-pack: end; | |
box-pack: end; | |
/* Modern browsers */ | |
justify-content: flex-end; | |
} | |
.hbox.center, | |
.vbox.center, | |
.center { | |
/* Old browsers */ | |
-webkit-box-pack: center; | |
-moz-box-pack: center; | |
box-pack: center; | |
/* Modern browsers */ | |
justify-content: center; | |
} | |
.hbox.baseline, | |
.vbox.baseline, | |
.baseline { | |
/* Old browsers */ | |
-webkit-box-pack: baseline; | |
-moz-box-pack: baseline; | |
box-pack: baseline; | |
/* Modern browsers */ | |
justify-content: baseline; | |
} | |
.hbox.stretch, | |
.vbox.stretch, | |
.stretch { | |
/* Old browsers */ | |
-webkit-box-pack: stretch; | |
-moz-box-pack: stretch; | |
box-pack: stretch; | |
/* Modern browsers */ | |
justify-content: stretch; | |
} | |
.hbox.align-start, | |
.vbox.align-start, | |
.align-start { | |
/* Old browsers */ | |
-webkit-box-align: start; | |
-moz-box-align: start; | |
box-align: start; | |
/* Modern browsers */ | |
align-items: flex-start; | |
} | |
.hbox.align-end, | |
.vbox.align-end, | |
.align-end { | |
/* Old browsers */ | |
-webkit-box-align: end; | |
-moz-box-align: end; | |
box-align: end; | |
/* Modern browsers */ | |
align-items: flex-end; | |
} | |
.hbox.align-center, | |
.vbox.align-center, | |
.align-center { | |
/* Old browsers */ | |
-webkit-box-align: center; | |
-moz-box-align: center; | |
box-align: center; | |
/* Modern browsers */ | |
align-items: center; | |
} | |
.hbox.align-baseline, | |
.vbox.align-baseline, | |
.align-baseline { | |
/* Old browsers */ | |
-webkit-box-align: baseline; | |
-moz-box-align: baseline; | |
box-align: baseline; | |
/* Modern browsers */ | |
align-items: baseline; | |
} | |
.hbox.align-stretch, | |
.vbox.align-stretch, | |
.align-stretch { | |
/* Old browsers */ | |
-webkit-box-align: stretch; | |
-moz-box-align: stretch; | |
box-align: stretch; | |
/* Modern browsers */ | |
align-items: stretch; | |
} | |
div.error { | |
margin: 2em; | |
text-align: center; | |
} | |
div.error > h1 { | |
font-size: 500%; | |
line-height: normal; | |
} | |
div.error > p { | |
font-size: 200%; | |
line-height: normal; | |
} | |
div.traceback-wrapper { | |
text-align: left; | |
max-width: 800px; | |
margin: auto; | |
} | |
div.traceback-wrapper pre.traceback { | |
max-height: 600px; | |
overflow: auto; | |
} | |
/** | |
* Primary styles | |
* | |
* Author: Jupyter Development Team | |
*/ | |
body { | |
background-color: #fff; | |
/* This makes sure that the body covers the entire window and needs to | |
be in a different element than the display: box in wrapper below */ | |
position: absolute; | |
left: 0px; | |
right: 0px; | |
top: 0px; | |
bottom: 0px; | |
overflow: visible; | |
} | |
body > #header { | |
/* Initially hidden to prevent FLOUC */ | |
display: none; | |
background-color: #fff; | |
/* Display over codemirror */ | |
position: relative; | |
z-index: 100; | |
} | |
body > #header #header-container { | |
display: flex; | |
flex-direction: row; | |
justify-content: space-between; | |
padding: 5px; | |
padding-bottom: 5px; | |
padding-top: 5px; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
body > #header .header-bar { | |
width: 100%; | |
height: 1px; | |
background: #e7e7e7; | |
margin-bottom: -1px; | |
} | |
@media print { | |
body > #header { | |
display: none !important; | |
} | |
} | |
#header-spacer { | |
width: 100%; | |
visibility: hidden; | |
} | |
@media print { | |
#header-spacer { | |
display: none; | |
} | |
} | |
#ipython_notebook { | |
padding-left: 0px; | |
padding-top: 1px; | |
padding-bottom: 1px; | |
} | |
[dir="rtl"] #ipython_notebook { | |
margin-right: 10px; | |
margin-left: 0; | |
} | |
[dir="rtl"] #ipython_notebook.pull-left { | |
float: right !important; | |
float: right; | |
} | |
.flex-spacer { | |
flex: 1; | |
} | |
#noscript { | |
width: auto; | |
padding-top: 16px; | |
padding-bottom: 16px; | |
text-align: center; | |
font-size: 22px; | |
color: red; | |
font-weight: bold; | |
} | |
#ipython_notebook img { | |
height: 28px; | |
} | |
#site { | |
width: 100%; | |
display: none; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
overflow: auto; | |
} | |
@media print { | |
#site { | |
height: auto !important; | |
} | |
} | |
/* Smaller buttons */ | |
.ui-button .ui-button-text { | |
padding: 0.2em 0.8em; | |
font-size: 77%; | |
} | |
input.ui-button { | |
padding: 0.3em 0.9em; | |
} | |
span#kernel_logo_widget { | |
margin: 0 10px; | |
} | |
span#login_widget { | |
float: right; | |
} | |
[dir="rtl"] span#login_widget { | |
float: left; | |
} | |
span#login_widget > .button, | |
#logout { | |
color: #333; | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
span#login_widget > .button:focus, | |
#logout:focus, | |
span#login_widget > .button.focus, | |
#logout.focus { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #8c8c8c; | |
} | |
span#login_widget > .button:hover, | |
#logout:hover { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
span#login_widget > .button:active, | |
#logout:active, | |
span#login_widget > .button.active, | |
#logout.active, | |
.open > .dropdown-togglespan#login_widget > .button, | |
.open > .dropdown-toggle#logout { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
span#login_widget > .button:active:hover, | |
#logout:active:hover, | |
span#login_widget > .button.active:hover, | |
#logout.active:hover, | |
.open > .dropdown-togglespan#login_widget > .button:hover, | |
.open > .dropdown-toggle#logout:hover, | |
span#login_widget > .button:active:focus, | |
#logout:active:focus, | |
span#login_widget > .button.active:focus, | |
#logout.active:focus, | |
.open > .dropdown-togglespan#login_widget > .button:focus, | |
.open > .dropdown-toggle#logout:focus, | |
span#login_widget > .button:active.focus, | |
#logout:active.focus, | |
span#login_widget > .button.active.focus, | |
#logout.active.focus, | |
.open > .dropdown-togglespan#login_widget > .button.focus, | |
.open > .dropdown-toggle#logout.focus { | |
color: #333; | |
background-color: #d4d4d4; | |
border-color: #8c8c8c; | |
} | |
span#login_widget > .button:active, | |
#logout:active, | |
span#login_widget > .button.active, | |
#logout.active, | |
.open > .dropdown-togglespan#login_widget > .button, | |
.open > .dropdown-toggle#logout { | |
background-image: none; | |
} | |
span#login_widget > .button.disabled:hover, | |
#logout.disabled:hover, | |
span#login_widget > .button[disabled]:hover, | |
#logout[disabled]:hover, | |
fieldset[disabled] span#login_widget > .button:hover, | |
fieldset[disabled] #logout:hover, | |
span#login_widget > .button.disabled:focus, | |
#logout.disabled:focus, | |
span#login_widget > .button[disabled]:focus, | |
#logout[disabled]:focus, | |
fieldset[disabled] span#login_widget > .button:focus, | |
fieldset[disabled] #logout:focus, | |
span#login_widget > .button.disabled.focus, | |
#logout.disabled.focus, | |
span#login_widget > .button[disabled].focus, | |
#logout[disabled].focus, | |
fieldset[disabled] span#login_widget > .button.focus, | |
fieldset[disabled] #logout.focus { | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
span#login_widget > .button .badge, | |
#logout .badge { | |
color: #fff; | |
background-color: #333; | |
} | |
.nav-header { | |
text-transform: none; | |
} | |
#header > span { | |
margin-top: 10px; | |
} | |
.modal_stretch .modal-dialog { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
min-height: 80vh; | |
} | |
.modal_stretch .modal-dialog .modal-body { | |
max-height: calc(100vh - 200px); | |
overflow: auto; | |
flex: 1; | |
} | |
.modal-header { | |
cursor: move; | |
} | |
@media (min-width: 768px) { | |
.modal .modal-dialog { | |
width: 700px; | |
} | |
} | |
@media (min-width: 768px) { | |
select.form-control { | |
margin-left: 12px; | |
margin-right: 12px; | |
} | |
} | |
/*! | |
* | |
* IPython auth | |
* | |
*/ | |
.center-nav { | |
display: inline-block; | |
margin-bottom: -4px; | |
} | |
[dir="rtl"] .center-nav form.pull-left { | |
float: right !important; | |
float: right; | |
} | |
[dir="rtl"] .center-nav .navbar-text { | |
float: right; | |
} | |
[dir="rtl"] .navbar-inner { | |
text-align: right; | |
} | |
[dir="rtl"] div.text-left { | |
text-align: right; | |
} | |
/*! | |
* | |
* IPython tree view | |
* | |
*/ | |
/* We need an invisible input field on top of the sentense*/ | |
/* "Drag file onto the list ..." */ | |
.alternate_upload { | |
background-color: none; | |
display: inline; | |
} | |
.alternate_upload.form { | |
padding: 0; | |
margin: 0; | |
} | |
.alternate_upload input.fileinput { | |
position: absolute; | |
display: block; | |
width: 100%; | |
height: 100%; | |
overflow: hidden; | |
cursor: pointer; | |
opacity: 0; | |
z-index: 2; | |
} | |
.alternate_upload .btn-xs > input.fileinput { | |
margin: -1px -5px; | |
} | |
.alternate_upload .btn-upload { | |
position: relative; | |
height: 22px; | |
} | |
::-webkit-file-upload-button { | |
cursor: pointer; | |
} | |
/** | |
* Primary styles | |
* | |
* Author: Jupyter Development Team | |
*/ | |
ul#tabs { | |
margin-bottom: 4px; | |
} | |
ul#tabs a { | |
padding-top: 6px; | |
padding-bottom: 4px; | |
} | |
[dir="rtl"] ul#tabs.nav-tabs > li { | |
float: right; | |
} | |
[dir="rtl"] ul#tabs.nav.nav-tabs { | |
padding-right: 0; | |
} | |
ul.breadcrumb a:focus, | |
ul.breadcrumb a:hover { | |
text-decoration: none; | |
} | |
ul.breadcrumb i.icon-home { | |
font-size: 16px; | |
margin-right: 4px; | |
} | |
ul.breadcrumb span { | |
color: #5e5e5e; | |
} | |
.list_toolbar { | |
padding: 4px 0 4px 0; | |
vertical-align: middle; | |
} | |
.list_toolbar .tree-buttons { | |
padding-top: 1px; | |
} | |
[dir="rtl"] .list_toolbar .tree-buttons .pull-right { | |
float: left !important; | |
float: left; | |
} | |
[dir="rtl"] .list_toolbar .col-sm-4, | |
[dir="rtl"] .list_toolbar .col-sm-8 { | |
float: right; | |
} | |
.dynamic-buttons { | |
padding-top: 3px; | |
display: inline-block; | |
} | |
.list_toolbar [class*="span"] { | |
min-height: 24px; | |
} | |
.list_header { | |
font-weight: bold; | |
background-color: #EEE; | |
} | |
.list_placeholder { | |
font-weight: bold; | |
padding-top: 4px; | |
padding-bottom: 4px; | |
padding-left: 7px; | |
padding-right: 7px; | |
} | |
.list_container { | |
margin-top: 4px; | |
margin-bottom: 20px; | |
border: 1px solid #ddd; | |
border-radius: 2px; | |
} | |
.list_container > div { | |
border-bottom: 1px solid #ddd; | |
} | |
.list_container > div:hover .list-item { | |
background-color: red; | |
} | |
.list_container > div:last-child { | |
border: none; | |
} | |
.list_item:hover .list_item { | |
background-color: #ddd; | |
} | |
.list_item a { | |
text-decoration: none; | |
} | |
.list_item:hover { | |
background-color: #fafafa; | |
} | |
.list_header > div, | |
.list_item > div { | |
padding-top: 4px; | |
padding-bottom: 4px; | |
padding-left: 7px; | |
padding-right: 7px; | |
line-height: 22px; | |
} | |
.list_header > div input, | |
.list_item > div input { | |
margin-right: 7px; | |
margin-left: 14px; | |
vertical-align: text-bottom; | |
line-height: 22px; | |
position: relative; | |
top: -1px; | |
} | |
.list_header > div .item_link, | |
.list_item > div .item_link { | |
margin-left: -1px; | |
vertical-align: baseline; | |
line-height: 22px; | |
} | |
[dir="rtl"] .list_item > div input { | |
margin-right: 0; | |
} | |
.new-file input[type=checkbox] { | |
visibility: hidden; | |
} | |
.item_name { | |
line-height: 22px; | |
height: 24px; | |
} | |
.item_icon { | |
font-size: 14px; | |
color: #5e5e5e; | |
margin-right: 7px; | |
margin-left: 7px; | |
line-height: 22px; | |
vertical-align: baseline; | |
} | |
.item_modified { | |
margin-right: 7px; | |
margin-left: 7px; | |
} | |
[dir="rtl"] .item_modified.pull-right { | |
float: left !important; | |
float: left; | |
} | |
.item_buttons { | |
line-height: 1em; | |
margin-left: -5px; | |
} | |
.item_buttons .btn, | |
.item_buttons .btn-group, | |
.item_buttons .input-group { | |
float: left; | |
} | |
.item_buttons > .btn, | |
.item_buttons > .btn-group, | |
.item_buttons > .input-group { | |
margin-left: 5px; | |
} | |
.item_buttons .btn { | |
min-width: 13ex; | |
} | |
.item_buttons .running-indicator { | |
padding-top: 4px; | |
color: #5cb85c; | |
} | |
.item_buttons .kernel-name { | |
padding-top: 4px; | |
color: #5bc0de; | |
margin-right: 7px; | |
float: left; | |
} | |
[dir="rtl"] .item_buttons.pull-right { | |
float: left !important; | |
float: left; | |
} | |
[dir="rtl"] .item_buttons .kernel-name { | |
margin-left: 7px; | |
float: right; | |
} | |
.toolbar_info { | |
height: 24px; | |
line-height: 24px; | |
} | |
.list_item input:not([type=checkbox]) { | |
padding-top: 3px; | |
padding-bottom: 3px; | |
height: 22px; | |
line-height: 14px; | |
margin: 0px; | |
} | |
.highlight_text { | |
color: blue; | |
} | |
#project_name { | |
display: inline-block; | |
padding-left: 7px; | |
margin-left: -2px; | |
} | |
#project_name > .breadcrumb { | |
padding: 0px; | |
margin-bottom: 0px; | |
background-color: transparent; | |
font-weight: bold; | |
} | |
.sort_button { | |
display: inline-block; | |
padding-left: 7px; | |
} | |
[dir="rtl"] .sort_button.pull-right { | |
float: left !important; | |
float: left; | |
} | |
#tree-selector { | |
padding-right: 0px; | |
} | |
#button-select-all { | |
min-width: 50px; | |
} | |
[dir="rtl"] #button-select-all.btn { | |
float: right ; | |
} | |
#select-all { | |
margin-left: 7px; | |
margin-right: 2px; | |
margin-top: 2px; | |
height: 16px; | |
} | |
[dir="rtl"] #select-all.pull-left { | |
float: right !important; | |
float: right; | |
} | |
.menu_icon { | |
margin-right: 2px; | |
} | |
.tab-content .row { | |
margin-left: 0px; | |
margin-right: 0px; | |
} | |
.folder_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f114"; | |
} | |
.folder_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.folder_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.folder_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.folder_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.notebook_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f02d"; | |
position: relative; | |
top: -1px; | |
} | |
.notebook_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.notebook_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.notebook_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.notebook_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.running_notebook_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f02d"; | |
position: relative; | |
top: -1px; | |
color: #5cb85c; | |
} | |
.running_notebook_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.running_notebook_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.running_notebook_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.running_notebook_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.file_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f016"; | |
position: relative; | |
top: -2px; | |
} | |
.file_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.file_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.file_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.file_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
#notebook_toolbar .pull-right { | |
padding-top: 0px; | |
margin-right: -1px; | |
} | |
ul#new-menu { | |
left: auto; | |
right: 0; | |
} | |
#new-menu .dropdown-header { | |
font-size: 10px; | |
border-bottom: 1px solid #e5e5e5; | |
padding: 0 0 3px; | |
margin: -3px 20px 0; | |
} | |
.kernel-menu-icon { | |
padding-right: 12px; | |
width: 24px; | |
content: "\f096"; | |
} | |
.kernel-menu-icon:before { | |
content: "\f096"; | |
} | |
.kernel-menu-icon-current:before { | |
content: "\f00c"; | |
} | |
#tab_content { | |
padding-top: 20px; | |
} | |
#running .panel-group .panel { | |
margin-top: 3px; | |
margin-bottom: 1em; | |
} | |
#running .panel-group .panel .panel-heading { | |
background-color: #EEE; | |
padding-top: 4px; | |
padding-bottom: 4px; | |
padding-left: 7px; | |
padding-right: 7px; | |
line-height: 22px; | |
} | |
#running .panel-group .panel .panel-heading a:focus, | |
#running .panel-group .panel .panel-heading a:hover { | |
text-decoration: none; | |
} | |
#running .panel-group .panel .panel-body { | |
padding: 0px; | |
} | |
#running .panel-group .panel .panel-body .list_container { | |
margin-top: 0px; | |
margin-bottom: 0px; | |
border: 0px; | |
border-radius: 0px; | |
} | |
#running .panel-group .panel .panel-body .list_container .list_item { | |
border-bottom: 1px solid #ddd; | |
} | |
#running .panel-group .panel .panel-body .list_container .list_item:last-child { | |
border-bottom: 0px; | |
} | |
.delete-button { | |
display: none; | |
} | |
.duplicate-button { | |
display: none; | |
} | |
.rename-button { | |
display: none; | |
} | |
.move-button { | |
display: none; | |
} | |
.download-button { | |
display: none; | |
} | |
.shutdown-button { | |
display: none; | |
} | |
.dynamic-instructions { | |
display: inline-block; | |
padding-top: 4px; | |
} | |
/*! | |
* | |
* IPython text editor webapp | |
* | |
*/ | |
.selected-keymap i.fa { | |
padding: 0px 5px; | |
} | |
.selected-keymap i.fa:before { | |
content: "\f00c"; | |
} | |
#mode-menu { | |
overflow: auto; | |
max-height: 20em; | |
} | |
.edit_app #header { | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
} | |
.edit_app #menubar .navbar { | |
/* Use a negative 1 bottom margin, so the border overlaps the border of the | |
header */ | |
margin-bottom: -1px; | |
} | |
.dirty-indicator { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
width: 20px; | |
} | |
.dirty-indicator.fa-pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator.fa-pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator.pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator.pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-dirty { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
width: 20px; | |
} | |
.dirty-indicator-dirty.fa-pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-dirty.fa-pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-dirty.pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-dirty.pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-clean { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
width: 20px; | |
} | |
.dirty-indicator-clean.fa-pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-clean.fa-pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-clean.pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-clean.pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-clean:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f00c"; | |
} | |
.dirty-indicator-clean:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-clean:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.dirty-indicator-clean:before.pull-left { | |
margin-right: .3em; | |
} | |
.dirty-indicator-clean:before.pull-right { | |
margin-left: .3em; | |
} | |
#filename { | |
font-size: 16pt; | |
display: table; | |
padding: 0px 5px; | |
} | |
#current-mode { | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
#texteditor-backdrop { | |
padding-top: 20px; | |
padding-bottom: 20px; | |
} | |
@media not print { | |
#texteditor-backdrop { | |
background-color: #EEE; | |
} | |
} | |
@media print { | |
#texteditor-backdrop #texteditor-container .CodeMirror-gutter, | |
#texteditor-backdrop #texteditor-container .CodeMirror-gutters { | |
background-color: #fff; | |
} | |
} | |
@media not print { | |
#texteditor-backdrop #texteditor-container .CodeMirror-gutter, | |
#texteditor-backdrop #texteditor-container .CodeMirror-gutters { | |
background-color: #fff; | |
} | |
} | |
@media not print { | |
#texteditor-backdrop #texteditor-container { | |
padding: 0px; | |
background-color: #fff; | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
} | |
} | |
.CodeMirror-dialog { | |
background-color: #fff; | |
} | |
/*! | |
* | |
* IPython notebook | |
* | |
*/ | |
/* CSS font colors for translated ANSI escape sequences */ | |
/* The color values are a mix of | |
http://www.xcolors.net/dl/baskerville-ivorylight and | |
http://www.xcolors.net/dl/euphrasia */ | |
.ansi-black-fg { | |
color: #3E424D; | |
} | |
.ansi-black-bg { | |
background-color: #3E424D; | |
} | |
.ansi-black-intense-fg { | |
color: #282C36; | |
} | |
.ansi-black-intense-bg { | |
background-color: #282C36; | |
} | |
.ansi-red-fg { | |
color: #E75C58; | |
} | |
.ansi-red-bg { | |
background-color: #E75C58; | |
} | |
.ansi-red-intense-fg { | |
color: #B22B31; | |
} | |
.ansi-red-intense-bg { | |
background-color: #B22B31; | |
} | |
.ansi-green-fg { | |
color: #00A250; | |
} | |
.ansi-green-bg { | |
background-color: #00A250; | |
} | |
.ansi-green-intense-fg { | |
color: #007427; | |
} | |
.ansi-green-intense-bg { | |
background-color: #007427; | |
} | |
.ansi-yellow-fg { | |
color: #DDB62B; | |
} | |
.ansi-yellow-bg { | |
background-color: #DDB62B; | |
} | |
.ansi-yellow-intense-fg { | |
color: #B27D12; | |
} | |
.ansi-yellow-intense-bg { | |
background-color: #B27D12; | |
} | |
.ansi-blue-fg { | |
color: #208FFB; | |
} | |
.ansi-blue-bg { | |
background-color: #208FFB; | |
} | |
.ansi-blue-intense-fg { | |
color: #0065CA; | |
} | |
.ansi-blue-intense-bg { | |
background-color: #0065CA; | |
} | |
.ansi-magenta-fg { | |
color: #D160C4; | |
} | |
.ansi-magenta-bg { | |
background-color: #D160C4; | |
} | |
.ansi-magenta-intense-fg { | |
color: #A03196; | |
} | |
.ansi-magenta-intense-bg { | |
background-color: #A03196; | |
} | |
.ansi-cyan-fg { | |
color: #60C6C8; | |
} | |
.ansi-cyan-bg { | |
background-color: #60C6C8; | |
} | |
.ansi-cyan-intense-fg { | |
color: #258F8F; | |
} | |
.ansi-cyan-intense-bg { | |
background-color: #258F8F; | |
} | |
.ansi-white-fg { | |
color: #C5C1B4; | |
} | |
.ansi-white-bg { | |
background-color: #C5C1B4; | |
} | |
.ansi-white-intense-fg { | |
color: #A1A6B2; | |
} | |
.ansi-white-intense-bg { | |
background-color: #A1A6B2; | |
} | |
.ansi-default-inverse-fg { | |
color: #FFFFFF; | |
} | |
.ansi-default-inverse-bg { | |
background-color: #000000; | |
} | |
.ansi-bold { | |
font-weight: bold; | |
} | |
.ansi-underline { | |
text-decoration: underline; | |
} | |
/* The following styles are deprecated an will be removed in a future version */ | |
.ansibold { | |
font-weight: bold; | |
} | |
.ansi-inverse { | |
outline: 0.5px dotted; | |
} | |
/* use dark versions for foreground, to improve visibility */ | |
.ansiblack { | |
color: black; | |
} | |
.ansired { | |
color: darkred; | |
} | |
.ansigreen { | |
color: darkgreen; | |
} | |
.ansiyellow { | |
color: #c4a000; | |
} | |
.ansiblue { | |
color: darkblue; | |
} | |
.ansipurple { | |
color: darkviolet; | |
} | |
.ansicyan { | |
color: steelblue; | |
} | |
.ansigray { | |
color: gray; | |
} | |
/* and light for background, for the same reason */ | |
.ansibgblack { | |
background-color: black; | |
} | |
.ansibgred { | |
background-color: red; | |
} | |
.ansibggreen { | |
background-color: green; | |
} | |
.ansibgyellow { | |
background-color: yellow; | |
} | |
.ansibgblue { | |
background-color: blue; | |
} | |
.ansibgpurple { | |
background-color: magenta; | |
} | |
.ansibgcyan { | |
background-color: cyan; | |
} | |
.ansibggray { | |
background-color: gray; | |
} | |
div.cell { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
border-radius: 2px; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
border-width: 1px; | |
border-style: solid; | |
border-color: transparent; | |
width: 100%; | |
padding: 5px; | |
/* This acts as a spacer between cells, that is outside the border */ | |
margin: 0px; | |
outline: none; | |
position: relative; | |
overflow: visible; | |
} | |
div.cell:before { | |
position: absolute; | |
display: block; | |
top: -1px; | |
left: -1px; | |
width: 5px; | |
height: calc(100% + 2px); | |
content: ''; | |
background: transparent; | |
} | |
div.cell.jupyter-soft-selected { | |
border-left-color: #E3F2FD; | |
border-left-width: 1px; | |
padding-left: 5px; | |
border-right-color: #E3F2FD; | |
border-right-width: 1px; | |
background: #E3F2FD; | |
} | |
@media print { | |
div.cell.jupyter-soft-selected { | |
border-color: transparent; | |
} | |
} | |
div.cell.selected, | |
div.cell.selected.jupyter-soft-selected { | |
border-color: #ababab; | |
} | |
div.cell.selected:before, | |
div.cell.selected.jupyter-soft-selected:before { | |
position: absolute; | |
display: block; | |
top: -1px; | |
left: -1px; | |
width: 5px; | |
height: calc(100% + 2px); | |
content: ''; | |
background: #42A5F5; | |
} | |
@media print { | |
div.cell.selected, | |
div.cell.selected.jupyter-soft-selected { | |
border-color: transparent; | |
} | |
} | |
.edit_mode div.cell.selected { | |
border-color: #66BB6A; | |
} | |
.edit_mode div.cell.selected:before { | |
position: absolute; | |
display: block; | |
top: -1px; | |
left: -1px; | |
width: 5px; | |
height: calc(100% + 2px); | |
content: ''; | |
background: #66BB6A; | |
} | |
@media print { | |
.edit_mode div.cell.selected { | |
border-color: transparent; | |
} | |
} | |
.prompt { | |
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */ | |
min-width: 14ex; | |
/* This padding is tuned to match the padding on the CodeMirror editor. */ | |
padding: 0.4em; | |
margin: 0px; | |
font-family: monospace; | |
text-align: right; | |
/* This has to match that of the the CodeMirror class line-height below */ | |
line-height: 1.21429em; | |
/* Don't highlight prompt number selection */ | |
-webkit-touch-callout: none; | |
-webkit-user-select: none; | |
-khtml-user-select: none; | |
-moz-user-select: none; | |
-ms-user-select: none; | |
user-select: none; | |
/* Use default cursor */ | |
cursor: default; | |
} | |
@media (max-width: 540px) { | |
.prompt { | |
text-align: left; | |
} | |
} | |
div.inner_cell { | |
min-width: 0; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
/* Old browsers */ | |
-webkit-box-flex: 1; | |
-moz-box-flex: 1; | |
box-flex: 1; | |
/* Modern browsers */ | |
flex: 1; | |
} | |
/* input_area and input_prompt must match in top border and margin for alignment */ | |
div.input_area { | |
border: 1px solid #cfcfcf; | |
border-radius: 2px; | |
background: #f7f7f7; | |
line-height: 1.21429em; | |
} | |
/* This is needed so that empty prompt areas can collapse to zero height when there | |
is no content in the output_subarea and the prompt. The main purpose of this is | |
to make sure that empty JavaScript output_subareas have no height. */ | |
div.prompt:empty { | |
padding-top: 0; | |
padding-bottom: 0; | |
} | |
div.unrecognized_cell { | |
padding: 5px 5px 5px 0px; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
} | |
div.unrecognized_cell .inner_cell { | |
border-radius: 2px; | |
padding: 5px; | |
font-weight: bold; | |
color: red; | |
border: 1px solid #cfcfcf; | |
background: #eaeaea; | |
} | |
div.unrecognized_cell .inner_cell a { | |
color: inherit; | |
text-decoration: none; | |
} | |
div.unrecognized_cell .inner_cell a:hover { | |
color: inherit; | |
text-decoration: none; | |
} | |
@media (max-width: 540px) { | |
div.unrecognized_cell > div.prompt { | |
display: none; | |
} | |
} | |
div.code_cell { | |
/* avoid page breaking on code cells when printing */ | |
} | |
@media print { | |
div.code_cell { | |
page-break-inside: avoid; | |
} | |
} | |
/* any special styling for code cells that are currently running goes here */ | |
div.input { | |
page-break-inside: avoid; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
} | |
@media (max-width: 540px) { | |
div.input { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
} | |
} | |
/* input_area and input_prompt must match in top border and margin for alignment */ | |
div.input_prompt { | |
color: #303F9F; | |
border-top: 1px solid transparent; | |
} | |
div.input_area > div.highlight { | |
margin: 0.4em; | |
border: none; | |
padding: 0px; | |
background-color: transparent; | |
} | |
div.input_area > div.highlight > pre { | |
margin: 0px; | |
border: none; | |
padding: 0px; | |
background-color: transparent; | |
} | |
/* The following gets added to the <head> if it is detected that the user has a | |
* monospace font with inconsistent normal/bold/italic height. See | |
* notebookmain.js. Such fonts will have keywords vertically offset with | |
* respect to the rest of the text. The user should select a better font. | |
* See: https://github.com/ipython/ipython/issues/1503 | |
* | |
* .CodeMirror span { | |
* vertical-align: bottom; | |
* } | |
*/ | |
.CodeMirror { | |
line-height: 1.21429em; | |
/* Changed from 1em to our global default */ | |
font-size: 14px; | |
height: auto; | |
/* Changed to auto to autogrow */ | |
background: none; | |
/* Changed from white to allow our bg to show through */ | |
} | |
.CodeMirror-scroll { | |
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/ | |
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/ | |
overflow-y: hidden; | |
overflow-x: auto; | |
} | |
.CodeMirror-lines { | |
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */ | |
/* we have set a different line-height and want this to scale with that. */ | |
/* Note that this should set vertical padding only, since CodeMirror assumes | |
that horizontal padding will be set on CodeMirror pre */ | |
padding: 0.4em 0; | |
} | |
.CodeMirror-linenumber { | |
padding: 0 8px 0 4px; | |
} | |
.CodeMirror-gutters { | |
border-bottom-left-radius: 2px; | |
border-top-left-radius: 2px; | |
} | |
.CodeMirror pre { | |
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only, | |
use .CodeMirror-lines for vertical */ | |
padding: 0 0.4em; | |
border: 0; | |
border-radius: 0; | |
} | |
.CodeMirror-cursor { | |
border-left: 1.4px solid black; | |
} | |
@media screen and (min-width: 2138px) and (max-width: 4319px) { | |
.CodeMirror-cursor { | |
border-left: 2px solid black; | |
} | |
} | |
@media screen and (min-width: 4320px) { | |
.CodeMirror-cursor { | |
border-left: 4px solid black; | |
} | |
} | |
/* | |
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> | |
Adapted from GitHub theme | |
*/ | |
.highlight-base { | |
color: #000; | |
} | |
.highlight-variable { | |
color: #000; | |
} | |
.highlight-variable-2 { | |
color: #1a1a1a; | |
} | |
.highlight-variable-3 { | |
color: #333333; | |
} | |
.highlight-string { | |
color: #BA2121; | |
} | |
.highlight-comment { | |
color: #408080; | |
font-style: italic; | |
} | |
.highlight-number { | |
color: #080; | |
} | |
.highlight-atom { | |
color: #88F; | |
} | |
.highlight-keyword { | |
color: #008000; | |
font-weight: bold; | |
} | |
.highlight-builtin { | |
color: #008000; | |
} | |
.highlight-error { | |
color: #f00; | |
} | |
.highlight-operator { | |
color: #AA22FF; | |
font-weight: bold; | |
} | |
.highlight-meta { | |
color: #AA22FF; | |
} | |
/* previously not defined, copying from default codemirror */ | |
.highlight-def { | |
color: #00f; | |
} | |
.highlight-string-2 { | |
color: #f50; | |
} | |
.highlight-qualifier { | |
color: #555; | |
} | |
.highlight-bracket { | |
color: #997; | |
} | |
.highlight-tag { | |
color: #170; | |
} | |
.highlight-attribute { | |
color: #00c; | |
} | |
.highlight-header { | |
color: blue; | |
} | |
.highlight-quote { | |
color: #090; | |
} | |
.highlight-link { | |
color: #00c; | |
} | |
/* apply the same style to codemirror */ | |
.cm-s-ipython span.cm-keyword { | |
color: #008000; | |
font-weight: bold; | |
} | |
.cm-s-ipython span.cm-atom { | |
color: #88F; | |
} | |
.cm-s-ipython span.cm-number { | |
color: #080; | |
} | |
.cm-s-ipython span.cm-def { | |
color: #00f; | |
} | |
.cm-s-ipython span.cm-variable { | |
color: #000; | |
} | |
.cm-s-ipython span.cm-operator { | |
color: #AA22FF; | |
font-weight: bold; | |
} | |
.cm-s-ipython span.cm-variable-2 { | |
color: #1a1a1a; | |
} | |
.cm-s-ipython span.cm-variable-3 { | |
color: #333333; | |
} | |
.cm-s-ipython span.cm-comment { | |
color: #408080; | |
font-style: italic; | |
} | |
.cm-s-ipython span.cm-string { | |
color: #BA2121; | |
} | |
.cm-s-ipython span.cm-string-2 { | |
color: #f50; | |
} | |
.cm-s-ipython span.cm-meta { | |
color: #AA22FF; | |
} | |
.cm-s-ipython span.cm-qualifier { | |
color: #555; | |
} | |
.cm-s-ipython span.cm-builtin { | |
color: #008000; | |
} | |
.cm-s-ipython span.cm-bracket { | |
color: #997; | |
} | |
.cm-s-ipython span.cm-tag { | |
color: #170; | |
} | |
.cm-s-ipython span.cm-attribute { | |
color: #00c; | |
} | |
.cm-s-ipython span.cm-header { | |
color: blue; | |
} | |
.cm-s-ipython span.cm-quote { | |
color: #090; | |
} | |
.cm-s-ipython span.cm-link { | |
color: #00c; | |
} | |
.cm-s-ipython span.cm-error { | |
color: #f00; | |
} | |
.cm-s-ipython span.cm-tab { | |
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); | |
background-position: right; | |
background-repeat: no-repeat; | |
} | |
div.output_wrapper { | |
/* this position must be relative to enable descendents to be absolute within it */ | |
position: relative; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
z-index: 1; | |
} | |
/* class for the output area when it should be height-limited */ | |
div.output_scroll { | |
/* ideally, this would be max-height, but FF barfs all over that */ | |
height: 24em; | |
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */ | |
width: 100%; | |
overflow: auto; | |
border-radius: 2px; | |
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); | |
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); | |
display: block; | |
} | |
/* output div while it is collapsed */ | |
div.output_collapsed { | |
margin: 0px; | |
padding: 0px; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
} | |
div.out_prompt_overlay { | |
height: 100%; | |
padding: 0px 0.4em; | |
position: absolute; | |
border-radius: 2px; | |
} | |
div.out_prompt_overlay:hover { | |
/* use inner shadow to get border that is computed the same on WebKit/FF */ | |
-webkit-box-shadow: inset 0 0 1px #000; | |
box-shadow: inset 0 0 1px #000; | |
background: rgba(240, 240, 240, 0.5); | |
} | |
div.output_prompt { | |
color: #D84315; | |
} | |
/* This class is the outer container of all output sections. */ | |
div.output_area { | |
padding: 0px; | |
page-break-inside: avoid; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
} | |
div.output_area .MathJax_Display { | |
text-align: left !important; | |
} | |
div.output_area .rendered_html table { | |
margin-left: 0; | |
margin-right: 0; | |
} | |
div.output_area .rendered_html img { | |
margin-left: 0; | |
margin-right: 0; | |
} | |
div.output_area img, | |
div.output_area svg { | |
max-width: 100%; | |
height: auto; | |
} | |
div.output_area img.unconfined, | |
div.output_area svg.unconfined { | |
max-width: none; | |
} | |
div.output_area .mglyph > img { | |
max-width: none; | |
} | |
/* This is needed to protect the pre formating from global settings such | |
as that of bootstrap */ | |
.output { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
} | |
@media (max-width: 540px) { | |
div.output_area { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: column; | |
align-items: stretch; | |
} | |
} | |
div.output_area pre { | |
margin: 0; | |
padding: 1px 0 1px 0; | |
border: 0; | |
vertical-align: baseline; | |
color: black; | |
background-color: transparent; | |
border-radius: 0; | |
} | |
/* This class is for the output subarea inside the output_area and after | |
the prompt div. */ | |
div.output_subarea { | |
overflow-x: auto; | |
padding: 0.4em; | |
/* Old browsers */ | |
-webkit-box-flex: 1; | |
-moz-box-flex: 1; | |
box-flex: 1; | |
/* Modern browsers */ | |
flex: 1; | |
max-width: calc(100% - 14ex); | |
} | |
div.output_scroll div.output_subarea { | |
overflow-x: visible; | |
} | |
/* The rest of the output_* classes are for special styling of the different | |
output types */ | |
/* all text output has this class: */ | |
div.output_text { | |
text-align: left; | |
color: #000; | |
/* This has to match that of the the CodeMirror class line-height below */ | |
line-height: 1.21429em; | |
} | |
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */ | |
div.output_stderr { | |
background: #fdd; | |
/* very light red background for stderr */ | |
} | |
div.output_latex { | |
text-align: left; | |
} | |
/* Empty output_javascript divs should have no height */ | |
div.output_javascript:empty { | |
padding: 0; | |
} | |
.js-error { | |
color: darkred; | |
} | |
/* raw_input styles */ | |
div.raw_input_container { | |
line-height: 1.21429em; | |
padding-top: 5px; | |
} | |
pre.raw_input_prompt { | |
/* nothing needed here. */ | |
} | |
input.raw_input { | |
font-family: monospace; | |
font-size: inherit; | |
color: inherit; | |
width: auto; | |
/* make sure input baseline aligns with prompt */ | |
vertical-align: baseline; | |
/* padding + margin = 0.5em between prompt and cursor */ | |
padding: 0em 0.25em; | |
margin: 0em 0.25em; | |
} | |
input.raw_input:focus { | |
box-shadow: none; | |
} | |
p.p-space { | |
margin-bottom: 10px; | |
} | |
div.output_unrecognized { | |
padding: 5px; | |
font-weight: bold; | |
color: red; | |
} | |
div.output_unrecognized a { | |
color: inherit; | |
text-decoration: none; | |
} | |
div.output_unrecognized a:hover { | |
color: inherit; | |
text-decoration: none; | |
} | |
.rendered_html { | |
color: #000; | |
/* any extras will just be numbers: */ | |
} | |
.rendered_html em { | |
font-style: italic; | |
} | |
.rendered_html strong { | |
font-weight: bold; | |
} | |
.rendered_html u { | |
text-decoration: underline; | |
} | |
.rendered_html :link { | |
text-decoration: underline; | |
} | |
.rendered_html :visited { | |
text-decoration: underline; | |
} | |
.rendered_html h1 { | |
font-size: 185.7%; | |
margin: 1.08em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
} | |
.rendered_html h2 { | |
font-size: 157.1%; | |
margin: 1.27em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
} | |
.rendered_html h3 { | |
font-size: 128.6%; | |
margin: 1.55em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
} | |
.rendered_html h4 { | |
font-size: 100%; | |
margin: 2em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
} | |
.rendered_html h5 { | |
font-size: 100%; | |
margin: 2em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
font-style: italic; | |
} | |
.rendered_html h6 { | |
font-size: 100%; | |
margin: 2em 0 0 0; | |
font-weight: bold; | |
line-height: 1.0; | |
font-style: italic; | |
} | |
.rendered_html h1:first-child { | |
margin-top: 0.538em; | |
} | |
.rendered_html h2:first-child { | |
margin-top: 0.636em; | |
} | |
.rendered_html h3:first-child { | |
margin-top: 0.777em; | |
} | |
.rendered_html h4:first-child { | |
margin-top: 1em; | |
} | |
.rendered_html h5:first-child { | |
margin-top: 1em; | |
} | |
.rendered_html h6:first-child { | |
margin-top: 1em; | |
} | |
.rendered_html ul:not(.list-inline), | |
.rendered_html ol:not(.list-inline) { | |
padding-left: 2em; | |
} | |
.rendered_html ul { | |
list-style: disc; | |
} | |
.rendered_html ul ul { | |
list-style: square; | |
margin-top: 0; | |
} | |
.rendered_html ul ul ul { | |
list-style: circle; | |
} | |
.rendered_html ol { | |
list-style: decimal; | |
} | |
.rendered_html ol ol { | |
list-style: upper-alpha; | |
margin-top: 0; | |
} | |
.rendered_html ol ol ol { | |
list-style: lower-alpha; | |
} | |
.rendered_html ol ol ol ol { | |
list-style: lower-roman; | |
} | |
.rendered_html ol ol ol ol ol { | |
list-style: decimal; | |
} | |
.rendered_html * + ul { | |
margin-top: 1em; | |
} | |
.rendered_html * + ol { | |
margin-top: 1em; | |
} | |
.rendered_html hr { | |
color: black; | |
background-color: black; | |
} | |
.rendered_html pre { | |
margin: 1em 2em; | |
padding: 0px; | |
background-color: #fff; | |
} | |
.rendered_html code { | |
background-color: #eff0f1; | |
} | |
.rendered_html p code { | |
padding: 1px 5px; | |
} | |
.rendered_html pre code { | |
background-color: #fff; | |
} | |
.rendered_html pre, | |
.rendered_html code { | |
border: 0; | |
color: #000; | |
font-size: 100%; | |
} | |
.rendered_html blockquote { | |
margin: 1em 2em; | |
} | |
.rendered_html table { | |
margin-left: auto; | |
margin-right: auto; | |
border: none; | |
border-collapse: collapse; | |
border-spacing: 0; | |
color: black; | |
font-size: 12px; | |
table-layout: fixed; | |
} | |
.rendered_html thead { | |
border-bottom: 1px solid black; | |
vertical-align: bottom; | |
} | |
.rendered_html tr, | |
.rendered_html th, | |
.rendered_html td { | |
text-align: right; | |
vertical-align: middle; | |
padding: 0.5em 0.5em; | |
line-height: normal; | |
white-space: normal; | |
max-width: none; | |
border: none; | |
} | |
.rendered_html th { | |
font-weight: bold; | |
} | |
.rendered_html tbody tr:nth-child(odd) { | |
background: #f5f5f5; | |
} | |
.rendered_html tbody tr:hover { | |
background: rgba(66, 165, 245, 0.2); | |
} | |
.rendered_html * + table { | |
margin-top: 1em; | |
} | |
.rendered_html p { | |
text-align: left; | |
} | |
.rendered_html * + p { | |
margin-top: 1em; | |
} | |
.rendered_html img { | |
display: block; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
.rendered_html * + img { | |
margin-top: 1em; | |
} | |
.rendered_html img, | |
.rendered_html svg { | |
max-width: 100%; | |
height: auto; | |
} | |
.rendered_html img.unconfined, | |
.rendered_html svg.unconfined { | |
max-width: none; | |
} | |
.rendered_html .alert { | |
margin-bottom: initial; | |
} | |
.rendered_html * + .alert { | |
margin-top: 1em; | |
} | |
[dir="rtl"] .rendered_html p { | |
text-align: right; | |
} | |
div.text_cell { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
} | |
@media (max-width: 540px) { | |
div.text_cell > div.prompt { | |
display: none; | |
} | |
} | |
div.text_cell_render { | |
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/ | |
outline: none; | |
resize: none; | |
width: inherit; | |
border-style: none; | |
padding: 0.5em 0.5em 0.5em 0.4em; | |
color: #000; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
a.anchor-link:link { | |
text-decoration: none; | |
padding: 0px 20px; | |
visibility: hidden; | |
} | |
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; | |
} | |
.text_cell.rendered .input_area { | |
display: none; | |
} | |
.text_cell.rendered .rendered_html { | |
overflow-x: auto; | |
overflow-y: hidden; | |
} | |
.text_cell.rendered .rendered_html tr, | |
.text_cell.rendered .rendered_html th, | |
.text_cell.rendered .rendered_html td { | |
max-width: none; | |
} | |
.text_cell.unrendered .text_cell_render { | |
display: none; | |
} | |
.text_cell .dropzone .input_area { | |
border: 2px dashed #bababa; | |
margin: -1px; | |
} | |
.cm-header-1, | |
.cm-header-2, | |
.cm-header-3, | |
.cm-header-4, | |
.cm-header-5, | |
.cm-header-6 { | |
font-weight: bold; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
} | |
.cm-header-1 { | |
font-size: 185.7%; | |
} | |
.cm-header-2 { | |
font-size: 157.1%; | |
} | |
.cm-header-3 { | |
font-size: 128.6%; | |
} | |
.cm-header-4 { | |
font-size: 110%; | |
} | |
.cm-header-5 { | |
font-size: 100%; | |
font-style: italic; | |
} | |
.cm-header-6 { | |
font-size: 100%; | |
font-style: italic; | |
} | |
/*! | |
* | |
* IPython notebook webapp | |
* | |
*/ | |
@media (max-width: 767px) { | |
.notebook_app { | |
padding-left: 0px; | |
padding-right: 0px; | |
} | |
} | |
#ipython-main-app { | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
height: 100%; | |
} | |
div#notebook_panel { | |
margin: 0px; | |
padding: 0px; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
height: 100%; | |
} | |
div#notebook { | |
font-size: 14px; | |
line-height: 20px; | |
overflow-y: hidden; | |
overflow-x: auto; | |
width: 100%; | |
/* This spaces the page away from the edge of the notebook area */ | |
padding-top: 20px; | |
margin: 0px; | |
outline: none; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
min-height: 100%; | |
} | |
@media not print { | |
#notebook-container { | |
padding: 15px; | |
background-color: #fff; | |
min-height: 0; | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
} | |
} | |
@media print { | |
#notebook-container { | |
width: 100%; | |
} | |
} | |
div.ui-widget-content { | |
border: 1px solid #ababab; | |
outline: none; | |
} | |
pre.dialog { | |
background-color: #f7f7f7; | |
border: 1px solid #ddd; | |
border-radius: 2px; | |
padding: 0.4em; | |
padding-left: 2em; | |
} | |
p.dialog { | |
padding: 0.2em; | |
} | |
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems | |
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do. | |
*/ | |
pre, | |
code, | |
kbd, | |
samp { | |
white-space: pre-wrap; | |
} | |
#fonttest { | |
font-family: monospace; | |
} | |
p { | |
margin-bottom: 0; | |
} | |
.end_space { | |
min-height: 100px; | |
transition: height .2s ease; | |
} | |
.notebook_app > #header { | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
} | |
@media not print { | |
.notebook_app { | |
background-color: #EEE; | |
} | |
} | |
kbd { | |
border-style: solid; | |
border-width: 1px; | |
box-shadow: none; | |
margin: 2px; | |
padding-left: 2px; | |
padding-right: 2px; | |
padding-top: 1px; | |
padding-bottom: 1px; | |
} | |
.jupyter-keybindings { | |
padding: 1px; | |
line-height: 24px; | |
border-bottom: 1px solid gray; | |
} | |
.jupyter-keybindings input { | |
margin: 0; | |
padding: 0; | |
border: none; | |
} | |
.jupyter-keybindings i { | |
padding: 6px; | |
} | |
.well code { | |
background-color: #ffffff; | |
border-color: #ababab; | |
border-width: 1px; | |
border-style: solid; | |
padding: 2px; | |
padding-top: 1px; | |
padding-bottom: 1px; | |
} | |
/* CSS for the cell toolbar */ | |
.celltoolbar { | |
border: thin solid #CFCFCF; | |
border-bottom: none; | |
background: #EEE; | |
border-radius: 2px 2px 0px 0px; | |
width: 100%; | |
height: 29px; | |
padding-right: 4px; | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
/* Old browsers */ | |
-webkit-box-pack: end; | |
-moz-box-pack: end; | |
box-pack: end; | |
/* Modern browsers */ | |
justify-content: flex-end; | |
display: -webkit-flex; | |
} | |
@media print { | |
.celltoolbar { | |
display: none; | |
} | |
} | |
.ctb_hideshow { | |
display: none; | |
vertical-align: bottom; | |
} | |
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar. | |
Cell toolbars are only shown when the ctb_global_show class is also set. | |
*/ | |
.ctb_global_show .ctb_show.ctb_hideshow { | |
display: block; | |
} | |
.ctb_global_show .ctb_show + .input_area, | |
.ctb_global_show .ctb_show + div.text_cell_input, | |
.ctb_global_show .ctb_show ~ div.text_cell_render { | |
border-top-right-radius: 0px; | |
border-top-left-radius: 0px; | |
} | |
.ctb_global_show .ctb_show ~ div.text_cell_render { | |
border: 1px solid #cfcfcf; | |
} | |
.celltoolbar { | |
font-size: 87%; | |
padding-top: 3px; | |
} | |
.celltoolbar select { | |
display: block; | |
width: 100%; | |
height: 32px; | |
padding: 6px 12px; | |
font-size: 13px; | |
line-height: 1.42857143; | |
color: #555555; | |
background-color: #fff; | |
background-image: none; | |
border: 1px solid #ccc; | |
border-radius: 2px; | |
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
width: inherit; | |
font-size: inherit; | |
height: 22px; | |
padding: 0px; | |
display: inline-block; | |
} | |
.celltoolbar select:focus { | |
border-color: #66afe9; | |
outline: 0; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
} | |
.celltoolbar select::-moz-placeholder { | |
color: #999; | |
opacity: 1; | |
} | |
.celltoolbar select:-ms-input-placeholder { | |
color: #999; | |
} | |
.celltoolbar select::-webkit-input-placeholder { | |
color: #999; | |
} | |
.celltoolbar select::-ms-expand { | |
border: 0; | |
background-color: transparent; | |
} | |
.celltoolbar select[disabled], | |
.celltoolbar select[readonly], | |
fieldset[disabled] .celltoolbar select { | |
background-color: #eeeeee; | |
opacity: 1; | |
} | |
.celltoolbar select[disabled], | |
fieldset[disabled] .celltoolbar select { | |
cursor: not-allowed; | |
} | |
textarea.celltoolbar select { | |
height: auto; | |
} | |
select.celltoolbar select { | |
height: 30px; | |
line-height: 30px; | |
} | |
textarea.celltoolbar select, | |
select[multiple].celltoolbar select { | |
height: auto; | |
} | |
.celltoolbar label { | |
margin-left: 5px; | |
margin-right: 5px; | |
} | |
.tags_button_container { | |
width: 100%; | |
display: flex; | |
} | |
.tag-container { | |
display: flex; | |
flex-direction: row; | |
flex-grow: 1; | |
overflow: hidden; | |
position: relative; | |
} | |
.tag-container > * { | |
margin: 0 4px; | |
} | |
.remove-tag-btn { | |
margin-left: 4px; | |
} | |
.tags-input { | |
display: flex; | |
} | |
.cell-tag:last-child:after { | |
content: ""; | |
position: absolute; | |
right: 0; | |
width: 40px; | |
height: 100%; | |
/* Fade to background color of cell toolbar */ | |
background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE); | |
} | |
.tags-input > * { | |
margin-left: 4px; | |
} | |
.cell-tag, | |
.tags-input input, | |
.tags-input button { | |
display: block; | |
width: 100%; | |
height: 32px; | |
padding: 6px 12px; | |
font-size: 13px; | |
line-height: 1.42857143; | |
color: #555555; | |
background-color: #fff; | |
background-image: none; | |
border: 1px solid #ccc; | |
border-radius: 2px; | |
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 1px; | |
box-shadow: none; | |
width: inherit; | |
font-size: inherit; | |
height: 22px; | |
line-height: 22px; | |
padding: 0px 4px; | |
display: inline-block; | |
} | |
.cell-tag:focus, | |
.tags-input input:focus, | |
.tags-input button:focus { | |
border-color: #66afe9; | |
outline: 0; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); | |
} | |
.cell-tag::-moz-placeholder, | |
.tags-input input::-moz-placeholder, | |
.tags-input button::-moz-placeholder { | |
color: #999; | |
opacity: 1; | |
} | |
.cell-tag:-ms-input-placeholder, | |
.tags-input input:-ms-input-placeholder, | |
.tags-input button:-ms-input-placeholder { | |
color: #999; | |
} | |
.cell-tag::-webkit-input-placeholder, | |
.tags-input input::-webkit-input-placeholder, | |
.tags-input button::-webkit-input-placeholder { | |
color: #999; | |
} | |
.cell-tag::-ms-expand, | |
.tags-input input::-ms-expand, | |
.tags-input button::-ms-expand { | |
border: 0; | |
background-color: transparent; | |
} | |
.cell-tag[disabled], | |
.tags-input input[disabled], | |
.tags-input button[disabled], | |
.cell-tag[readonly], | |
.tags-input input[readonly], | |
.tags-input button[readonly], | |
fieldset[disabled] .cell-tag, | |
fieldset[disabled] .tags-input input, | |
fieldset[disabled] .tags-input button { | |
background-color: #eeeeee; | |
opacity: 1; | |
} | |
.cell-tag[disabled], | |
.tags-input input[disabled], | |
.tags-input button[disabled], | |
fieldset[disabled] .cell-tag, | |
fieldset[disabled] .tags-input input, | |
fieldset[disabled] .tags-input button { | |
cursor: not-allowed; | |
} | |
textarea.cell-tag, | |
textarea.tags-input input, | |
textarea.tags-input button { | |
height: auto; | |
} | |
select.cell-tag, | |
select.tags-input input, | |
select.tags-input button { | |
height: 30px; | |
line-height: 30px; | |
} | |
textarea.cell-tag, | |
textarea.tags-input input, | |
textarea.tags-input button, | |
select[multiple].cell-tag, | |
select[multiple].tags-input input, | |
select[multiple].tags-input button { | |
height: auto; | |
} | |
.cell-tag, | |
.tags-input button { | |
padding: 0px 4px; | |
} | |
.cell-tag { | |
background-color: #fff; | |
white-space: nowrap; | |
} | |
.tags-input input[type=text]:focus { | |
outline: none; | |
box-shadow: none; | |
border-color: #ccc; | |
} | |
.completions { | |
position: absolute; | |
z-index: 110; | |
overflow: hidden; | |
border: 1px solid #ababab; | |
border-radius: 2px; | |
-webkit-box-shadow: 0px 6px 10px -1px #adadad; | |
box-shadow: 0px 6px 10px -1px #adadad; | |
line-height: 1; | |
} | |
.completions select { | |
background: white; | |
outline: none; | |
border: none; | |
padding: 0px; | |
margin: 0px; | |
overflow: auto; | |
font-family: monospace; | |
font-size: 110%; | |
color: #000; | |
width: auto; | |
} | |
.completions select option.context { | |
color: #286090; | |
} | |
#kernel_logo_widget .current_kernel_logo { | |
display: none; | |
margin-top: -1px; | |
margin-bottom: -1px; | |
width: 32px; | |
height: 32px; | |
} | |
[dir="rtl"] #kernel_logo_widget { | |
float: left !important; | |
float: left; | |
} | |
.modal .modal-body .move-path { | |
display: flex; | |
flex-direction: row; | |
justify-content: space; | |
align-items: center; | |
} | |
.modal .modal-body .move-path .server-root { | |
padding-right: 20px; | |
} | |
.modal .modal-body .move-path .path-input { | |
flex: 1; | |
} | |
#menubar { | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
margin-top: 1px; | |
} | |
#menubar .navbar { | |
border-top: 1px; | |
border-radius: 0px 0px 2px 2px; | |
margin-bottom: 0px; | |
} | |
#menubar .navbar-toggle { | |
float: left; | |
padding-top: 7px; | |
padding-bottom: 7px; | |
border: none; | |
} | |
#menubar .navbar-collapse { | |
clear: left; | |
} | |
[dir="rtl"] #menubar .navbar-toggle { | |
float: right; | |
} | |
[dir="rtl"] #menubar .navbar-collapse { | |
clear: right; | |
} | |
[dir="rtl"] #menubar .navbar-nav { | |
float: right; | |
} | |
[dir="rtl"] #menubar .nav { | |
padding-right: 0px; | |
} | |
[dir="rtl"] #menubar .navbar-nav > li { | |
float: right; | |
} | |
[dir="rtl"] #menubar .navbar-right { | |
float: left !important; | |
} | |
[dir="rtl"] ul.dropdown-menu { | |
text-align: right; | |
left: auto; | |
} | |
[dir="rtl"] ul#new-menu.dropdown-menu { | |
right: auto; | |
left: 0; | |
} | |
.nav-wrapper { | |
border-bottom: 1px solid #e7e7e7; | |
} | |
i.menu-icon { | |
padding-top: 4px; | |
} | |
[dir="rtl"] i.menu-icon.pull-right { | |
float: left !important; | |
float: left; | |
} | |
ul#help_menu li a { | |
overflow: hidden; | |
padding-right: 2.2em; | |
} | |
ul#help_menu li a i { | |
margin-right: -1.2em; | |
} | |
[dir="rtl"] ul#help_menu li a { | |
padding-left: 2.2em; | |
} | |
[dir="rtl"] ul#help_menu li a i { | |
margin-right: 0; | |
margin-left: -1.2em; | |
} | |
[dir="rtl"] ul#help_menu li a i.pull-right { | |
float: left !important; | |
float: left; | |
} | |
.dropdown-submenu { | |
position: relative; | |
} | |
.dropdown-submenu > .dropdown-menu { | |
top: 0; | |
left: 100%; | |
margin-top: -6px; | |
margin-left: -1px; | |
} | |
[dir="rtl"] .dropdown-submenu > .dropdown-menu { | |
right: 100%; | |
margin-right: -1px; | |
} | |
.dropdown-submenu:hover > .dropdown-menu { | |
display: block; | |
} | |
.dropdown-submenu > a:after { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
display: block; | |
content: "\f0da"; | |
float: right; | |
color: #333333; | |
margin-top: 2px; | |
margin-right: -10px; | |
} | |
.dropdown-submenu > a:after.fa-pull-left { | |
margin-right: .3em; | |
} | |
.dropdown-submenu > a:after.fa-pull-right { | |
margin-left: .3em; | |
} | |
.dropdown-submenu > a:after.pull-left { | |
margin-right: .3em; | |
} | |
.dropdown-submenu > a:after.pull-right { | |
margin-left: .3em; | |
} | |
[dir="rtl"] .dropdown-submenu > a:after { | |
float: left; | |
content: "\f0d9"; | |
margin-right: 0; | |
margin-left: -10px; | |
} | |
.dropdown-submenu:hover > a:after { | |
color: #262626; | |
} | |
.dropdown-submenu.pull-left { | |
float: none; | |
} | |
.dropdown-submenu.pull-left > .dropdown-menu { | |
left: -100%; | |
margin-left: 10px; | |
} | |
#notification_area { | |
float: right !important; | |
float: right; | |
z-index: 10; | |
} | |
[dir="rtl"] #notification_area { | |
float: left !important; | |
float: left; | |
} | |
.indicator_area { | |
float: right !important; | |
float: right; | |
color: #777; | |
margin-left: 5px; | |
margin-right: 5px; | |
width: 11px; | |
z-index: 10; | |
text-align: center; | |
width: auto; | |
} | |
[dir="rtl"] .indicator_area { | |
float: left !important; | |
float: left; | |
} | |
#kernel_indicator { | |
float: right !important; | |
float: right; | |
color: #777; | |
margin-left: 5px; | |
margin-right: 5px; | |
width: 11px; | |
z-index: 10; | |
text-align: center; | |
width: auto; | |
border-left: 1px solid; | |
} | |
#kernel_indicator .kernel_indicator_name { | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
[dir="rtl"] #kernel_indicator { | |
float: left !important; | |
float: left; | |
border-left: 0; | |
border-right: 1px solid; | |
} | |
#modal_indicator { | |
float: right !important; | |
float: right; | |
color: #777; | |
margin-left: 5px; | |
margin-right: 5px; | |
width: 11px; | |
z-index: 10; | |
text-align: center; | |
width: auto; | |
} | |
[dir="rtl"] #modal_indicator { | |
float: left !important; | |
float: left; | |
} | |
#readonly-indicator { | |
float: right !important; | |
float: right; | |
color: #777; | |
margin-left: 5px; | |
margin-right: 5px; | |
width: 11px; | |
z-index: 10; | |
text-align: center; | |
width: auto; | |
margin-top: 2px; | |
margin-bottom: 0px; | |
margin-left: 0px; | |
margin-right: 0px; | |
display: none; | |
} | |
.modal_indicator:before { | |
width: 1.28571429em; | |
text-align: center; | |
} | |
.edit_mode .modal_indicator:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f040"; | |
} | |
.edit_mode .modal_indicator:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.edit_mode .modal_indicator:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.edit_mode .modal_indicator:before.pull-left { | |
margin-right: .3em; | |
} | |
.edit_mode .modal_indicator:before.pull-right { | |
margin-left: .3em; | |
} | |
.command_mode .modal_indicator:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: ' '; | |
} | |
.command_mode .modal_indicator:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.command_mode .modal_indicator:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.command_mode .modal_indicator:before.pull-left { | |
margin-right: .3em; | |
} | |
.command_mode .modal_indicator:before.pull-right { | |
margin-left: .3em; | |
} | |
.kernel_idle_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f10c"; | |
} | |
.kernel_idle_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.kernel_idle_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.kernel_idle_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.kernel_idle_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.kernel_busy_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f111"; | |
} | |
.kernel_busy_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.kernel_busy_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.kernel_busy_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.kernel_busy_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.kernel_dead_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f1e2"; | |
} | |
.kernel_dead_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.kernel_dead_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.kernel_dead_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.kernel_dead_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.kernel_disconnected_icon:before { | |
display: inline-block; | |
font: normal normal normal 14px/1 FontAwesome; | |
font-size: inherit; | |
text-rendering: auto; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
content: "\f127"; | |
} | |
.kernel_disconnected_icon:before.fa-pull-left { | |
margin-right: .3em; | |
} | |
.kernel_disconnected_icon:before.fa-pull-right { | |
margin-left: .3em; | |
} | |
.kernel_disconnected_icon:before.pull-left { | |
margin-right: .3em; | |
} | |
.kernel_disconnected_icon:before.pull-right { | |
margin-left: .3em; | |
} | |
.notification_widget { | |
color: #777; | |
z-index: 10; | |
background: rgba(240, 240, 240, 0.5); | |
margin-right: 4px; | |
color: #333; | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
.notification_widget:focus, | |
.notification_widget.focus { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #8c8c8c; | |
} | |
.notification_widget:hover { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
.notification_widget:active, | |
.notification_widget.active, | |
.open > .dropdown-toggle.notification_widget { | |
color: #333; | |
background-color: #e6e6e6; | |
border-color: #adadad; | |
} | |
.notification_widget:active:hover, | |
.notification_widget.active:hover, | |
.open > .dropdown-toggle.notification_widget:hover, | |
.notification_widget:active:focus, | |
.notification_widget.active:focus, | |
.open > .dropdown-toggle.notification_widget:focus, | |
.notification_widget:active.focus, | |
.notification_widget.active.focus, | |
.open > .dropdown-toggle.notification_widget.focus { | |
color: #333; | |
background-color: #d4d4d4; | |
border-color: #8c8c8c; | |
} | |
.notification_widget:active, | |
.notification_widget.active, | |
.open > .dropdown-toggle.notification_widget { | |
background-image: none; | |
} | |
.notification_widget.disabled:hover, | |
.notification_widget[disabled]:hover, | |
fieldset[disabled] .notification_widget:hover, | |
.notification_widget.disabled:focus, | |
.notification_widget[disabled]:focus, | |
fieldset[disabled] .notification_widget:focus, | |
.notification_widget.disabled.focus, | |
.notification_widget[disabled].focus, | |
fieldset[disabled] .notification_widget.focus { | |
background-color: #fff; | |
border-color: #ccc; | |
} | |
.notification_widget .badge { | |
color: #fff; | |
background-color: #333; | |
} | |
.notification_widget.warning { | |
color: #fff; | |
background-color: #f0ad4e; | |
border-color: #eea236; | |
} | |
.notification_widget.warning:focus, | |
.notification_widget.warning.focus { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #985f0d; | |
} | |
.notification_widget.warning:hover { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #d58512; | |
} | |
.notification_widget.warning:active, | |
.notification_widget.warning.active, | |
.open > .dropdown-toggle.notification_widget.warning { | |
color: #fff; | |
background-color: #ec971f; | |
border-color: #d58512; | |
} | |
.notification_widget.warning:active:hover, | |
.notification_widget.warning.active:hover, | |
.open > .dropdown-toggle.notification_widget.warning:hover, | |
.notification_widget.warning:active:focus, | |
.notification_widget.warning.active:focus, | |
.open > .dropdown-toggle.notification_widget.warning:focus, | |
.notification_widget.warning:active.focus, | |
.notification_widget.warning.active.focus, | |
.open > .dropdown-toggle.notification_widget.warning.focus { | |
color: #fff; | |
background-color: #d58512; | |
border-color: #985f0d; | |
} | |
.notification_widget.warning:active, | |
.notification_widget.warning.active, | |
.open > .dropdown-toggle.notification_widget.warning { | |
background-image: none; | |
} | |
.notification_widget.warning.disabled:hover, | |
.notification_widget.warning[disabled]:hover, | |
fieldset[disabled] .notification_widget.warning:hover, | |
.notification_widget.warning.disabled:focus, | |
.notification_widget.warning[disabled]:focus, | |
fieldset[disabled] .notification_widget.warning:focus, | |
.notification_widget.warning.disabled.focus, | |
.notification_widget.warning[disabled].focus, | |
fieldset[disabled] .notification_widget.warning.focus { | |
background-color: #f0ad4e; | |
border-color: #eea236; | |
} | |
.notification_widget.warning .badge { | |
color: #f0ad4e; | |
background-color: #fff; | |
} | |
.notification_widget.success { | |
color: #fff; | |
background-color: #5cb85c; | |
border-color: #4cae4c; | |
} | |
.notification_widget.success:focus, | |
.notification_widget.success.focus { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #255625; | |
} | |
.notification_widget.success:hover { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #398439; | |
} | |
.notification_widget.success:active, | |
.notification_widget.success.active, | |
.open > .dropdown-toggle.notification_widget.success { | |
color: #fff; | |
background-color: #449d44; | |
border-color: #398439; | |
} | |
.notification_widget.success:active:hover, | |
.notification_widget.success.active:hover, | |
.open > .dropdown-toggle.notification_widget.success:hover, | |
.notification_widget.success:active:focus, | |
.notification_widget.success.active:focus, | |
.open > .dropdown-toggle.notification_widget.success:focus, | |
.notification_widget.success:active.focus, | |
.notification_widget.success.active.focus, | |
.open > .dropdown-toggle.notification_widget.success.focus { | |
color: #fff; | |
background-color: #398439; | |
border-color: #255625; | |
} | |
.notification_widget.success:active, | |
.notification_widget.success.active, | |
.open > .dropdown-toggle.notification_widget.success { | |
background-image: none; | |
} | |
.notification_widget.success.disabled:hover, | |
.notification_widget.success[disabled]:hover, | |
fieldset[disabled] .notification_widget.success:hover, | |
.notification_widget.success.disabled:focus, | |
.notification_widget.success[disabled]:focus, | |
fieldset[disabled] .notification_widget.success:focus, | |
.notification_widget.success.disabled.focus, | |
.notification_widget.success[disabled].focus, | |
fieldset[disabled] .notification_widget.success.focus { | |
background-color: #5cb85c; | |
border-color: #4cae4c; | |
} | |
.notification_widget.success .badge { | |
color: #5cb85c; | |
background-color: #fff; | |
} | |
.notification_widget.info { | |
color: #fff; | |
background-color: #5bc0de; | |
border-color: #46b8da; | |
} | |
.notification_widget.info:focus, | |
.notification_widget.info.focus { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #1b6d85; | |
} | |
.notification_widget.info:hover { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #269abc; | |
} | |
.notification_widget.info:active, | |
.notification_widget.info.active, | |
.open > .dropdown-toggle.notification_widget.info { | |
color: #fff; | |
background-color: #31b0d5; | |
border-color: #269abc; | |
} | |
.notification_widget.info:active:hover, | |
.notification_widget.info.active:hover, | |
.open > .dropdown-toggle.notification_widget.info:hover, | |
.notification_widget.info:active:focus, | |
.notification_widget.info.active:focus, | |
.open > .dropdown-toggle.notification_widget.info:focus, | |
.notification_widget.info:active.focus, | |
.notification_widget.info.active.focus, | |
.open > .dropdown-toggle.notification_widget.info.focus { | |
color: #fff; | |
background-color: #269abc; | |
border-color: #1b6d85; | |
} | |
.notification_widget.info:active, | |
.notification_widget.info.active, | |
.open > .dropdown-toggle.notification_widget.info { | |
background-image: none; | |
} | |
.notification_widget.info.disabled:hover, | |
.notification_widget.info[disabled]:hover, | |
fieldset[disabled] .notification_widget.info:hover, | |
.notification_widget.info.disabled:focus, | |
.notification_widget.info[disabled]:focus, | |
fieldset[disabled] .notification_widget.info:focus, | |
.notification_widget.info.disabled.focus, | |
.notification_widget.info[disabled].focus, | |
fieldset[disabled] .notification_widget.info.focus { | |
background-color: #5bc0de; | |
border-color: #46b8da; | |
} | |
.notification_widget.info .badge { | |
color: #5bc0de; | |
background-color: #fff; | |
} | |
.notification_widget.danger { | |
color: #fff; | |
background-color: #d9534f; | |
border-color: #d43f3a; | |
} | |
.notification_widget.danger:focus, | |
.notification_widget.danger.focus { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #761c19; | |
} | |
.notification_widget.danger:hover { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #ac2925; | |
} | |
.notification_widget.danger:active, | |
.notification_widget.danger.active, | |
.open > .dropdown-toggle.notification_widget.danger { | |
color: #fff; | |
background-color: #c9302c; | |
border-color: #ac2925; | |
} | |
.notification_widget.danger:active:hover, | |
.notification_widget.danger.active:hover, | |
.open > .dropdown-toggle.notification_widget.danger:hover, | |
.notification_widget.danger:active:focus, | |
.notification_widget.danger.active:focus, | |
.open > .dropdown-toggle.notification_widget.danger:focus, | |
.notification_widget.danger:active.focus, | |
.notification_widget.danger.active.focus, | |
.open > .dropdown-toggle.notification_widget.danger.focus { | |
color: #fff; | |
background-color: #ac2925; | |
border-color: #761c19; | |
} | |
.notification_widget.danger:active, | |
.notification_widget.danger.active, | |
.open > .dropdown-toggle.notification_widget.danger { | |
background-image: none; | |
} | |
.notification_widget.danger.disabled:hover, | |
.notification_widget.danger[disabled]:hover, | |
fieldset[disabled] .notification_widget.danger:hover, | |
.notification_widget.danger.disabled:focus, | |
.notification_widget.danger[disabled]:focus, | |
fieldset[disabled] .notification_widget.danger:focus, | |
.notification_widget.danger.disabled.focus, | |
.notification_widget.danger[disabled].focus, | |
fieldset[disabled] .notification_widget.danger.focus { | |
background-color: #d9534f; | |
border-color: #d43f3a; | |
} | |
.notification_widget.danger .badge { | |
color: #d9534f; | |
background-color: #fff; | |
} | |
div#pager { | |
background-color: #fff; | |
font-size: 14px; | |
line-height: 20px; | |
overflow: hidden; | |
display: none; | |
position: fixed; | |
bottom: 0px; | |
width: 100%; | |
max-height: 50%; | |
padding-top: 8px; | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
/* Display over codemirror */ | |
z-index: 100; | |
/* Hack which prevents jquery ui resizable from changing top. */ | |
top: auto !important; | |
} | |
div#pager pre { | |
line-height: 1.21429em; | |
color: #000; | |
background-color: #f7f7f7; | |
padding: 0.4em; | |
} | |
div#pager #pager-button-area { | |
position: absolute; | |
top: 8px; | |
right: 20px; | |
} | |
div#pager #pager-contents { | |
position: relative; | |
overflow: auto; | |
width: 100%; | |
height: 100%; | |
} | |
div#pager #pager-contents #pager-container { | |
position: relative; | |
padding: 15px 0px; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
div#pager .ui-resizable-handle { | |
top: 0px; | |
height: 8px; | |
background: #f7f7f7; | |
border-top: 1px solid #cfcfcf; | |
border-bottom: 1px solid #cfcfcf; | |
/* This injects handle bars (a short, wide = symbol) for | |
the resize handle. */ | |
} | |
div#pager .ui-resizable-handle::after { | |
content: ''; | |
top: 2px; | |
left: 50%; | |
height: 3px; | |
width: 30px; | |
margin-left: -15px; | |
position: absolute; | |
border-top: 1px solid #cfcfcf; | |
} | |
.quickhelp { | |
/* Old browsers */ | |
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; | |
/* Modern browsers */ | |
display: flex; | |
flex-direction: row; | |
align-items: stretch; | |
line-height: 1.8em; | |
} | |
.shortcut_key { | |
display: inline-block; | |
width: 21ex; | |
text-align: right; | |
font-family: monospace; | |
} | |
.shortcut_descr { | |
display: inline-block; | |
/* Old browsers */ | |
-webkit-box-flex: 1; | |
-moz-box-flex: 1; | |
box-flex: 1; | |
/* Modern browsers */ | |
flex: 1; | |
} | |
span.save_widget { | |
height: 30px; | |
margin-top: 4px; | |
display: flex; | |
justify-content: flex-start; | |
align-items: baseline; | |
width: 50%; | |
flex: 1; | |
} | |
span.save_widget span.filename { | |
height: 100%; | |
line-height: 1em; | |
margin-left: 16px; | |
border: none; | |
font-size: 146.5%; | |
text-overflow: ellipsis; | |
overflow: hidden; | |
white-space: nowrap; | |
border-radius: 2px; | |
} | |
span.save_widget span.filename:hover { | |
background-color: #e6e6e6; | |
} | |
[dir="rtl"] span.save_widget.pull-left { | |
float: right !important; | |
float: right; | |
} | |
[dir="rtl"] span.save_widget span.filename { | |
margin-left: 0; | |
margin-right: 16px; | |
} | |
span.checkpoint_status, | |
span.autosave_status { | |
font-size: small; | |
white-space: nowrap; | |
padding: 0 5px; | |
} | |
@media (max-width: 767px) { | |
span.save_widget { | |
font-size: small; | |
padding: 0 0 0 5px; | |
} | |
span.checkpoint_status, | |
span.autosave_status { | |
display: none; | |
} | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
span.checkpoint_status { | |
display: none; | |
} | |
span.autosave_status { | |
font-size: x-small; | |
} | |
} | |
.toolbar { | |
padding: 0px; | |
margin-left: -5px; | |
margin-top: 2px; | |
margin-bottom: 5px; | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
.toolbar select, | |
.toolbar label { | |
width: auto; | |
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; | |
} | |
.toolbar .btn { | |
padding: 2px 8px; | |
} | |
.toolbar .btn-group { | |
margin-top: 0px; | |
margin-left: 5px; | |
} | |
.toolbar-btn-label { | |
margin-left: 6px; | |
} | |
#maintoolbar { | |
margin-bottom: -3px; | |
margin-top: -8px; | |
border: 0px; | |
min-height: 27px; | |
margin-left: 0px; | |
padding-top: 11px; | |
padding-bottom: 3px; | |
} | |
#maintoolbar .navbar-text { | |
float: none; | |
vertical-align: middle; | |
text-align: right; | |
margin-left: 5px; | |
margin-right: 0px; | |
margin-top: 0px; | |
} | |
.select-xs { | |
height: 24px; | |
} | |
[dir="rtl"] .btn-group > .btn, | |
.btn-group-vertical > .btn { | |
float: right; | |
} | |
.pulse, | |
.dropdown-menu > li > a.pulse, | |
li.pulse > a.dropdown-toggle, | |
li.pulse.open > a.dropdown-toggle { | |
background-color: #F37626; | |
color: white; | |
} | |
/** | |
* Primary styles | |
* | |
* Author: Jupyter Development Team | |
*/ | |
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot | |
* of chance of beeing generated from the ../less/[samename].less file, you can | |
* try to get back the less file by reverting somme commit in history | |
**/ | |
/* | |
* We'll try to get something pretty, so we | |
* have some strange css to have the scroll bar on | |
* the left with fix button on the top right of the tooltip | |
*/ | |
@-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; | |
} | |
} | |
/*properties of tooltip after "expand"*/ | |
.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; | |
} | |
/*properties of tooltip before "expand"*/ | |
.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; | |
} | |
.tooltipbuttons { | |
position: absolute; | |
padding-right: 15px; | |
top: 0px; | |
right: 0px; | |
} | |
.tooltiptext { | |
/*avoid the button to overlap on some docstring*/ | |
padding-right: 30px; | |
} | |
.ipython_tooltip { | |
max-width: 700px; | |
/*fade-in animation when inserted*/ | |
-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: 2px; | |
position: absolute; | |
z-index: 1000; | |
} | |
.ipython_tooltip a { | |
float: right; | |
} | |
.ipython_tooltip .tooltiptext pre { | |
border: 0; | |
border-radius: 0; | |
font-size: 100%; | |
background-color: #f7f7f7; | |
} | |
.pretooltiparrow { | |
left: 0px; | |
margin: 0px; | |
top: -16px; | |
width: 40px; | |
height: 16px; | |
overflow: hidden; | |
position: absolute; | |
} | |
.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); | |
} | |
ul.typeahead-list i { | |
margin-left: -10px; | |
width: 18px; | |
} | |
[dir="rtl"] ul.typeahead-list i { | |
margin-left: 0; | |
margin-right: -10px; | |
} | |
ul.typeahead-list { | |
max-height: 80vh; | |
overflow: auto; | |
} | |
ul.typeahead-list > li > a { | |
/** Firefox bug **/ | |
/* see https://github.com/jupyter/notebook/issues/559 */ | |
white-space: normal; | |
} | |
ul.typeahead-list > li > a.pull-right { | |
float: left !important; | |
float: left; | |
} | |
[dir="rtl"] .typeahead-list { | |
text-align: right; | |
} | |
.cmd-palette .modal-body { | |
padding: 7px; | |
} | |
.cmd-palette form { | |
background: white; | |
} | |
.cmd-palette input { | |
outline: none; | |
} | |
.no-shortcut { | |
min-width: 20px; | |
color: transparent; | |
} | |
[dir="rtl"] .no-shortcut.pull-right { | |
float: left !important; | |
float: left; | |
} | |
[dir="rtl"] .command-shortcut.pull-right { | |
float: left !important; | |
float: left; | |
} | |
.command-shortcut:before { | |
content: "(command mode)"; | |
padding-right: 3px; | |
color: #777777; | |
} | |
.edit-shortcut:before { | |
content: "(edit)"; | |
padding-right: 3px; | |
color: #777777; | |
} | |
[dir="rtl"] .edit-shortcut.pull-right { | |
float: left !important; | |
float: left; | |
} | |
#find-and-replace #replace-preview .match, | |
#find-and-replace #replace-preview .insert { | |
background-color: #BBDEFB; | |
border-color: #90CAF9; | |
border-style: solid; | |
border-width: 1px; | |
border-radius: 0px; | |
} | |
[dir="ltr"] #find-and-replace .input-group-btn + .form-control { | |
border-left: none; | |
} | |
[dir="rtl"] #find-and-replace .input-group-btn + .form-control { | |
border-right: none; | |
} | |
#find-and-replace #replace-preview .replace .match { | |
background-color: #FFCDD2; | |
border-color: #EF9A9A; | |
border-radius: 0px; | |
} | |
#find-and-replace #replace-preview .replace .insert { | |
background-color: #C8E6C9; | |
border-color: #A5D6A7; | |
border-radius: 0px; | |
} | |
#find-and-replace #replace-preview { | |
max-height: 60vh; | |
overflow: auto; | |
} | |
#find-and-replace #replace-preview pre { | |
padding: 5px 10px; | |
} | |
.terminal-app { | |
background: #EEE; | |
} | |
.terminal-app #header { | |
background: #fff; | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); | |
} | |
.terminal-app .terminal { | |
width: 100%; | |
float: left; | |
font-family: monospace; | |
color: white; | |
background: black; | |
padding: 0.4em; | |
border-radius: 2px; | |
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); | |
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); | |
} | |
.terminal-app .terminal, | |
.terminal-app .terminal dummy-screen { | |
line-height: 1em; | |
font-size: 14px; | |
} | |
.terminal-app .terminal .xterm-rows { | |
padding: 10px; | |
} | |
.terminal-app .terminal-cursor { | |
color: black; | |
background: white; | |
} | |
.terminal-app #terminado-container { | |
margin-top: 20px; | |
} | |
/*# sourceMappingURL=style.min.css.map */ | |
</style> | |
<style type="text/css"> | |
.highlight .hll { background-color: #ffffcc } | |
.highlight { background: #f8f8f8; } | |
.highlight .c { color: #408080; font-style: italic } /* Comment */ | |
.highlight .err { border: 1px solid #FF0000 } /* Error */ | |
.highlight .k { color: #008000; font-weight: bold } /* Keyword */ | |
.highlight .o { color: #666666 } /* Operator */ | |
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ | |
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ | |
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ | |
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ | |
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ | |
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ | |
.highlight .gd { color: #A00000 } /* Generic.Deleted */ | |
.highlight .ge { font-style: italic } /* Generic.Emph */ | |
.highlight .gr { color: #FF0000 } /* Generic.Error */ | |
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | |
.highlight .gi { color: #00A000 } /* Generic.Inserted */ | |
.highlight .go { color: #888888 } /* Generic.Output */ | |
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ | |
.highlight .gs { font-weight: bold } /* Generic.Strong */ | |
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | |
.highlight .gt { color: #0044DD } /* Generic.Traceback */ | |
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ | |
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ | |
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ | |
.highlight .kp { color: #008000 } /* Keyword.Pseudo */ | |
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ | |
.highlight .kt { color: #B00040 } /* Keyword.Type */ | |
.highlight .m { color: #666666 } /* Literal.Number */ | |
.highlight .s { color: #BA2121 } /* Literal.String */ | |
.highlight .na { color: #7D9029 } /* Name.Attribute */ | |
.highlight .nb { color: #008000 } /* Name.Builtin */ | |
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ | |
.highlight .no { color: #880000 } /* Name.Constant */ | |
.highlight .nd { color: #AA22FF } /* Name.Decorator */ | |
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ | |
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ | |
.highlight .nf { color: #0000FF } /* Name.Function */ | |
.highlight .nl { color: #A0A000 } /* Name.Label */ | |
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ | |
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ | |
.highlight .nv { color: #19177C } /* Name.Variable */ | |
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | |
.highlight .w { color: #bbbbbb } /* Text.Whitespace */ | |
.highlight .mb { color: #666666 } /* Literal.Number.Bin */ | |
.highlight .mf { color: #666666 } /* Literal.Number.Float */ | |
.highlight .mh { color: #666666 } /* Literal.Number.Hex */ | |
.highlight .mi { color: #666666 } /* Literal.Number.Integer */ | |
.highlight .mo { color: #666666 } /* Literal.Number.Oct */ | |
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ | |
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ | |
.highlight .sc { color: #BA2121 } /* Literal.String.Char */ | |
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ | |
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ | |
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ | |
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ | |
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ | |
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ | |
.highlight .sx { color: #008000 } /* Literal.String.Other */ | |
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ | |
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ | |
.highlight .ss { color: #19177C } /* Literal.String.Symbol */ | |
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ | |
.highlight .fm { color: #0000FF } /* Name.Function.Magic */ | |
.highlight .vc { color: #19177C } /* Name.Variable.Class */ | |
.highlight .vg { color: #19177C } /* Name.Variable.Global */ | |
.highlight .vi { color: #19177C } /* Name.Variable.Instance */ | |
.highlight .vm { color: #19177C } /* Name.Variable.Magic */ | |
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ | |
</style> | |
<style type="text/css"> | |
/* Overrides of notebook CSS for static HTML export */ | |
body { | |
overflow: visible; | |
padding: 8px; | |
} | |
div#notebook { | |
overflow: visible; | |
border-top: none; | |
}@media print { | |
div.cell { | |
display: block; | |
page-break-inside: avoid; | |
} | |
div.output_wrapper { | |
display: block; | |
page-break-inside: avoid; | |
} | |
div.output { | |
display: block; | |
page-break-inside: avoid; | |
} | |
} | |
</style> | |
<!-- Custom stylesheet, it must be in the same directory as the html file --> | |
<link rel="stylesheet" href="custom.css"> | |
<!-- Loading mathjax macro --> | |
<!-- Load mathjax --> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script> | |
<!-- MathJax configuration --> | |
<script type="text/x-mathjax-config"> | |
MathJax.Hub.Config({ | |
tex2jax: { | |
inlineMath: [ ['$','$'], ["\\(","\\)"] ], | |
displayMath: [ ['$$','$$'], ["\\[","\\]"] ], | |
processEscapes: true, | |
processEnvironments: true | |
}, | |
// Center justify equations in code and markdown cells. Elsewhere | |
// we use CSS to left justify single line equations in code cells. | |
displayAlign: 'center', | |
"HTML-CSS": { | |
styles: {'.MathJax_Display': {"margin": 0}}, | |
linebreaks: { automatic: true } | |
} | |
}); | |
</script> | |
<!-- End of mathjax configuration --></head> | |
<body> | |
<div tabindex="-1" id="notebook" class="border-box-sizing"> | |
<div class="container" id="notebook-container"> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h6 id="Content-created-under-Creative-Commons-Attribution-license-CC-BY-4.0,-code-under-BSD-3-Clause-License-©-2020-R.C.-Cooper">Content created under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper<a class="anchor-link" href="#Content-created-under-Creative-Commons-Attribution-license-CC-BY-4.0,-code-under-BSD-3-Clause-License-©-2020-R.C.-Cooper">¶</a></h6> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="Statistics-and-Monte-Carlo-Models">Statistics and Monte-Carlo Models<a class="anchor-link" href="#Statistics-and-Monte-Carlo-Models">¶</a></h1><p>Monte Carlo models use random numbers to either understand statistics or generate a solution [1]. | |
The main element in a Monte Carlo model is the use of random numbers. Monte Carlo methods are very useful if you can easily execute a function lots of time or even in parallel.</p> | |
<p>We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators.</p> | |
<p>In Python, we use the numpy library as such</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [2]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> | |
<span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [25]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> | |
<span class="c1">#Import rcParams to set font styles</span> | |
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">rcParams</span> | |
<span class="c1">#Set font style and size </span> | |
<span class="n">rcParams</span><span class="p">[</span><span class="s1">'font.family'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'sans'</span> | |
<span class="n">rcParams</span><span class="p">[</span><span class="s1">'font.size'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">16</span> | |
<span class="n">rcParams</span><span class="p">[</span><span class="s1">'lines.linewidth'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [26]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'b'</span><span class="p">,</span> <span class="n">histtype</span><span class="o">=</span><span class="s1">'bar'</span><span class="p">,</span> <span class="n">edgecolor</span><span class="o">=</span><span class="s1">'w'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[26]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>(array([ 974., 1012., 1040., 997., 1028., 1025., 1021., 1001., 943., | |
959.]), | |
array([1.33899648e-05, 1.00007220e-01, 2.00001050e-01, 2.99994879e-01, | |
3.99988709e-01, 4.99982539e-01, 5.99976369e-01, 6.99970198e-01, | |
7.99964028e-01, 8.99957858e-01, 9.99951688e-01]), | |
<a list of 10 Patch objects>)</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>The <code>numpy.random.rand(10)</code> function generates 10 random numbers between 0 and 1. The pyplot function <code>hist</code> then displays a histogram of these randomly generated numbers.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Exercise-and-Discussion">Exercise and Discussion<a class="anchor-link" href="#Exercise-and-Discussion">¶</a></h2><p>Try generating more random numbers and plotting histograms of the results i.e. increase <code>10</code> to larger values.</p> | |
<p>What should the histogram of <code>x</code> look like if Python is generating truly random numbers?</p> | |
<p><em>If <code>x</code> is truly random, the histogram should be a uniform value between 0-1.</em></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [27]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10000</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">x</span><span class="p">);</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Examples-of-Monte-Carlo-models:">Examples of Monte Carlo models:<a class="anchor-link" href="#Examples-of-Monte-Carlo-models:">¶</a></h2><p>Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. The three main applications for Monte Carlo models are used in three main classes: optimization, numerical integration, and generating population distributions [1].</p> | |
<p>Here is a brief list of Monte Carlo model use cases in real-world applications:</p> | |
<ul> | |
<li><a href="https://link.springer.com/chapter/10.1007%2FBFb0049064">Eigenvlaues in supercritical systems</a></li> | |
<li><a href="http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf">average time between failures for reliability</a></li> | |
<li>disordered materials (physics)</li> | |
<li><a href="http://www.mdpi.com/1996-1073/9/4/286/pdf">Calculation of the energy output of a wind farm</a></li> | |
<li><a href="https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System">US Coast Guard rescue missions</a></li> | |
<li><a href="http://www.sciencedirect.com/science/article/pii/S0920379612000580">Radiation shielding</a></li> | |
<li><a href="https://cneos.jpl.nasa.gov/sentry/intro.html">Predict number of asteroids that hit body of water</a></li> | |
<li><a href="https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance">Financial modeling</a></li> | |
</ul> | |
<p>We will explore Monte Carlo modeling through the use of three examples:</p> | |
<ol> | |
<li><p>Calculate the value of $\pi$</p> | |
</li> | |
<li><p>Calculate the integral of a function</p> | |
</li> | |
<li><p>Propagate uncertainty in manufacturing into uncertainty in failure load</p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="Example-1:-Calculate-$\pi$-with-random-numbers.">Example 1: Calculate $\pi$ with random numbers.<a class="anchor-link" href="#Example-1:-Calculate-$\pi$-with-random-numbers.">¶</a></h1><p>Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.</p> | |
<p><img src="../images/MonteCarloPi.gif" alt="Unit circle and unit square"></p> | |
<p><img src="../images/MonteCarloPi_rand.gif" alt="1/4 Unit circle and 1/4 unit square"></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>The ratio of the area of the circle to the square is:</p> | |
<p>$\frac{\pi r^{2}}{4r^{2}}=\frac{\pi}{4}$</p> | |
<p>So if we know the fraction of random points that are within the unit circle, then we can calculate $\pi$</p> | |
<p>(number of points in circle)/(total number of points)=$\pi/4$</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [28]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[28]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>array([0.69419665, 0.38522961, 0.2673799 , 0.45284445, 0.20074092, | |
0.93544598, 0.7124594 , 0.77077166, 0.89242586, 0.62870529])</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [29]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">montecarlopi</span><span class="p">(</span><span class="n">N</span><span class="p">):</span> | |
<span class="sd">'''Create random x-y-coordinates to and use ratio of circle-to-square to </span> | |
<span class="sd"> calculate the value of pi</span> | |
<span class="sd"> i.e. Acircle/Asquare = pi/4</span> | |
<span class="sd"> Arguments</span> | |
<span class="sd"> ---------</span> | |
<span class="sd"> N: number of random points to produce between x=0-1 and y=0-1</span> | |
<span class="sd"> </span> | |
<span class="sd"> Returns</span> | |
<span class="sd"> -------</span> | |
<span class="sd"> our_pi: the best prediction of pi using N points</span> | |
<span class="sd"> '''</span> | |
<span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> | |
<span class="n">y</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> | |
<span class="n">R</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">y</span><span class="o">**</span><span class="mi">2</span><span class="p">);</span> <span class="c1"># compute radius</span> | |
<span class="n">num_in_circle</span><span class="o">=</span><span class="nb">sum</span><span class="p">(</span><span class="n">R</span><span class="o"><</span><span class="mi">1</span><span class="p">);</span> | |
<span class="n">total_num_pts</span> <span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">R</span><span class="p">);</span> | |
<span class="n">our_pi</span> <span class="o">=</span> <span class="mi">4</span><span class="o">*</span><span class="n">num_in_circle</span><span class="o">/</span><span class="n">total_num_pts</span><span class="p">;</span> | |
<span class="k">return</span> <span class="n">our_pi</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [30]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">test_pi</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">):</span> | |
<span class="n">test_pi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">montecarlopi</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'mean value for pi = </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.mean(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'standard deviation is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.std(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'actual pi is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.pi) | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>mean value for pi = 3.122400 | |
standard deviation is 0.029837 | |
actual pi is 3.141593 | |
</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="Exercises">Exercises<a class="anchor-link" href="#Exercises">¶</a></h1><ol> | |
<li><p>Why is there a standard deviation for the value of $\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of <code>test_pi</code>? or the number of random points <code>N</code>? Alter the script above to discover correlations</p> | |
</li> | |
<li><p>How well does our function <code>montecarlopi</code> converge to the true value of $\pi$ (you can use <code>np.pi</code> as a true value)? Plot the convergence as we did in <a href="https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb">03-Numerical_error</a></p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [31]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">test_pi</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">):</span> | |
<span class="n">test_pi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">montecarlopi</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'mean value for pi = </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.mean(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'standard deviation is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.std(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'actual pi is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.pi) | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>mean value for pi = 3.137560 | |
standard deviation is 0.050927 | |
actual pi is 3.141593 | |
</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>Compare the above 100 <code>test_pi</code> cases each 1000 points.</p> | |
<p>to the below 10 <code>test_pi</code> cases each 10,000 points.</p> | |
<p>Above, the std is the same as before $\approx 0.05$</p> | |
<p>Below, the std is decreased to $\approx 0.01$</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [32]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">test_pi</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">):</span> | |
<span class="n">test_pi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">montecarlopi</span><span class="p">(</span><span class="mi">10000</span><span class="p">);</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'mean value for pi = </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.mean(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'standard deviation is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.std(test_pi)) | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'actual pi is </span><span class="si">%f</span><span class="s1">'</span><span class="o">%</span><span class="k">np</span>.pi) | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>mean value for pi = 3.141280 | |
standard deviation is 0.019888 | |
actual pi is 3.141593 | |
</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [38]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">N</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> | |
<span class="n">error</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">N</span><span class="p">))</span> | |
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">N</span><span class="p">:</span> | |
<span class="n">mypi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">):</span> | |
<span class="n">mypi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">montecarlopi</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="n">n</span><span class="p">)</span> | |
<span class="n">mupi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">mypi</span><span class="p">)</span> | |
<span class="n">error</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">-</span><span class="n">mupi</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="n">error</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'N=10^n'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'relative error'</span><span class="p">);</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="Example-2:-Calculate-the-integral-of-a-function">Example 2: Calculate the integral of a function<a class="anchor-link" href="#Example-2:-Calculate-the-integral-of-a-function">¶</a></h1><p>One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such</p> | |
<p>$I=\int_{a}^{b}f(x) dx \approx \Delta x \left(f(a)+f(a+\Delta x)+f(a+2\Delta x)+...+f(b)\right))$.</p> | |
<p>Another way to integrate this function is with a <a href="https://en.wikipedia.org/wiki/Monte_Carlo_integration">Monte Carlo approach</a> [2, 3]. We can approximate the integral as such</p> | |
<p>$I=\int_{a}^{b}f(x) dx \approx \frac{1}{n}\sum_{i=1}^n f(x_i)$.</p> | |
<p>where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square.</p> | |
<p>Visually, this approximation can be represented by the following figure.</p> | |
<p><img src="../images/integrals.png" alt="Integration approximation"></p> | |
<p>The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right).</p> | |
<p>The main benefit in using a Monte Carlo integration over a Riemann sum (or another non-random method e.g. trapezoidal) is that the integration converges as</p> | |
<p>$error \approx \frac{1}{\sqrt{n}}$</p> | |
<p>independent of the number of dimensions in the formula. Non-random methods have convergence rates that depend upon the step size along each axis, so with two dimensions reducing the step size to 1/3 increases n by 4, in three dimensions its 8, in 4D its 16, and so on. We'll do an example with a 1D function to introduce the concept.</p> | |
<p>You can even integrate functions that are not easy to evaluate, such as the <a href="http://leios.github.io/Batman_Montecarlo">area of light shown by the bat signal</a></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Exercise-(Discussion)">Exercise (Discussion)<a class="anchor-link" href="#Exercise-(Discussion)">¶</a></h2><p>Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?</p> | |
<p><em>Monte Carlo integration is the average of 0-order Taylor series exansions. The function is sampled at random locations and assumed constant throughout the interval of interest. It converges slower than other methods, but it converges at the same rate independent of the number of independent variables</em></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [ ]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>In this example, we will calculate the integral $I=\int_{1}^{3}f(x)dx$ where</p> | |
<p>$I=\int_{1}^{3}\frac{x}{1+x^2}dx \approx \frac{1}{n}\sum_{i=1}^n \frac{x_i}{1+x_i^2}$</p> | |
<p>Our first objective is to take random numbers between 0 and 1 and turn them into random number between 1 and 3. This process is called <em>scaling</em> or <em>transforming</em> our variable $x_{i}$</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [39]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">ri</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> | |
<span class="n">xi</span><span class="o">=</span><span class="mi">1</span><span class="o">+</span><span class="p">(</span><span class="mi">3</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">ri</span> <span class="c1"># scaling equation for our uniform distribution 0..1 to 1..3</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">xi</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'x_i: our scaled var'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">ri</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'r_i: our original var'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">();</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAEBCAYAAAB7Wx7VAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAH1VJREFUeJzt3Xl4VdW9//H3l0wYEpSQAKkI0dYbKIoXjRSQySKDiFBbRBECqAhaFRRaQQgSKwi2qLWAWqpcaaAo/q5UBZ9btMpgiQgoIojg0GBV5jCDhIT1+yMk5pCBk2SfDO7P63nyJNl77bXWOSf5ZGXtfdY25xwiIvLDV6e6OyAiIlVDgS8i4hMKfBERn1Dgi4j4hAJfRMQnFPgiIj6hwBcR8QkFvoiITyjwRUR8Iry6O1BUfHy8S0pKqu5uiIjUGuvXr9/rnEsIpmyNCvykpCTWrVtX3d0QEak1zGx7sGU1pSMi4hMKfBERn1Dgi4j4RFCBb2ZNzWymmWWa2TEzc2aWVEI5V8rHf3vdcRERKZ9gT9r+BBgArAdWAT3KKPsC8Ocztm0rd89ERMRTwQb+SudcYwAzG07Zgf+Nc+69SvdMREQ8FVTgO+dOhboj8sNz4sQJsrOzOXz4MHl5edXdHZFaJTIykvj4eM4991zP6gzFdfh3mdlvgTzgPWCyc25VCNqRGuzEiRN89dVXNGjQgKSkJCIiIjCz6u6WSK3gnOP48eN8/fXXREVFUbduXU/q9foqnfnAr4FrgBFAQ+BtM+vqcTtSw2VnZ9OgQQPi4+OJjIxU2IuUg5kRHR1NfHw8e/bs8axeT0f4zrnUIt+uMrNXgU3AFKBjSceY2Qjy/zjQrFkzL7tTsvQg/z1KPxjafvzAHT58mFAsk7Hx6wOe1te66Xme1ifipdjYWPbt2+dZfSG9Dt85dxhYClxZRpk5zrkU51xKQkJQy0FILZCXl0dERER1d0OkVgsPDyc3N9ez+qrijVcGuCpoR2oYTeOIVI7Xv0MhDXwzqw9cB6wJZTsiInJ2QQe+mfU3s/7AFac3XXt6W5fT+39jZn8xs1vMrKuZDQX+BTQB0jzvuUgtlZSUxLBhw6q7GzVaVlYWZsYLL7zgWZ1mRnp6umf11UblOWn78hnfP3368wqgK7AVuOH0x7nAIfID/3bn3PuV66b8kCSNX1qt7b92z1XV2v7ixYupX79+tfZB/CnowHfOlTmZ5Jx7HXi90j0S+YFr06ZNdXehVM45Tp48SWRkZHV35QcpLy8P5xzh4dVzKxKtlikShKNHj9KiRQvatm3LyZMnC7cvW7aMOnXqMHv27KDrqsyUzsmTJ0lLSyMpKYnIyEiSkpJIS0sL6NPy5csxM5YvXx5w7AsvvICZkZWVFdCXwYMHM3fuXFq0aEFkZCRLl5b+H9hTTz1Fy5YtOeecc2jQoAEpKSksXrw4oMzixYu56qqriImJoX79+rRt25bXXnutcP+sWbNo3749cXFxnHfeebRr167MNotasWIF3bp1IzY2lnr16tGzZ082bdoUUCYvL4+0tDQSExOJjo6ma9eubN68+ax1v//++5gZr79efNx61113kZCQUPg8v/jii/z85z8nISGBmJgY2rRpw7x584odZ2ZMnDiR6dOnc+GFFxIZGcnHH38c1GMNhRp1xyuRmqpevXosXLiQdu3aMWnSJKZPn87u3bsZMmQIffr04e67765U/WbG0KFDzzpnPXToUBYtWsSECRPo2LEjmZmZTJkyhS+//JK//e1vFWr7nXfeYcOGDUyePJlGjRqV+v6JBQsWMHbsWB566CE6derE8ePH2bhxI9nZ2YVlZs6cyahRo/jFL37BvHnziImJ4YMPPgj4I5OVlcXw4cNJSkoiNzeX119/nT59+vDGG29w7bXXltrPpUuX0q9fP6677jrmz58PwGOPPUanTp3YuHEjF1xwAQDp6ek8+uijjBkzhh49erBu3Tr69u171uehbdu2JCcnk5GRwfXXX1+4PScnh0WLFnHLLbcUXmr85Zdf0r9/f8aPH0+dOnVYuXIlw4cP5/jx49x5550B9b7wwgtcdNFFzJgxg3r16vGjH/3orH0JFQW+SJDatGnD9OnTGTt2LNdccw0zZswgLCyMuXPnVrrusLAwwsLCyiyzadMmFi5cyOTJkwtPPvbo0YOwsDAmTZrE+PHjad26dbnb3r9/P+vXr6dJkyZllsvMzKR169Y89NBDhdt69+5d+PWhQ4eYMGECN9xwA6+88krh9p49ewbUM2PGjMKvT506Rbdu3di2bRvPPvtsmYE/evRounTpwquvvlq47eqrr+aiiy7i8ccf549//CP79+/nySefZMSIEYXtFDxH48ePP8szAampqUyZMoWD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TZvo2bMnMTExDBgwIKhjhw0bVqllF+bPn89ll11G3bp1iY+PJzU1tfCG3QXMjPT09IBtWVlZmFnAdMWwYcNo2rQpmZmZdOjQgXPOOYcHHnig1Ladczz55JMkJycTGRlJYmIi99xzD4cOHQood9kFDZj52CM8P/tJru1wGSkXNeKzTz9hbea7XHZBA9ZmvltYNi8vj1m/n0K3K1rws4t/xPCb+vLvz7dx2QUNAh5DwXN+5uNMS0vjT3/6ExdeeCGxsbF06dKFzZs3B5RbtmwZvXv3JjExkejoaC655BIef/zxoG40U9SOHTsIDw9n5syZxfY99thjREREsGfPnnK1mZSUxODBg5k7dy4tWrQgMjKSpUuXlqtfFaERvkg59evXj9tvv51x48ZRp07Fx0xdu3YlKyvrrPP6c+bMYeTIkdx0001MmzaNb7/9lgkTJrBmzRo++OADYmJiyt32wYMHufnmm/nNb37Do48+WubtGSdOnMi0adO4++67uf766/nkk0+YNGkSH330EStWrAgo++rLC2narDlj0x7hnHOiadS4CUcOHypW5zOPT+O5WU8w9M57adexK1s2fcSo224Juv/z588nOTmZp556ipycHH7729/Sr18/Pv30U8LD82Ptyy+/pFu3btx7773UrVuXdevWkZ6ezp49e5g+fXrQbSUmJnLNNdeQkZHBvffeW6wfvXr1IiEhodxtvvPOO2zYsIHJkyfTqFGjKlmHSYEvUk6jRo1i9OjRla4nLCysMJxKk5eXx6RJk+jatWvAjbhbtGhBp06dmDt3LqNGjSp320eOHGH+/Pn069evzHLZ2dk88cQTDB06lFmzZgHQs2dPEhISSE1NZcmSJSRd3vn7A5zj2QWvULfIH5AvP98WUOehAweY//yz3Dj4Vu6f8DAA7TtfTXh4BI8/EtxtGCMiIliyZEnAjcRvvPFG3n//fTp0yL9d4p133lmkW45OnTqRk5PDjBkzePTRR8v1xzo1NZXBgwezdetWkpOTAdiwYQObNm1i0qRJheXK0+b+/ftZv349TZo0CboflaUpHZFyuuGGGzyp55///Ceff/55mWW2bt3K7t27GTRoUMD2jh070rx582Ij7GCFh4fTp0+fs5Z77733OHHiRLH7td58882Eh4cXa79D124BYV+Szz7dzPFjR+ne5xcB27tf1zfI3kP37t0D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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Exercise">Exercise<a class="anchor-link" href="#Exercise">¶</a></h2><p>Compare the scaled histogram to the original histogram. What is similar? What is different?</p> | |
<p>Make a scaling equation to get uniformly random numbers between 10 and 20.</p> | |
<p><em>The scaling keeps the bin heights constant, but it changes the width and location of the bins in the histogram. Scaling to 10-20 shows a more extreme example.</em></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [41]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">ri</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> | |
<span class="n">xi</span><span class="o">=</span><span class="mi">10</span><span class="o">+</span><span class="p">(</span><span class="mi">20</span><span class="o">-</span><span class="mi">10</span><span class="p">)</span><span class="o">*</span><span class="n">ri</span> <span class="c1"># scaling equation for our uniform distribution 0..1 to 1..3</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">xi</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'x_i: our scaled var'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">ri</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'r_i: our original var'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">();</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAEBCAYAAAB7Wx7VAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzt3Xl4VNX9x/H3F7IgJCAhAbE0BNv+wFKx+IsYEAQFARGhVlbZXBC0AlJQQQgSW5Zocd/6s4VCA1K1LVXBp0WrAVojEhBZSrVVg9WyaQIiIFk8vz8miZmsk2SSSbif1/PMk8ydc+/55j6TT27OvXOuOecQEZEzX5NQFyAiIvVDgS8i4hEKfBERj1Dgi4h4hAJfRMQjFPgiIh6hwBcR8QgFvoiIRyjwRUQ8IizUBZQUGxvrEhISQl2GiEijsX379s+cc3GBtG1QgZ+QkEBmZmaoyxARaTTMbH+gbTWkIyLiEQp8ERGPUOCLiHhEQIFvZh3M7HEzyzCzk2bmzCyhnHaugscPg124iIhUT6Anbb8LjAK2A1uAgZW0XQn8X6ll71e7MhERCapAA3+zc64dgJlNpvLA/9Q591atKxMRkaAKKPCdc1/XdSFedvr0abKzszl+/DgFBQWhLkekUYmIiCA2NpZWrVqFupQGry6uw7/NzO4CCoC3gIXOuS110M8Z4fTp03z88ce0bt2ahIQEwsPDMbNQlyXSKDjnOHXqFJ988gmRkZE0a9Ys1CU1aMG+Smc18BNgADAFaAO8bmb9gtzPGSM7O5vWrVsTGxtLRESEwl6kGsyM5s2bExsby5EjR0JdToMX1CN859yEEk+3mNmLwB5gEdC7vHXMbAq+Pw7Ex8cHs5zypRT+25dyrO77CsDx48fRdBIitRMdHc3nn38OQMLcDTXeTlbq1cEqqUGq0+vwnXPHgQ3AxZW0ecY5l+icS4yLC2g6iDNKQUEB4eHhoS5DpFELCwsjPz8/1GU0ePXxwSsDXD3002hpGEekdvQ7FJg6DXwzawlcDWyty35ERKRqAQe+mY0wsxHA/xYuuqpwWd/C1+80s1+Z2fVm1s/MJgF/B84BkoNeuZzxEhISuOGGG0JdRoOWlZWFmbFy5cqgbdPMSElJCdr2pOGozknbF0o9f6rw6yagH/AecG3hoxXwBb7Av9k593btyvSm2px8CoZQn8Bat24dLVu2DGkNImeSgAPfOVfpIJlz7mXg5VpXJFKoe/fuoS6hQs458vLyiIiICHUpZ6SCggKcc4SFNahbdjR6mi1TgurEiRN06dKFHj16kJeXV7x848aNNGnShCeffDLgbdVmSCcvL4/k5GQSEhKIiIggISGB5ORkv5rS09MxM9LT0/3WXblyJWZGVlaWXy3jx49nxYoVdOnShYiICDZsqPg/sEcffZTzzz+fs846i9atW5OYmMi6dev82qxbt45LL72UqKgoWrZsSY8ePXjppZeKX3/iiSfo2bMnMTExnH322SQlJVXaZ0mbNm2if//+REdH06JFCwYNGsSePXv82hQUFJCcnEz79u1p3rw5/fr1Y+/evVVu++2338bMePnlssd3t912G3FxccX7+Xe/+x1XXHEFcXFxREVF0b17d1atWlVmPTNj/vz5pKam0qlTJyIiIti9e3dAP6sETn8+JahatGjB2rVrSUpKYsGCBaSmpnL48GEmTpzI0KFDuf3222u1fTNj0qRJVY5ZT5o0ieeff5558+bRu3dvMjIyWLRoER9++CHPPvtsjfp+44032LlzJwsXLqRt27YVfn5izZo1zJ49m3vvvZc+ffpw6tQpdu3aRXZ2dnGbxx9/nBkzZvCjH/2IVatWERUVxY4dO/z+yGRlZTF58mQSEhLIz8/n5ZdfZujQobzyyitcddVVFda5YcMGhg8fztVXX83q1asBuP/+++nTpw+7du3i29/+NgApKSksWbKEWbNmMXDgQDIzMxk2bFiV+6FHjx507tyZtLQ0rrnmmuLlubm5PP/881x//fXFlxp/+OGHjBgxgrlz59KkSRM2b97M5MmTOXXqFLfeeqvfdleuXMl5553HsmXLaNGiBeeee26VtUj1KPAl6Lp3705qaiqzZ89mwIABLFu2jKZNm7JixYpab7tp06Y0bdq00jZ79uxh7dq1LFy4sPjk48CBA2natCkLFixg7ty5dOvWrdp95+TksH37ds4555xK22VkZNCtWzfuvffe4mVDhgwp/v6LL75g3rx5XHvttfzxj38sXj5o0CC/7Sxbtqz4+6+//pr+/fvz/vvv88tf/rLSwL/jjjvo27cvL774YvGyyy+/nPPOO48HH3yQRx55hJycHB5++GGmTJlS3E/RPpo7d24VewImTJjAokWLOHbsWPEcNq+88grZ2dlMmPDN5y/nzZvn9zP069ePAwcO8PTTT5cJfOccGzdu5Kyzzqqyf6kZDelInZg5cyaDBw9m6NChbNy4kd/+9rfExsbWerv5+fksX7680jabN28GYPz48X7Li55v2rSpRn0nJSVVGfYAF198MTt37mT69Om89tprnDx50u/1N998ky+//JIpU6ZUup3t27czdOhQ2rVrR1hYGOHh4bz66qu89957Fa7zr3/9iw8++IBx48aRn59f/GjevDk9e/Ys3je7d+/mxIkTjBo1ym/9MWPGVPnzgW9fnj59mhde+OZajrS0NDp37kyPHj386hk7dizf+ta3CA8PJzw8nF//+tfl/gyDBw9W2NcxBb7UCTNjwoQJnD59mgsvvJD+/fvXW99FQyft27f3W14U1iWHVqqj9PYqMnHiRJ5++mm2bt3KoEGDiImJ4cc//nHxcE3RFAAdOnSocBv/+c9/6N+/P9nZ2Tz++OO8+eabbNu2jcGDB/PVV19VuN7hw4cBuPnmm4sDtuixfv364r4PHDgAQLt27fzWL/28Ih07duSyyy4jLS0NgKNHj7Jhwwa/o/svv/ySK6+8knfffZfU1FS2bNnCtm3buOmmmzh9+nSZbQa6f6XmNKQjdeLgwYPMnDmTiy66iHfeeYdHH32UO+64o176jomJKa7hO9/5jl9NAG3atAEonlkxNzfXb/2iUCwt0E9zmhlTp05l6tSp5OTksHHjRmbPns3o0aPZunVr8X86n376KT/4wQ/K3caf//xnjh07xvPPP+/3h6H0fwulFf1sS5cuZcCAAWVeL7qqqChcDx06RNeuXYtfP3ToUEA/I/iGdW655Rb279/PX/7yF3Jzcxk3blzx6xkZGezfv58tW7bQu/c3U2lVNAWCPi1b93SEL0HnnGPSpElERETw6quvMnPmTObMmcOuXbvqpf++ffsCvitESlqzZg0Al112GeA7SgXKXL3yyiuvBK2W1q1bM3r0aEaNGlXcT69evYiKiuKZZ56pcL2iYC85z9L777/P3//+90r769y5MwkJCezdu5fExMQyj6JzF926daNFixY8//zzfuuX3meVGTlyJM2aNWPNmjWkpaVx2WWX+Z3ILu9nyMnJ8Tu3IPXrzD/CT2nVYGbG9IqHHnqI1157jddff52YmBhSU1NJT09n7NixZGZm1mqcNiwsjEmT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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Performing-the-integration">Performing the integration<a class="anchor-link" href="#Performing-the-integration">¶</a></h2><p>If you have been doing a lot of calculus lately, you may know that</p> | |
<p>$\int\frac{x}{1+x^2}dx = \frac{\log({x^2+1})}{2}$.</p> | |
<p>If not, Python's <a href="https://docs.sympy.org/1.5.1/modules/integrals/integrals.html">Sympy: Symbolic algebra</a> can help you jog your memory [4]. It will also give us an exact solution to judge our convergence.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [42]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">sympy</span> | |
<span class="n">x</span><span class="o">=</span><span class="n">sympy</span><span class="o">.</span><span class="n">Symbol</span><span class="p">(</span><span class="s1">'x'</span><span class="p">)</span> | |
<span class="n">sympy</span><span class="o">.</span><span class="n">integrate</span><span class="p">(</span><span class="n">x</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">),</span><span class="n">x</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[42]:</div> | |
<div class="output_latex output_subarea output_execute_result"> | |
$\displaystyle \frac{\log{\left(x^{2} + 1 \right)}}{2}$ | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [43]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">sympy</span><span class="o">.</span><span class="n">integrate</span><span class="p">(</span><span class="n">x</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">),(</span><span class="n">x</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span><span class="o">.</span><span class="n">evalf</span><span class="p">()</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[43]:</div> | |
<div class="output_latex output_subarea output_execute_result"> | |
$\displaystyle 0.80471895621705$ | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>So the exact integral that we are approximating is</p> | |
<p>$I=\frac{\log{10}}{2}-\frac{\log{2}}{2}=0.80471895621705$</p> | |
<p><em>Note: We won't be using sympy for general numerical methods. It is helpful to do some algebra for us, but in general we want to use arrays so that our solutions can be scaled up and solved quicker by the computer.</em></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [48]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">f</span><span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span><span class="n">x</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> | |
<span class="n">n</span><span class="o">=</span><span class="mi">10</span> | |
<span class="n">ri</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> | |
<span class="n">xi</span><span class="o">=</span><span class="mi">1</span><span class="o">+</span><span class="p">(</span><span class="mi">3</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">ri</span> <span class="c1"># scaling equation for our uniform distribution 0..1 to 1..3</span> | |
<span class="c1"># we scaled our variable by a factor of 2 so we scale the bins accorcdingly</span> | |
<span class="n">bin_scale</span> <span class="o">=</span> <span class="mi">3</span><span class="o">-</span><span class="mi">1</span> | |
<span class="n">my_I</span><span class="o">=</span><span class="nb">sum</span><span class="p">(</span><span class="n">f</span><span class="p">(</span><span class="n">xi</span><span class="p">))</span><span class="o">/</span><span class="n">n</span><span class="o">*</span><span class="n">bin_scale</span> | |
<span class="nb">print</span><span class="p">(</span><span class="n">my_I</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">bar</span><span class="p">(</span><span class="n">xi</span><span class="p">,</span><span class="n">f</span><span class="p">(</span><span class="n">xi</span><span class="p">),</span><span class="n">width</span><span class="o">=</span><span class="n">bin_scale</span><span class="o">/</span><span class="n">n</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mf">0.5</span><span class="p">])</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">),</span><span class="n">f</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">)),</span><span class="n">color</span><span class="o">=</span><span class="s1">'k'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Graphical illustration of Monte Carlo'</span><span class="o">+</span>\ | |
<span class="s1">' integration</span><span class="se">\n</span><span class="s1"> I=</span><span class="si">{:.4f}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">my_I</span><span class="p">))</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'x'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'f(x)'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>0.7993808558656333 | |
</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[48]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0,0.5,'f(x)')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdcAAAE7CAYAAACPAss4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzs3Xd8FHX++PHXO6Ej9QhFREJHiiBSlSZYUE9E+SlYKZ6i2A/BgnpYzi5fTlSUU0E9FT1EUU5sFKUIiAhIExEi0pEmHQLv3x+f2WWzbJIN2c1skvfz8cgj2c+098xO5j3zmc98RlQVY4wxxsROkt8BGGOMMQWNJVdjjDEmxiy5GmOMMTFmydUYY4yJMUuuxhhjTIxZcjXGGGNirEAnVxEZJiIqIp2jHL+vN37f+EYWXF6aiKRFOe5x6yIinb2yYWHjqohMj2Ws+UFOtmeiEeceEVkhIge877CH33GZ7GX2f5jo8y6IEml75Si5ikgrEXldRH4WkT0iclBE1onIpyLyNxEpFa9ATWISkbHezpyaB8vK05OfPHYN8CywBxgOPAKsyGoCb1uoiOwWkZMyGadJyHgLYx511vFNF5E8e5BeRC4Skf+KyO/eCcpuEVkoIs+JSL28iiMR5ecTz3B5vV+dqCLRjCQiycAI4DbgMDAd+AzYD1QDOgJ/Bf4B1IhHoHnkI2AOsNHvQCJ4ERgHrPU7kATW1e8AcuFC7/dfVXVTDqZLB04C/h8wNsLwft44Uf2v50ciUhp4G7gMd3LyJfALUAxoAtwO3CkibVR1gW+Bnph5wGnAH34Hkk8kzPaK9h/uGVxinQv0VtW08BFEpCvwZOxCy3uqugvY5XcckajqHyTADpPIVPVXv2PIhWoAOUysAMuA8rgkOjZ0gIgUAa4FJgOX5D7EhDUWl1j/B/T1/leCROQU3DGsbN6Hljuquo9sajDMMQm1vVQ1yx+gIXAE2ARUzGbcImGf+wLq/b4Md1W4F5juDS8H3AfM8OZ/CHdl9ipQNcL8x3rzqwM8CKwGDgDLgVsijD/MG78zrtptkTf+OuBxIDmzeCPMqwvwKbAVOAj8BrwDNA0Zpz6uam8hsMNb1lIv1qIR5pkGpGX3HYSvS0hZZ69sWNi4GtjG0Swr0jCgAvAEbkfd563PEuBl4KSQ6TTCz1hveGrgM9AUmOTNR0OW0x/4xNueB3EnEBOBlpl89+E/admtoxfHWFyNxCFvWS8AlSKMq7iamSrAW148+7yyFtF8VyHzOh34MGSfWentd6Uj7HOZrlcW81dvX3sUOArUDht+qTfO5YFxI8wjBRjpbZND3jYaC6Rmtp8AZbzttxG3j38PnBshtkg/4ftqT2/b7sLVhP0I3JSDbXyuN99lQPFsxi0e8vdlwPu4Y8h+b7/8Onw9wv/PcLV0U4E/gTVZ/R96w3rgjm+7cce+74EbcrB+Eecd7X7Ksf/BSD99Q8ZLAm7EXUDt8X5mA5dnElcL4CtvvB24/bymt3wNG3cYx47DfwMWe/tN4DhxMm4fnsex/5VVwHNAmZzsV7H4LsiYty4AvvO27Rbc8a9UNN9dNFeu13sb/lVV3Z7ViKqansmgXrgqu4m4jR8Y7zTcvaWpwHjcTt4MuAk4X0RaqOqOCPP7F9AS+ACX+K8AXhaRqqr6jwjj3w6c5y1/GtAdGIq7cr8vq3UCEJG/A8/j/qE+wh1UauAS7vfAT96ol+OuIKbi/lGLA52Ax7x480UDFRER4AtczF/ikl8x3ElNX1zS3YO7VdAX9539C9jpzSL83l5dYBbwA/AacErIsJe88b8EtuH+QXsAF4hIZ1Wd4433Me4K7VLc9xhYxk6yICINgJnAX7x5/Iw7MNwOXCwibVV1a9hk5b14t+EOXDVx3+0UETlNo7i6FJEOuG2YjNtP1+H+8YcC54lIJ1U94K3HI7jtWNP7O9v1CjMWdwLXF3g4pLwf7qA7KZMYU3AnvLVxB8p3cSeI1+O2zdmqujJssqK476qst14VgKuAz0Skpaou9saLtE7g/v8Dy38WuAeX2N/HHcDOA171tvPdUax7P+/386p6MKsRw4Y/iTuIf4M7sa+G2+++EJErVHVChFmcDTyAW/9RuJOMTInIIFyC2Aq8iTt5uQx4TUSaqeod2axbdqLZT3fitv9d3jQjQqZf6MUpwHvAlbiTlDe94RcDH4rIXar6r5D1OgP4Fnd8+wB3QdQB93+WVY64F2iPO55Mxm13cCcsdwNTcAldgTbAIKCjtx8e9sbNdr+K5AS/i0txt2smenGdD9wCVAR6Z7U8IKor12neyp4T7dlWhDOAdKBDhOHliHA1jKvKUuDBsPKxXvkGoEpIeUVgjbecehHOmLYDdcPG34Y7gykW6YwlpKw5LoGvAU4Oi6dIWBzVQ+fnlQnwb2++7cOGpZGAV664Ky4FhkcYt2zYNgt8J6kRxk3l2JnlA5ksu1aEstO87+brzM4oo1mPsP33urDyh73yNyJsO8WdLEhI+T+88vuj+K6ScGfeR4FOYcNe9+bzcFj5dMLO+KNYTvBq1Js+LRAzUBl3APlX+Lgh04/xyh8KK7/eK58aYfsq7iqlaEh5H6/81WjXCXdFoLgTnhIh5UW9MgVaRbEN1njj1s5u3Cj2uyq4k6BVYeWdQ/aLqyNMFxg+LKSsDq59ynpCauFw98cXeeN3jCLO4+Z9IvtppP+NkGEDvGleIqQ2DyiNu5I9SMixD5fQFbg4bD6B45yGlQ/zyncBDSMsvzIhtTkh5Q96012bg/0q198Fx44zh4C2IeUlcLWkR4Hq2X130bQWrur93hA+QET+6j0iEvrTMMI8PlLVGeGFqrpLI18Nv4P7Is7NJKYXVHVzyHy246pjk3Fn0ZHGXxU2/ie4jdsgk2UEDMAdLO9X1QzbQFXTw+JYr6qHwsZR3FkuWaxPotofXqCqf4avYxQ24r6f46jqmghly3FJsYOIFMvhsoJE5FTcP9uPqvp22OBngM3AVRGWsRd3MqAhZWO93y2jWHR73D/0x6r6TdiwB3AHqz5RzCcnxuDO5rt4n6/FJaoxkUb21rk37urhmdBhqvoW7qrmHBGJ1EBxkB67kgD3/5pOdNsm4FbcAewmdVfwgWUfxh1UwdV4ZSdwfFqfg2Vntt9tBiYAdTJp/T5fVd+NchHX4E6+n9aQmg5V3YNLgJD7fSC3+2nArbiq3btV9UigUFX34mrdiuGuiPG2y1nAd6r6v7D5DONYrWQko1X1uPuhqrrFW1a4l73fuT1unuh38a4eqznD20/H4S6YWmS30Ny2IPwrLvmEWsjxN5TnZzYDryHUXUBrXNVdcsjgaplMNjOLsmYRhv0YoSzwz1g+s9g8rbzfX2YzHiKSBNyAO/NpjLvKk5BRMlufRLMMd3/1fhFpjmsoMgNYEvaPHK1FYQfjIBGpi0s45+DuvYQnur9w4q23m3u/p4cPUNUDIjIHV/XTgGNV+wC/RPhnj3Z/yW65m0VkBdBMRMqo6u4o5heN8bgW5X1x1Wv9cFeqmT1+0xB3Jv6dRq5O/Qa3Hs2B30PKd2pYg0ZVTReRzUS3bQLa4G6zDHS1khkUDYkxLkSkKnA/rtqvBm5bhKqGu9oLlelxLIJM9wHciWPoOCcqt/sp3uOTTXBVuw9E+C5SvN+B7yJwfJ0dPqKqrheRtbjbDJFklQeuwOWS5rhbDaEXfrk9bp7od5GbvBFVct2M27An4+5XBanqzcDN4Do54NhZQLgtkQpF5ErcmcBu4HPczhy4WroLV6cfSfg9skCcELlFYKQWwIEzrOQIw0KVAw5mcoUdbiQwEHcPaQLHGmmVB+4k8/VJKN7BsguukcHlwEXeoN9F5HFVHZ3DWWb2/dfDNWIog7tH/RHuXu5R3P2vZuRumwX2hc2ZDN8UNl7AcfuLt00g+/0l2uU288aLSXJV1b0i8gHQW0TG4A6Yd2UxScy2jSed6LZNQEXc8SezYwa4asnsbMLdfqiOa5yULRGpiNvvTsGdlE/GrddRXE1HJyLvdxH340xkun1VdZeIHCT3rZdzu5+CS2SCq/WI5rsI3GeOdAwGt40yS66ZHQcG42pPtuC+i/W4Bk94MeX2uHmi30Vu8kZUyfU73M7WmWNZPqcyu9r5By6ZttCQxyi8G+xDsphfCmGJHne/BNzZcCztBOqKSMWsEqyIVMHd7F4EtFPV/SHD2uCSq5+OcuyKIFxZwrabukY+t4jIrbgD9Xm4g/WrIrJVVT/KwbIz+/7vwp14XK2q74UO8LZZpFqInAisU5VMhsdrn/FruWNwra/fwt1jeieLcf2KMXT5+1X1lGzHzNpsXHI9hyiTK652qQauSjXD44MiMgp3vIskJ7U2ods3w0FdRMrhEka8tm1OBGKYpartoxg/cDKYksnwyllMe9z28x4XexB327GZhjxG5R1Ts0r40fLlu4jmnuubuAPzAO+ML5bqAMv1+OcTzwBKZjFdpJ0gULYoFoGF+N77fX4249XCnQF+HZpYPWfHOKYTsROo4nUIEiQiNXFnrxGp6lFVXayqz3Psfnb3kFEC92hyctUSUMf7/WlYTCWJfE8jp8sKVIl2DB8gIsVxVZMHOP5ELbeyWm5lXE3Q6hhWCQOgqjNxnSdUByZp2POeYX7GrXvbTO5rB2LPzf/TEQh2QhNuHlA9k3u6ORG4p/x37zvNVMh6ZrbfCdAul/EEZLoPcCx552WPWUeI8H/j7YMrgCaZ9fIVJrA/nBU+QESqA6fmMK5KuJP77yLsr5kdN7ParyLx5bvINrl6N6BH4LL+Z5nc6AdXfZpTa4F63gEHABEpi2sBl5U7vLOawDQVgcG4jf5eplOdmNG4k4snRCRD3b+IFAmJPdBzUjsJuXEhIvVx93b89gPuyjXY4EtEiuKap2cgIrUyaZgW2OahJw+Bq/nqJxBTYJsF/4m8bfcEkc+Ac7QsVV2Lu3d4poiEN465B3cvZ9wJNNDKzkzcVdRlIhJ+EHocd3/vrRgvM+BK3CMG92Q1knef9X3cNsjwyIuIXIM7uZnubcMTldX3NdL7/bp39ZCBtw+mZrcAVf0ad7+5EfBBpAsAEakmIv/hWEI4br/z3EXua0sC3sUdjwZ7jzwFYinNsUdI4rUPRLIdqJTJCchI3PH7ZREJv/eMiDQOHOe8++1zcMe5i8NGHUbO2/Fswau99E6qA8ushjsORJLTY44v30W0G2II7tL5VmCluE7hl+DOfKsAbXE790YgJ73kvIhLpAtE5ENvGRfiqgiOa50cYgGwyLvHFHjOtTrwqKr+koPlZ0tVF4rIEFwSWiEiE3DreTKuFdtzwAhV3SAiH+EObN+LyDRvnO645x17xjKuE/ASrrHLGyJyHu5Ktiuumie8wVAz4COvwc9S3D9ALdx90H3AKyHjTsMdyF8RkfHe8J8itCSM5BVcw5sJIvI+7h5HB29Z03G3IkLNwe1zd3onYX8Au1R1FJm7BZfs3vUaTazEJY4LcI9x3BtFnDmiqkdFpD/u/tFUbz9djztLboc70Xkmi1nkZtkLif4sfIgX01Micg7u/6o+bh/ehtt2uTEN1y3j+yLyOa6V9ExVnamqn4nIk7gTz1Ui8gXuMZgU3KNYbYGrOb5RUSR9cceyHkCaN69fvbLGuCrjJNyz6uC6SrwXeNFb73W41rVtcY33wpNGjqnqKhF5AHga+ElE/suxZytrAS9HaEkeT9Nw6zhRRGbhbhv8T1V/wj3NcBZwHdBZRKZy7Nnf03GNfdpx7J7pbbjnXD/y9u3Ac66puA4imkYblPe/8gruBO9HEfkf7n78X71lRHqaI9P9KpNl+PNdZPesjmZ8hqgN8Aau6mmvt1LrcTvkTXg99+jxzwv1zWR+gkvYy3BnL7/jkm0ZIj+zONabXx3gIdzB8SCuWmNghPkPI+zZ0KyGZRUvrlr4c471vJSG+ydtHDJOGdxV/m8c653pDtwXqHg9koSMf9w6ZrHtI8XbmSifcw1Zh/neNtuMO7k5blvjGno8hXvGbYu3LqtxtwhOizDf+3EHs8Oh60lID01ZrFdX3H2z3bgD+odAPTJ5fhZ3svKDt79oWNwRtyeugcVbZOwF7EWgcoRxI2677IZlMn5zXMO2bd5yV+HOxk+KMO50cvGc64mOi6sheNHbJoe8bfQWkZ8DzXR/jTQMV1PyPO7/Oj2TffVC3PHjD2/563G1DYOI0INWNut4Ee4q9ndvH9+LO9gPJ+Q5d2/cM3AdZ+zAndR9gXsyYBhR/p9FMxzXIHAmrqHePm/fvTEH6xRx3jndT3FVr6973+8RIhzncI+sTPO2yUFvn/gCd5JVOmzclrhGiHu98Sfg/t9/wp3who573DYNG14M99z5Ktyx5ldvmmKZrEum+1UsvguyzgOZDgv/CTxwni+IyFjc80i1NEL/xsYYY/zh3bPdgntkr7Xf8fitQL/P1RhjTGyJSFER+UtYWRKu2rUkrrvAQq/AvobKGGNMXJQD1onIl7g2DKVxT2s0wd2iy65BaqFgydUYY0xO7ME9AtUV11isOO7+5wjgMXXdChZ6+eqeqzHGGJMf2D1XY4wxJsYsuRpjjDExZsnVGGOMiTFLrsaEEBEVkbj0+SoifUTkBxHZJyLbROTDTLqZzGz6vl58Wf28HmG6i0Vkqojs8pa9QERuDO2mM2z8xiLyvohsFpGDIvKriDzpdReXXYxFRWRhPLejMfmBtRY2Jg/IsVcyrsG9BLoC7mXl54nI2eq6ocvOQo71hRquL+61YRneOywid+N6KNqB671oL9AN12d2E8Le1uT1hfw1rnecj3E9L7UB7sO9PP0cPf7FFKGGAnWjWBdjCjRrLWxMCBFR3Mvdc/si69B5NsT1xb0SaKPe23C8RPYt7o0gHXIx/wq4/qH3Aier9/Jz7y0lq3GPTjRX1d+98pK4BHoW0F5VZ4XMaymun/C/akj/0CIyHNf/64Oq+s9M4jgd173mPbhnHWO6HY3JT6xa2Jj464t73dc/NeQ1c6o6G/fas/Y5qR6O4Brcs4bvBhKr50LcFehrgcTqLXc/ru9ogJsD5SJSF5dY5+nxL14YhutT9aZI1cni3ss5FpdcX8zFuhhTIFhyNSb+Au+M/CrCsC+835HeNRmt/t7vN8LKA68ITIswTaCsczTjq+qfuKrlU3EvQgj3AC4x36CqR7OJ15gCz+65GpMN772ifXMwSZqqjg35XA/YrapbIowbeEXiCd2nFJFmuDe8/KiqP4YNDrx8umaESVO936eISClV3ZfV+N4r/ip4H+sT8mpJEWmKu9f6mKouP5H1MKagseRqTPZScY2RovUNroo0oCzH3oUZ7k/v93EvDI/SDd7v8KtWcFfKR4G/ichIVV0P4L0Qe0jIeOVwr+BaiWtw1UZEuqnq5yHjPIR7RSRA+UBhSHXwClzH7cYYLLkaky1Vnc6xxHLCs4lBKBmISDHcC8UPAu8ct0DV1SLyNO59u4tFZAIuiXbDvb1kJy5RHvHGVxG5DfdWk0ne+L/hWgu3xSXQhoHxPfcBzYC2qno41utoTH5l91yNib8/yfzKtKz3e9cJzLcH8BfgY1XdEWkEVX0A6IdrNXwt7n3Ii4EOuEZWR3D3UgPjf4a7D/sVcD5wK+44cS7HqrC3AohIfdwV7XBVnX8C8RtTYNmVqzHZiME911+AtiJSOcJ913re71UnEFqgIdNxHUeE8mIJjQcRORUog7tXezhs/Fm4lsaETTMWdwUeuLfbCNcaebCIDI6w6Gbeo02/qWpq1qtiTMFiydWY7KWSu3uu3+CqVc/j+OrbC7zf3+YkIBE5xZvfWmBKTqb1XO39fj/K5bUFagGfq+pOrziNzBP7DcB24COONZQyptCwTiSMCeFTJxJzVLV9yPhFgTrAYVX9NcIsEZEHgceAR1U108QvImW9x2hCy9rhenLaATQJHS4iJwF7NeTAICJVcAm8IdBOVb+PYp1jvh2NyU/sytWYOFPVFSLyOO7qd5HXUKg8cBWugdEtYZNUB5bjGhOlhs/P68ShL66Kdkw2i39eRJrjOnfYATQGLsbd470sPPHi7uM+LiJTgU3AyV5ZGeCmaBKrMcaSqzF5QlWHiUgacAeukdB+XAcSQ0/g2dCOuCvbqaqals24X+HujfYCSgMbgFeAJ1R1Q4Txf8JdZV+Iayy1A9dV4tOWWI2JnlULG2OMMTFmj+IYY4wxMWbJ1RhjjIkxS67GGGNMjFlyNcYYY2LMWguHqVSpkqampvodhjHG5Cs//PDDH6qa4nccicKSa5jU1FTmz7duUo0xJidE5De/Y0gkVi1sjDHGxJglV2OMMSbGLLkaY4wxMWbJ1RhjjImxhE2uIlJDRMaLyC4R+VNEJnjvoIxmWs3kx97QYYwxJu4SsrWwiJQCpgIHgT64t388DkwTkdNVdW8UsxkLvBpWtjKWcRpjjDGRJGRyBW4EagMNVHUVgIgsBn4BBgDDo5jHelWdE78QjTHGmMgSNbl2x71AelWgQFXXiMgs4FKiS64mQRw5coRffvmFhQsXsmjRIhYvXszOnTspU6YMZcuWzfC7UqVKtG7dmhYtWlCsWDG/QzfGmBOSqMm1MTAxQvlS4Ioo53GLiAwGjgBzgH+o6owYxWeysWzZMkaNGsW8efP46aef2L9/f46mL1myJG3atKFDhw60b9+edu3aUaZMmThFa4wxsZWoybUi7iXN4bYDFaKY/j/AJNyLoWsCg4GpInKeqk4PH1lEbgJuAjj11KjaTJlMLFiwgH/+859MmDAhV/PZv38/06dPZ/r06QAkSTL16pzHI4/35dJLL6VEiRIxiNYYY+IjIV+WLiKHgOdV9f6w8n8C96pqjk4KRKQMsAT4XVXbZzVuy5Yt1bo/zLnZs2fzz3/+k88++yzi8LInVePkqs05uUozdm9vRoli1Ug/sof0I7vdT/puDh/5k30HVvPHrpnsO7Am02WVL1+eq666in79+tGyZUtEJF6rZYyJkoj8oKot/Y4jUSTqlesO3NVruApEvqLNkqruFpH/ATfkNjCT0eLFi7nrrruYNm3accMuueQSBg4cyJlnnslbLx3rz3v29Oznu//gerbtmskfu2Zw4MhMNmxeFBy2c+dORo0axahRo2jUqBE333wzN9xwA6VKlYrBGhljTO4l6nOuS3H3XcM1Apad4DwF90iPiZFPPvmEdu3aZUisIsKVV17JwoUL+eSTT+jWrRspKTl/UUbJ4tU5pXIvmtd7kb/fvJAH7lzD+Z0foVatWhnGW7ZsGXfccQepqak8/fTT/Pnnn7leL2OMya1ETa6fAG1FpHagQERSgbO9YTkiImWBi4G5MYqvUFNVnn/+eXr06MG+ffsASE5O5vrrr2fZsmW8//77NGvWLKbLrFg+lfM7PcyqVauYPn06ffr0yXClunXrVu677z5SU1MZNmwY27dvj+nyjTEmJxI1uf4bSAMmisilItId13r4d0I6hhCRmiKSLiIPh5TdIyL/FpGrRaSziPQBZgFVgQfzdC0KoMOHD3PzzTdzzz33ELhfX6tWLRYtWsSbb75Jw4YN47r8pKQkOnXqxNixY9m0aRMjR46kRo0aweE7duzgkUceoWbNmtx3333s3LkzrvEYY0wkCZlcvR6YuuB6VHobeAdYA3RR1T0howqQTMb1+BlXffwC8BXumdg1QHt7FCd3du7cyYUXXsjo0aODZWeffTZz586lceNItfjxVaZMGW677TZWrVrFa6+9Rt26dYPD9uzZw9NPP03dunUZOXIkhw8fzvP4jDGFV0ImVwBVXauqPVW1rKqWUdUeqpoWNk6aqoqqDgsp+1RVz1bVSqpaVFX/oqrdVXVeXq9DQbJ69WratWvHlClTgmXXXHMNU6ZMOaF7qrFUrFgxbrjhBpYvX84777yTIdFv27aNO+64gyZNmjBx4kQSsXW8MabgSdjkahLH5s2b6dixIytWrAiWPfroo7z99tsUL17cx8gyKlKkCFdffTWLFy9m3LhxpKamBoetXLmSHj160KVLF3744Qf/gjTGFAqWXE2W0tPT6d27N+vXrwegePHivPfeezz00EMJ+3xpUlISvXr1Yvny5TzzzDOUK1cuOGz69Om0atWKAQMGWKMnY0zcWHI1WRo6dGiwlyQR4eOPP6Z3797+BhWlEiVKMHjwYFatWsVtt91GcnIy4Fo7jx49mgYNGjB27FirKjbGxJwlV5Opjz76iGeeeSb4+ZFHHqFbt24+RnRiKlWqxMiRI1m6dCkXX3xxsPyPP/6gX79+dOrUiaVLl/oYoTGmoLHkaiJauXIlffr0CX6+6KKLGDp0qI8R5V6DBg349NNP+eijjzI8vjNjxgyaN2/OkCFD2Ls3mlcFG2NM1iy5muPs3buXnj17snv3bgBSU1N5++23SUrK/7uLiNCjRw+WL1/OkCFDKFLE9QCanp7Os88+S5MmTfj66699jtIYk9/l/6OliSlVZcCAASxZsgRwDZg+/PBDKlaM1NVz/lW6dGmefvppfvzxRzp06BAsT0tL47zzzqN///7s2JHjbqyNMQaw5GrCjBo1infeeSf4+eWXX6ZFixY+RhRfTZo04ZtvvmHMmDFUqHDsbYZjxoyhUaNGuX51njGmcErUt+IYHyxbtoy77ror+PmGG26gf//+PkYUX88PC/wlQF/u6H8hH02+ncXL/gvApk2b6NmzJ01Pu5zLLnyRsmWqBacdNAxjjMmUJVcTNGTIkGA3gWeccQYvvviizxHF3+zpoZ+qUDflA0o1/piFvwzkwKGNAPy0fAIrfplGs7ojqVH5avd87zBLsMaYzFm1sAFgypQp/O9//wNco58xY8ZQokQJn6Pyx8mVenBuq2WkVv1bsOxw+g7mr7iWOUt7cODQJh+jM8bkB5ZcDUePHuWee+4Jfu7bt2/MXxmX3xQrUp4WDf5N+9O/plSJ1GD5xm2f8NX3jViw+B3rfMIYkylLrob//Oc/LFy4EICSJUvy2GOP+RxR4qhcoStdz1xMrZNvCZYdTt/Bux9dy+WXX86mTXYVa4w5niXXQm7//v0ZOoe45557qF69uo8RJZ6iRcpwRr2X3VVs8ZrB8o8//pjGjRvz/vvv+xidMSYRWXIt5EbmLpIwAAAgAElEQVSMGMG6desAqFy5MoMHD/Y5osRVuUJXurb8iVrVbg6Wbd++nd69e9OrVy/++OMPH6MzxiQSS66F2JYtW3jyySeDnx999FHKlCnjY0SJr2iRMpxRfxQ3XfcVp556arD8gw8+oEmTJnzyySc+RmeMSRSWXAuxRx55JNjF4WmnncYNN9zgc0T5R/3a5/LTTz9l2GabN2/m0ksvpW/fvuzcudPH6IwxfrPkWkitWLGCV199Nfj52WefDfaza6JTtmxZXnvtNSZNmkS1asc6mHjzzTdp2rQpX375pY/RGWP8ZMm1kLr33ns5cuQIAF26dOGiiy7yOaL86+KLL2bJkiVcffXVwbJ169ZxwQUXMHDgQPbs2eNjdMYYP1hyLYS+/fbb4L1BEeG5555zvQ6ZE1axYkXeeecdxo8fT6VKlYLlo0aNolmzZsyYMcPH6Iwxec2SayH0/PPPB/++7rrrOOOMM3yMpmDp2bMnS5cupUePHsGy1atX06lTJ+655x4OHDjgY3TGmLxiybWQSUtL49NPPw1+zu8vQE9ElStXZsKECbz11luUK1cOcK/ye/7552nRogXz58/3OUJjTLxZci1kXnnllWC3feeffz7169f3OaKCSUS47rrrWLJkCeeff36wfPny5bRt25aHHnqIQ4cO+RihMSaeLLkWIgcOHOC1114Lfr711lt9jKZwOOWUU/j888955ZVXKF26NABHjhzh8ccfp1WrVsFuJ40xBYsl10Lk/fffZ9u2bQDUrFmTiy++2OeICgcRYcCAASxevJhOnToFyxcvXkyrVq147LHHgq/6M8YUDJZcC5GXXnop+Pctt9xCcnKyj9EUPrVr12bq1KmMGDGCkiVLApCens7DDz9Mu3btWLJkic8RGmNixZJrITFv3jy+//57AIoXL269MfkkKSmJO++8k4ULF9KuXbtg+Q8//MCZZ57JE088QXp6uo8RGmNiwZJrIRF61dq7d+8Mz2KavFe/fn1mzJjBM888Q7FixQA4dOgQQ4cOpW3btnYVa0w+l7DJVURqiMh4EdklIn+KyAQROTX7KY+bz/0ioiIyMx5x5gdbt25l3Lhxwc/WkCkxJCcnM3jwYH788UdatWoVLLerWGPyv4TsTFZESgFTgYNAH0CBx4FpInK6qu6Ncj61gaHAlnjFmh+8/vrrwcc+WrduneFAbvLe88PCSxrx/7rNJqXs83wx/WGOHDkUvIod9eIEevUYS7XKTYJjDzpuemNMoknUK9cbgdpAD1X9WFUnAt2BmsCAHMxnFPAOsDz2IeYPR44cYdSoUcHPdtWamJKTitCl/b3cPeBHalRvHSxft/EHRrzagi+/eZT0I/ZcrDH5RaIm1+7AHFVdFShQ1TXALODSaGYgIlcDLYD74xJhPjFp0iTWrl0LQKVKlbjyyit9jshkpWpKI27rP4uLuj5FcrK7F3vk6GG+nP4P/jW6Jb9vsN6djMkPEjW5NgYitehYCjTKbmIRqQD8HzBEVbfHOLZ8JbQh09/+9jdKlCjhYzQmGoGr2L8PWEjNU9oGyzdu+YkXXmvDfffdx/79+32M0BiTnURNrhWBHRHKtwMVopj+WWAlMDaahYnITSIyX0Tmb926NeogE93PP//MV199BbhHQG6++WafIzI5USXlNG7tN5Pu5w+naBH3XKzqUZ5++mmaN2/OzJmFto2eMQkvUZMruEZM4bJ9L5qIdACuB27RQCe62S1IdbSqtlTVlikpKTkMM3G98sorwb8vueQSatas6WM05kQkJSXTsd3dDLrlJ+qknhMsX7lyJR06dGDgwIHs2rXLxwiNMZEkanLdgbt6DVeByFe0oV4FXgfWiUh5ESmPaxWd7H0uHttQE9ORI0cyPH4zcOBAH6MxuVWpYh0GXP81/++vr1KmTJlg+ahRo2jUqBETJ070MTpjTLiEfBQHd2+1cYTyRsCybKY9zfuJVAe6A7gbGJGr6PKBWbNmsWnTJsC9Aq1r164+R2RO1Ozpgb+SgJu484YL+fCzgSxfOQmADRs20KNHD5qe1pPLLhxJ2TLVgtPaYzvG+CNRr1w/Adp6z6kCICKpwNnesKycE+FnEa6B1DnA+NiHm3j++9//Bv++/PLLrR/hAqR8uRr07/0J1/Ycx0mlKwfLf1r+Ic+8dBpzfhjNUT3qY4TGmERNrv8G0oCJInKpiHQHJgK/46p9ARCRmiKSLiIPB8pUdXr4D7AT2OV9Xpena+KDo0eP8uGHHwY/X3HFFT5GY+JBRGjepBdDbl1O6+b9g+UHDu5i/KQBjBrbiU1blvoYoTGFW0ImV68Hpi64Fr9v4zqCWAN0UdU9IaMKkEyCrodfZs2axcaNGwFISUmhY8eOPkdk4qVUyYpceenrDLh+Cn+pUCdYvmbtTIa/2pz777+fffv2+RihMYVTwiYlVV2rqj1VtayqllHVHqqaFjZOmqqKqg7LZl6dVbV9PONNJOFVwkWKJOqtdRMr9Wp14Z5bfqJL+/tJSnLf99Gj6Tz11FM0btyYzz77zOcIjSlcEja5mhNjVcKFV9GiJbmo6xP8fcBCap167FwyLS2Niy++mCuuuIL169f7GKExhYcl1wJm9uzZbNiwAXDdHXbq1MnniExeq1q5Mbf0/YYrLnmNihWPPdE2fvx4GjZsyHPPPcfhw4d9jNCYgs+SawFjVcIGIEmSaNPiBlasWMH1118fLN+zZw+DBw+mefPmTJ8+3b8AjSngLLkWIEePHmX8+GNPGlmVsElJSeHNN99k2rRpNGp0rFvuZcuWcc4553DNNdcEG78ZY2LHkmsB8t1332WoEu7cubO/AZmE0blzZxYuXMizzz5L6dKlg+XvvvsuDRo0YPjw4VZVbEwMWXItQEKrhC+77DKrEjYZFC1alHvuuYcVK1bQq1evYPnu3bsZNGgQp59+Ol9++aWPERpTcFhyLSCsSthE65RTTmHcuHF8/fXXNGzYMFi+YsUKLrjgAnr06MHq1at9jNCY/M+SawExZ86c4GMWf/nLXzjnnHOymcIUdl27dmXRokU899xzGV4GMHHiRBo1asTQoUPZs2dPFnMwxmTGkmsBYVXC5kQUK1aMQYMGsXLlSvr27RssP3jwIE888QQNGjTgzTff5OhR66vYmJyw5FoAWJWwya2qVasyZswY5syZQ+vWrYPlGzZsoG/fvrRq1Ypvv/3WxwiNyV8suRYAc+fOZd069z6CihUrWpWwOWFt2rThu+++Y+zYsVStWjVYvmDBAjp16kTPnj359ddffYzQmPzBkmsBEF4lXLRoUR+jMfldUlISffr04ZdffuHBBx+kRIkSwWETJkzgtNNOY9CgQWzfvt3HKI1JbJZc8zlVZcKECcHPViVsYuWkk07iscce4+eff+aaa64Jlh8+fJjhw4dTp04dnnvuOQ4cOOBjlMYkJkuu+dzPP//Mb7/9BkDZsmXp0qWLzxGZgubUU0/lP//5D3PmzOGss84Klu/cuZPBgwfToEED3n77bWv0ZEwIS675XOhD/127drUqYRM3bdq0YebMmXzwwQfUrVs3WL527Vquv/56zjzzTOuEwhiPJdd8LvRgdv755/sYiSkMRIQrrriCpUuXMnLkSFJSUoLDFi5cyAUXXEDXrl2ZO3euj1Ea4z9LrvnYwYMHmTZtWvCzJVeTV4oVK8Ztt93GqlWrePDBBylZsmRw2NSpU2nbti2XXXYZS5cu9TFKY/xjyTUf++6779i3bx8AderUoXbt2j5HZAqbsmXL8thjj7Fq1SpuvPFGkpOTg8M+/vhjmjZtSp8+fUhLS/MvSGN8YMk1H7MqYZMoTj75ZEaPHs2yZcsyvBRAVXnrrbeoX78+t956a7CLTmMKOkuu+ZglV5No6tevz7hx41iwYAEXXnhhsPzw4cO8/PLL1KlThzvvvJNNmzb5GKUx8Wcd0OZTW7duZcGCBQAkJydbr0wmITw/LPDXGXRt/Rm1qszgsyn3k/b7LMC1E3jhhRcY9fK/OavVQM45+15OKu0aRQ0aFmmOxuRPduWaT02ZMgVVBaBt27aUK1fO54iMOV7tmh24td8Mbrz2C2pUP9Zn8eH0/Xzz3fM88a9aTPrqXnbv3eJjlMbEniXXfMqqhE1+ISI0qHM+d9wwh/5XTaJ6tRbBYYcO72X67Gd4YkQqgwYNYuPGjT5GakzsWHLNh1TVkqvJd0SERvUv5q4b59O310dUq3J6cNjh9P0MHz6cWrVqcccddwRfRGFMfmXJNR9avnx5sNVl+fLladmypc8RGRM9EaFJwx7cPeBH+lw5gZOrNg8OO3jwICNHjqROnTrcfPPNrF692sdIjTlxllzzofAuD+3F6CY/SpIkmp52GXfftIB+vT+hVatWwWGHDh3i1VdfpV69elx99dUsXrzYx0iNyTlLrvlQaHK94IILfIzEmNwTERo3uIS5c+cyefJk2rVrFxx29OhR3nvvPZo1a8Yll1zC7NmzfYzUmOjZJU8+c/DgQaZPnx78fN555/kXjDExMns6gADduPy8C2hWbzpTZz7JytVfBceZNGkSkyZNotapHTjn7CE0rHcRSZJkj/CYhJSwyVVEagD/B5yH+6/7GrhLVddmM11N4AWgOVAZ2AssAZ5W1clxDToPzJw5k/379wPugf3U1FR/AzImRmZPh9/TwP27n0M5zqFR1fls/PNJduz7CHCPnq1ZO4M1a2dQouhpVC0ziBlTr6VDl+KWZE1CSchqYREpBUwFGgJ9gOuAesA0ESmdzeQnAX8ADwIXATcAe4DPROTyuAWdR6yVsClMShdvSd2UD2ly8jIqle6LhFwPHDi8nLTtf+PzualMmfEkO3bs8DFSYzJKyOQK3AjUBnqo6seqOhHoDtQEBmQ1oaouVdUbVPVtVZ3mTdsDWAf0i3fg8WbJ1RRGJYs2pFalMTStvpqqZe8hScoEhx08tInJUx+gRo0a3H777fzyyy8+RmqMk6jJtTswR1VXBQpUdQ0wC7g0pzNT1XRgF3A4ZhH6YPPmzSxcuBCAIkWK0LlzZ38DMiaPFS9SgxoVnqXZKb9zSvlnKJpcPThs7969vPjiizRo0IDu3bszderUYC9mxuS1RE2ujXH3ScMtBRpFMwMRSRKRIiJSVUQeAuoDL8Uwxjz39ddfB/8+66yzKFOmTBZjG1NwFUkqR7Vygzm9+mrObPAm1So3DQ5TVT799FO6du1K8+bNGTNmDAcOHPAxWlMYJWpyrQhEuoGyHagQ5TyewV2pbgSGAL1VdUpswvOHVQkbk1GSFKNm1ev5+82L+Oqrr7j44oszDF+8eDH9+/enRo0aPPDAA6xdm2V7SGNiJlGTKwSaBmYkOZh+BNAKuASYDLwrIn+NNKKI3CQi80Vk/tatW3MeaR6wLg+NyZyIcO655zJp0iRWrFjBwIEDKVWqVHD4H3/8wZNPPkmtWrXo2bMn06ZNsypjE1eJmlx34K5ew1Ug8hXtcVR1narOV9VJqnolMAd4LpNxR6tqS1VtmZKScsJBx9Py5cuD78CsWLEiLVq0yGYKYwqnBg0a8NJLL/H777/z1FNPUaNGjeCwo0ePMmHCBLp06ULTpk0ZNWoUf/75p4/RmoIqUZPrUtx913CNgGUnOM/5QN0TjshnM2fODP7dsWNHkpOTfYzGmMRXsWJF7r33XlavXs1HH31Ely5dMgxfunQpAwcOpHr16tx8880sWrTIp0hNQZSoyfUToK2I1A4UiEgqcLY3LEdEJAloD/wao/jyXGhybd++vY+RGJO/FClShB49ejBlypRgQi1d+tjj8nv27OHVV1+lefPmnHXWWbz11lvBjlqMOVGJmlz/DaQBE0XkUhHpDkwEfgdeDYwkIjVFJF1EHg4pGyYiL4hILxHpJCK9gM+B1sA/8nQtYsiSqzG516hRI1566SXWr1/PyJEjadQo48MH3333HX369KF69erceeedLFkS6aEFY7IXt+TqPQLTQkTOFpEGIlIs2mlVdS/QBVgJvA28A6wBuqjqntDFAMlkXI8FQBNgJPAlrtXwAaCDqo7LzTr5Zf369axZswaAkiVLcsYZZ/gckTH5W7ly5bjttttYsmQJ33zzDb1796Zo0aLB4Tt27OCFF16gadOmtGvXjtdff509e/ZkMUdjMopp38Ii0hL4G9ANqBE2+JCIfA+8B7yjqlm2IvD6EO6ZzThphLUgVtVPOIGq40Q2a9as4N9t2rShWLGoz1OMMVkQETp27EjHjh3ZsmULb7zxBqNHjw6ezALMmTOHOXPmcPfdd3PVVVfRr18/2rRpg0hOHl4whU1MrlxFpKWITAfmAe2AT3FdGPYALgCuAobh+vx9CvhdRIaKSIlYLL+gsyphY+KvcuXK3HfffaxatYqvvvqKK6+8MsPV7O7duxk9ejTt2rWjcePGPPvss8EW/MaEi1W18DfAQqCxqjZT1dtV9Q1V/VRVv1bVD1T1aVW9HKgC3ARcDgyO0fILtNArV0uuxsRXUlIS5557Lu+//z7r16/nueeeo0GDBhnGWb58OUOGDOGUU07hkksuYcKECRw6dMiniE0iilVyraOqd6nq8uxGVNUDqvq+qp4JjI7R8gus3bt3B/sTTkpKyvAiaWNMfKWkpDBo0CCWL1/OjBkz6N+/f4aWxkeOHGHSpEn07NmTatWqceuttzJ37lzroMLEJrmq6gnVjajq5lgsvyCbM2cOR48eBeD000+nbNmyPkdkTOEjIrRv357XX3+dTZs2MWbMGDp27JhhnO3bt/Pyyy/Ttm1bGjZsyOOPP05aWpo/ARvfxby1sIhcmM1wqwrOAbvfakxiOemkk+jbty/ffPMNv/zyC0OHDuXUU0/NMM7KlSt56KGHqFWrFh07duSVV15h27ZtPkVs/BCPR3H+JyL/F/7ojfdoztfAE3FYZoFlydWYxFW3bl0ef/xx1qxZw7Rp0+jXr99xb6uaMWMGt9xyC1WrVuWSSy5h3Lhx7Nu3z6eITV6JR3K9GddSeI6INAAQkUuAxbjXvnWNwzILpMOHDzNnzpzg57PPPtvHaIwxmUlKSqJz58688cYbbNq0iXfffZdu3bqRlHTsEJuens6kSZO46qqrqFy5Mtdeey2ffvopBw8e9DFyEy8xT66qOhr3Nppk4AcRmQB8DHwLNFPVb2O9zIJq4cKFwTPc1NRUTjnlFJ8jMsZkp1SpUlx11VVMnjyZDRs28MILL9CmTZsM4+zdu5d33nmH7t27U6VKFfr3788XX3zB4cOHfYraxFpcemjyWg33wyXYHrhO83uralRvtDGOVQkbk79VqVKF22+/nTlz5rBq1Soee+wxGjZsmGGcXbt2MWbMGLp160a1atUYMGAAX3/9Nenp6T5FbWIhLslVRG7CXamuAB7AdUf4nYjk27fS+CE0uVqVsDH5W506dXjwwQdZtmwZP/74I/fddx+pqakZxtm2bRujR4/mvPPOo2rVqtx44412RZtPxaO18IfAK8BrQBtVfQrXaX5x4EcR6RfrZRZEqmpXrsYUQCJC8+bNefLJJ1m9ejVz587l73//O9WrV88w3rZt23jttdfo1q0bVapUoV+/fnz66accOHDAp8hNTsTjyrU98FevU4lDAKq6FHcfdiwu6ZpsrFq1ii1btgBQvnz5497eYYzJ/0SE1q1b8/zzz7N27VpmzJjBnXfeeVyi3bFjB2PHjqV79+6kpKRw5ZVX8t5779mL3hNYPJJrM1X9LLxQVQ+q6u1A9zgss8AJrxIObXVojCl4kpKSaN++PSNGjGDt2rXMnj2bu+++mxo1Mr4DZc+ePfz3v//l6quvJiUlhYsuuojRo0ezceNGnyI3kcSjtXCWvTWp6v9ivcyCyKqEjSm8Al2dDh8+nN9++405c+Zw7733Uq9evQzjHTp0iMmTJzNgwABOPvlk2rRpwxNPPMGSJUusC0afxeqtOJedwDTVRKRtLJZfEFlyNcaAqzpu06YNTz31FD///DNLlizh0Ucfjfhe53nz5jF06FCaNm1KvXr1uPvuu5kyZYq9VMAHsbpyfUlEFonIzSJSMasRRaSDiIwGVgGnx2j5BcqWLVtYuXIlAMWKFaNly5Y+R2SMSQQiQuPGjXnooYdYsGABq1evZsSIEZxzzjkkJydnGPfXX39lxIgRnHvuuVSqVIkrrriCN998M9iWw8RXrF6WXg8YBDwKjBSR5cAiYCtwEKgA1AZaAuVwj+mcp6qzY7T8AiX0FXOtWrWiRAl77a0x5ni1atXizjvv5M4772T79u1MnjyZiRMnMnnyZPbs2RMcb/fu3YwfP57x48cHG1FdeOGFXHTRRZx55pnWpiMOYvVWnL2q+ihQHbgG12nEmUB/4G7gElyHEv/CvfP1HEusmbMqYWNMTlWsWJFrrrmGDz74gD/++IPPP/+c22+/nVq1amUYT1WZO3cuw4YNo3Xr1lStWpXrr7+ecePGsX37dp+iL3hidc91u4i0UNXDQDfgMVVtpKrlVbWEqlZX1a6q+oiqrojFMgsyS67GmNwoXrw4F1xwAS+88AK//vorS5cu5emnn6ZDhw7HXaVu3bqVt99+m6uuuoqUlBTuv/9+n6IuWGJVF1Aa10kEQF8gJUbzLXT27t3LggULgp/POussH6MxxuR3IkKjRo0YMmQI3377LVu3bmXcuHH06dOHypUrZxj36NGj1K5d26dIC5ZY3XP9DbhRRAIJ9gwRyfRGoXXen7l58+YF+xRt3LgxFStm2T7MGGNypGLFivTq1YtevXpx9OhRFixYwOTJk/nss8+YN28eF16Y5Su5TZRilVyfAl4F+gAKvJzJeOINT85keKE3d+7c4N921WqMiaekpCRatmxJy5Yteeihh9ixYwcVKlTwO6wCISbJVVXfEJHJuPe1TgPuAJbHYt6Fzffffx/8u3Xr1j5GYowpbCyxxk6srlxR1Y3ARhF5E/ifqq6J1bwLk3nz5gX/btWqlY+RGGOMOVExS64BqmpvvTlBmzZtYt26dQCULFmSxo0b+xyRMcaYE2FPDieQ0CrhFi1aUKRIzM99jDHG5AFLrgnEqoSNMaZgsOSaQKwxkzHGFAyWXBOEqmZIrnblaowx+VfCJlcRqSEi40Vkl4j8KSITROTUKKZrKSKjRWSFiOwTkbUi8o6I1MpuWj+tWbMm2K9nhQoVqFOnjs8RGWOMOVEJmVxFpBQwFWiI65jiOtybd6aJSOlsJu8NNAZeAC4E7gNaAPNFpEbcgs6l8PutIuJjNMYYY3IjUZuj3oh7RV0DVV0FICKLgV+AAcDwLKZ9WlW3hhaIyCxgjTffh+MScS5ZlbAxxhQcCXnlCnQH5gQSK4DXKcUs4NKsJgxPrF7Zb7h3y1aPcZwxY8nVGGMKjkRNro2BJRHKlwKNcjozETkNqEyCdsmYnp7ODz/8EPxsLYWNMSZ/S9TkWhHYEaF8O5Cjzi9FpAjwCu7K9fVMxrlJROaLyPytW4+78I275cuXs2/fPgCqV69OtWrV8jwGY4wxsZOoyRXc23PCnUgrnxeBs4BrVTVSwkZVR6tqS1VtmZKS96+itSphY4wpWBK1QdMO3NVruApEvqKNSESeBG4C+qjqlzGKLeZCWwpblbAxxuR/iZpcl+Luu4ZrBCyLZgYiMhT3GM4dqvp2DGOLObtyNcaYgiVRq4U/AdqKSO1AgYikAmd7w7IkIncAjwNDVXVknGKMiQMHDrB48eLg55YtW/oYjTHGmFhI1OT6byANmCgil4pId2Ai8DvwamAkEakpIuki8nBIWW9gBPA5MFVE2ob85LilcbwtXLiQ9PR0AOrXr0/58uV9jsgYY0xuJWS1sKruFZEuwP8Bb+MaMk0B7lLVPSGjCpBMxpOEbl55N+8n1DdA5ziFfUKsStgYYwqehEyuAKq6FuiZzThphLUgVtW+QN94xRVrllyNMabgSdRq4ULDkqsxxhQ8llx9tGvXLlasWAFAcnIyZ5xxhs8RGWOMiQVLrj4K7fKwadOmlCxZ0sdojDHGxIolVx9ZlbAxxhRMllx9ZD0zGWNMwWTJ1Ud25WqMMQWTJVefbNq0id9//x2AkiVL0rhxpN4ejTHG5EeWXH0SetXaokULihRJ2EeOjTHG5JAlV59YlbAxxhRcllx9smDBguDf1lm/McYULJZcffLjjz8G/7bOI4wxpmCx5OqDzZs3s2HDBsA1ZmrQoIHPERljjIklS64+CL1qbdasGcnJyT5GY4wxJtYsufrAqoSNMaZgs+TqA0uuxhhTsFly9UFocm3RooWPkRhjjIkHS655bNeuXaxatQqAIkWK0KRJE58jMsYYE2uWXPPYokWLgn83atSI4sWL+xiNMcaYeLDkmsfsfqsxxhR8llzzmN1vNcaYgs+Sax4L7fbQrlyNMaZgsuSahw4cOMCyZcuCn5s1a+ZjNMYYY+LFkmseWrJkCUeOHAGgbt26lC1b1ueIjDHGxIMl1zxk91uNMaZwsOSah+x+qzHGFA6WXPOQPYZjjDGFgyXXPHLkyBEWL14c/GzJ1RhjCi5Lrnnk559/Zv/+/QBUr16dypUr+xyRMcaYeEnY5CoiNURkvIjsEpE/RWSCiJwa5bRPiMiXIrJNRFRE+sY53GzZ/VZjjCk8EjK5ikgpYCrQEOgDXAfUA6aJSOkoZnE7UBKYFLcgc8jutxpjTOFRxO8AMnEjUBtooKqrAERkMfALMAAYns305VT1qIjUBa6Pa6RRsuRqjDGFR0JeuQLdgTmBxAqgqmuAWcCl2U2sqkfjGFuOqaolV2OMKUQSNbk2BpZEKF8KNMrjWHItLS2NnTt3AlChQgVq1qzpc0TGGGPiKVGTa0VgR4Ty7UCFWC9MRG4SkfkiMn/r1q2xnv1xV60iEvNlGGOMSRyJmlwBNEJZXLKSqo5W1Zaq2jIlJSXm87cqYWOMKVwSNbnuwF29hqtA5CvahGbJ1RhjCpdETa5LcSCjKrwAAAlxSURBVPddwzUClkUoT2ihz7hah/3GGFPwJWpy/QRoKyK1AwUikgqc7Q3LNzZv3szGjRsBKFWqFPXr1/c5ImOMMfGWqMn130AaMFFELhWR7sBE4Hfg1cBIIlJTRNJF5OHQiUWkk4j8P6CbV9RSRP6fV5anQquETz/9dJKTk/M6BGOMMXksITuRUNW9ItIF+D/gbVxDpinAXaq6J2RUAZI5/iThEaBTyOdbvZ/ANHnG7rcaY0zhk5DJFUBV1wI9sxknjQjJUlU7xyeqnLP7rcYYU/gkarVwgbFw4cLg382bN/cxEmOMMXnFkmsc7dmzh19//RWA5ORkmjRp4nNExhhj8oIl1zj66aefUHV9YTRs2JASJUr4HJExxpi8YMk1jkKrhJs1a+ZjJMYYY/KSJdc4WrRoUfBvS67GGFN4WHKNo9Dkao2ZjDGm8LDkGidHjhxh8eLFwc925WqMMYWHJdc4+fXXX9m3bx8AVapUoUqVKj5HZIwxJq9Yco0Tu99qjDGFlyXXOLHOI4wxpvCy5BonduVqjDGFlyXXOLHkaowxhZcl1zjYtm0b69atA6B48eI0aNDA54iMMcbkJUuucRB61dqkSROKFEnYlw8ZY4yJA0uucWBVwsYYU7hZco0DaylsjDGFmyXXOLArV2OMKdwsucbYoUOHWLZsWfDz6aef7mM0xhhj/GDJNcZWrFjB4cOHAUhNTaV8+fI+R2SMMSavWXKNMXuHqzHGGEuuMWb3W40xxlhyjTF7h6sxxhhLrjGkqlYtbIwxxpJrLG3YsIFt27YBUKZMGVJTU/0NyBhjjC8sucZQ+P3WpCTbvMYYUxjZ0T+GrErYGGMMWHKNKWspbIwxBiy5xpS1FDbGGAOWXGNm7969rFy5EoCkpCSaNGnic0TGGGP8krDJVURqiMh4EdklIn+KyAQROTXKaUuIyLMislFE9ovIdyLSMZ7xLlmyBFUFoH79+pQsWTKeizPGGJPAEjK5ikgpYCrQEOgDXAfUA6aJSOkoZvE6cCPwMPBXYCPwhYjEra7WqoSNMcYEFPE7gEzcCNQGGqjqKgARWQz8AgwAhmc2oYg0A64G+qvqGK/sG2Ap8CjQPR4BW0thY4wxAQl55YpLgHMCiRVAVdcAs4BLo5j2MPB+yLTpwDjgAhEpHvtwraWwMcaYYxI1uTYGlkQoXwo0imLaNaq6L8K0xYC6uQ8vo6NHj7J48eLgZ0uuxhhTuEmgEU4iEZFDwHBVvS+s/HHgPlXNtDpbRL4Eyqpq27Dyc4GvgI6qOiNs2E3ATd7HBsDPuQi/EvBHLqYvbGx75Yxtr5yx7ZUzudleNVU1JZbB5GeJes8VIFLWlyimk5xOq6qjgdFRxpX1wkXmq2rLWMyrMLDtlTO2vXLGtlfO2PaKnUStFt4BVIxQXsEblpXtWUwbGG6MMcbETaIm16W4e6fhGgHLopi2lvc4T/i0h4BVx09ijDHGxE6iJtdPgLYiUjtQICKpwNnesOymLQpcETJtEaAX8KWqHox1sGFiUr38/9u7uxCrqjCM4/8HyTFMCC9SsEjMulOJQiICdWRGCaobCQwKAi/KgpIKrbwo0yTJDLqQrkLMjEAiSArKaOpGrSSLyCTJyAvJsuhLsvTtYu2hUed7b2at7Tw/OJwzZ87Aczbseffae6/1jiPeXiPj7TUy3l4j4+3VkFJvaJoMHAROAWtJ11CfAaYAcyPij+pzVwNHgHURsa7P378OLAEeA74D7ictJnFzRBwYw69iZmbjUJEj14j4E+gEDgPbgR2kItnZW1grAiZw4fe4F3gFWA/sBq4ClrqwmpnZWChy5GpmZtZmRY5c26ROg4HxSNKVkl6qmin8JSmq6+nWD0nLJO2S9H3VhOIbSRslTcmdrUSSlkj6QNJxSX9LOibpDUlDLT5jFUnvVvvl+txZ2szFtYYGGgyMR7OBO0lTqj4e4rMGjwJngCeApcBW0j0E70ny/nuhqcBnwINAN/A4aebB3uoeDRuEpOWAl5hrQMmLSLTBqBsMjGMfRcQ0AEkrSP8AbWC3RcSJPj/3SDoJbAMWkg7urBIRO4Gdfd+TtB84BCwDNufI1QaSLge2AKuA1zLHaT0f+dZTp8HAuBQRZ3NnaJPzCmuvT6rnGWOZpcV+rp7/yZqifJuAr6oDFKvJxbWeOg0GzEZrQfX8ddYUBZM0QdJESdcCLwPHSZ2xrB+SbgHuAVbmznKx8GnheqbS/3KMJ/l/uUWzxkiaQepL/H5EfJo7T8H2ATdUr78lTeP7MWOeYkm6hHQA8nxE1GlaYn145FrfaBsMmI2IpMuAt4B/SXO5bWB3AzcBdwG/kW4Am5kzUMFWA5cCG3IHuZh45FpPnQYDZsMmaRJpac9ZwIKIOJY5UtEioveU+T5J7wBHgTXAfdlCFaiaNvgksALokNTR59cd1U1Ov0fEmSwBW8wj13rqNBgwG5bqtN0uYD5wa0R8mTlSq0TEr6RTw7NzZynQLGAS8CppQND7gDQN7BdgTp5o7ebiWk+dBgNmQ6rmsu4AFgN3RMTezJFaR9I00lz0I7mzFOhzYFE/D0gFdxHuJDYqXv6whuE2GLBzSVpWvVxMOk23EjgBnIiInmzBCiRpK2kbbQDePu/Xx3x6+FyS3gQOAF+QrrVeR5q3OR2YHxGHM8ZrDUkBbIiItbmztJWLa03VNYstQBfpRqY9wMMRcTRnrpJVO25/eiJi4VhmKZ2ko8BAKws9HRFPjV2a8klaTVoB7BpgIvAD8CGw0fvk8Lm41ufiamZm1jBfczUzM2uYi6uZmVnDXFzNzMwa5uJqZmbWMBdXMzOzhrm4mpmZNczF1czMrGEurmZmZg1zcTUzM2uYi6tZoSRNlnRI0v6qM07v+92Szkp6IGc+MxuYlz80K5ik64G9wJaIWCPpCtKi9Psj4va86cxsIC6uZoWTtArYDHSTemzOAeZFxE9Zg5nZgFxczQonScBuoJPU6aUrIvbkTWVmg/E1V7PCRToC3g50AAddWM3K5+JqVjhJ04EXSU3A50l6KHMkMxuCi6tZwapTwtuA00AXqcg+J2lu1mBmNihfczUrmKRHgE1AZ0T0SJpIunu4A7gxIk5lDWhm/fLI1axQ1TScZ4GNEdEDEBGngeXATOCFfOnMbDAeuZqZmTXMI1czM7OGubiamZk1zMXVzMysYS6uZmZmDXNxNTMza5iLq5mZWcNcXM3MzBrm4mpmZtaw/wBrYfkK4xqthwAAAABJRU5ErkJggg== | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [49]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">montecarlo_integrate</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">N</span><span class="p">):</span> | |
<span class="sd">'''Estimate the integral of a function f(x) from a->b with N </span> | |
<span class="sd"> randomly chosen points</span> | |
<span class="sd"> Arguments</span> | |
<span class="sd"> ---------</span> | |
<span class="sd"> f: a function of the form f=lambda x: ...</span> | |
<span class="sd"> a: the lower bound of the integration</span> | |
<span class="sd"> b: the upper bound of the integration</span> | |
<span class="sd"> N: number of random points to produce between xi=a-b</span> | |
<span class="sd"> </span> | |
<span class="sd"> Returns</span> | |
<span class="sd"> -------</span> | |
<span class="sd"> our_I: the best prediction of the integral using N points </span> | |
<span class="sd"> '''</span> | |
<span class="n">ri</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> | |
<span class="n">xi</span><span class="o">=</span><span class="n">a</span><span class="o">+</span><span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="n">a</span><span class="p">)</span><span class="o">*</span><span class="n">ri</span> <span class="c1"># scaling equation for our uniform distribution 0..1 to 1..3</span> | |
<span class="c1"># we scaled our variable by a factor of 2 so we scale the bins accorcdingly</span> | |
<span class="n">bin_scale</span> <span class="o">=</span> <span class="n">b</span><span class="o">-</span><span class="n">a</span> | |
<span class="n">our_I</span><span class="o">=</span><span class="nb">sum</span><span class="p">(</span><span class="n">f</span><span class="p">(</span><span class="n">xi</span><span class="p">))</span><span class="o">/</span><span class="n">n</span><span class="o">*</span><span class="n">bin_scale</span> | |
<span class="k">return</span> <span class="n">our_I</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>In the above function, we have defined a general Monte Carlo integration function. Now, we can create a for loop to try the function multiple times and get an average and standard deviation.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [50]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">test_I</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">):</span> | |
<span class="n">test_I</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">montecarlo_integrate</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">500</span><span class="p">);</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'mean value is I = </span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">test_I</span><span class="p">)))</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'standard deviation is </span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">test_I</span><span class="p">)))</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'actual I = 0.80471895621705'</span><span class="p">)</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'error in mean = </span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="mf">0.80471895621705</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">test_I</span><span class="p">)))</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>mean value is I = 0.8085180621282021 | |
standard deviation is 0.03561018791056599 | |
actual I = 0.80471895621705 | |
error in mean = -0.0037991059111520675 | |
</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h3 id="Example-3:-Determine-uncertainty-in-failure-load-based-on-geometry-uncertainty">Example 3: Determine uncertainty in failure load based on geometry uncertainty<a class="anchor-link" href="#Example-3:-Determine-uncertainty-in-failure-load-based-on-geometry-uncertainty">¶</a></h3><p>In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 10 %. What is the range of tensile loads that can be safely applied to the beam?</p> | |
<p>$\sigma_{UTS}=\frac{F_{fail}}{wh}$</p> | |
<p>$F_{fail}=\sigma_{UTS}wh$</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [51]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">N</span><span class="o">=</span><span class="mi">10000</span><span class="p">;</span> | |
<span class="n">r</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> | |
<span class="n">wmean</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="c1"># in mm</span> | |
<span class="n">wmin</span><span class="o">=</span><span class="n">wmean</span><span class="o">-</span><span class="n">wmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> | |
<span class="n">wmax</span><span class="o">=</span><span class="n">wmean</span><span class="o">+</span><span class="n">wmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> | |
<span class="n">hmean</span><span class="o">=</span><span class="mi">2</span><span class="p">;</span> <span class="c1"># in mm</span> | |
<span class="n">hmin</span><span class="o">=</span><span class="n">hmean</span><span class="o">-</span><span class="n">hmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> | |
<span class="n">hmax</span><span class="o">=</span><span class="n">hmean</span><span class="o">+</span><span class="n">hmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> | |
<span class="n">wrand</span><span class="o">=</span><span class="n">wmin</span><span class="o">+</span><span class="p">(</span><span class="n">wmax</span><span class="o">-</span><span class="n">wmin</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">;</span> | |
<span class="n">hrand</span><span class="o">=</span><span class="n">hmin</span><span class="o">+</span><span class="p">(</span><span class="n">hmax</span><span class="o">-</span><span class="n">hmin</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">;</span> | |
<span class="n">uts</span><span class="o">=</span><span class="mi">940</span><span class="p">;</span> <span class="c1"># in N/mm^2=MPa</span> | |
<span class="n">Ffail</span><span class="o">=</span><span class="n">uts</span><span class="o">*</span><span class="n">wrand</span><span class="o">*</span><span class="n">hrand</span><span class="o">*</span><span class="mf">1e-3</span><span class="p">;</span> <span class="c1"># force in kN</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">Ffail</span><span class="p">,</span><span class="n">bins</span><span class="o">=</span><span class="mi">20</span><span class="p">,)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'failure load (kN)'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'relative counts'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Failure load is </span><span class="si">{:.2f}</span><span class="s1">+/- </span><span class="si">{:.2f}</span><span class="s1"> kN'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">Ffail</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">Ffail</span><span class="p">)));</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.</p> | |
<p>So instead, we should generate normally distributed dimensions.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [52]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">N</span><span class="o">=</span><span class="mi">10000</span><span class="p">;</span> | |
<span class="n">wmean</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="c1"># in mm</span> | |
<span class="n">wstd</span><span class="o">=</span><span class="n">wmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> <span class="c1"># standard deviation in mm</span> | |
<span class="n">hmean</span><span class="o">=</span><span class="mi">2</span><span class="p">;</span> <span class="c1"># in mm</span> | |
<span class="n">hstd</span><span class="o">=</span><span class="n">hmean</span><span class="o">*</span><span class="mf">0.1</span><span class="p">;</span> <span class="c1"># standard deviation in mm</span> | |
<span class="n">wrand</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">wmean</span><span class="p">,</span><span class="n">wstd</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="n">N</span><span class="p">);</span> | |
<span class="n">hrand</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">hmean</span><span class="p">,</span><span class="n">hstd</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="n">N</span><span class="p">);</span> | |
<span class="n">uts</span><span class="o">=</span><span class="mi">940</span><span class="p">;</span> <span class="c1"># in N/mm^2=MPa</span> | |
<span class="n">Ffail</span><span class="o">=</span><span class="n">uts</span><span class="o">*</span><span class="n">wrand</span><span class="o">*</span><span class="n">hrand</span><span class="o">*</span><span class="mf">1e-3</span><span class="p">;</span> <span class="c1"># force in kN</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">Ffail</span><span class="p">,</span><span class="n">bins</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span> | |
<span class="c1">#plt.xlabel('failure load (kN)')</span> | |
<span class="c1">#plt.ylabel('relative counts')</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Failure load is </span><span class="si">{:.2f}</span><span class="s1">+/- </span><span class="si">{:.2f}</span><span class="s1"> kN'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">Ffail</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">Ffail</span><span class="p">)));</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\approx 1.9 \pm 0.25$ kN.</p> | |
<p>The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed.</p> | |
<p>For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN.</p> | |
<p>For the normally distributed case, there are approximately 1500 parts out of 10,000 that will fail at 1.9 kN.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="Where-does-a-normal-distribution-come-from?">Where does a normal distribution come from?<a class="anchor-link" href="#Where-does-a-normal-distribution-come-from?">¶</a></h2><p>"Everybody believes in the exponential law of errors: the experimenters, because they think it can be proved by mathematics; and the mathematicians, because they believe it has been established by observation" [5].</p> | |
<p>In the previous example, we drew dimensions from uniformly random distributions and normally distributed random distributions. Why do we use the "normal" distribution to describe data with a mean and standard deviation? There are exact statistical methods to derive the normal distribution, but let's take a look at a Monte Carlo approach.</p> | |
<p>Let's say there are 10 different independent factors that could change the dimensions of the steel bar in question e.g. which tool was used, how old the blade is, the humidity, the temperature, and the list goes on.</p> | |
<p>Let's consider one dimension. | |
Each of these factors could change the dimensions of the part, let's use a uniform scale of -1/2-1/2. | |
If the effect is 0, the dimension is exactly as specified. If the effect is -1/2, the dimension is much smaller. Conversely, if the effect is 1/2 the dimension is much larger. Now, we use a Monte Carlo model to generate 10 effects on 10,000 parts as shown in the next block.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [53]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>Now, we have created 10,000 parts with 10 uniformly random effects between -1/2-1/2.</p> | |
<p>We sum the effects and look at the final part distribution. The x-axis is labeled "A.U." for arbitrary units, we are just assuming an effect of -1/2-1/2 for each of the 10 factors.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [54]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'effect A.U.'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'number of parts'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[54]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0,0.5,'number of parts')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<p>Now, depending upon which random numbers were generated, you should see what looks like a normal distribution.</p> | |
<p>Normal distributions come from the assumption that we have a large (or infinite) number of uncontrollable factors that can change our desired result. In our case, ideally each factor would have an effect of 0, because then it is exactly as specified, but the reality is that we can't control most factors. As engineers, we always have to consider the uncertainty in our models and measurements.</p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h2 id="We-learned:">We learned:<a class="anchor-link" href="#We-learned:">¶</a></h2><ul> | |
<li>How to generate "random" numbers in Python$^+$</li> | |
<li>The definition of a Monte Carlo model</li> | |
<li>How to calculate $\pi$ with Monte Carlo</li> | |
<li>How to take the integral of a function with Monte Carlo</li> | |
<li>How to propagate uncertainty in a model with Monte Carlo</li> | |
<li><strong>Bonus</strong>: use Sympy to do calculus and algebra for us! <em>no need for Wolfram, sorry Stephen</em></li> | |
<li>How to generate a normal distribution using uniformly random numbers</li> | |
</ul> | |
<p>$^+$ Remember, the computer only generates pseudo-random numbers. For further information <strong>and</strong> truly random numbers check <a href="https://www.random.org/randomness/">www.random.org</a></p> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="References">References<a class="anchor-link" href="#References">¶</a></h1><ol> | |
<li><p><a href="https://onlinelibrary.wiley.com/doi/full/10.1002/wics.1314">Why the Monte Carlo method is so important today | |
Dirk P. Kroese, Tim Brereton <em>et al.</em> Wiley Interdisciplinary Reviews: Computational Statistics, 6, 6, 11 2014</a></p> | |
</li> | |
<li><p><a href="https://en.wikipedia.org/wiki/Monte_Carlo_integration">Wikipedia: Monte Carlo integration</a></p> | |
</li> | |
<li><p><a href="https://arxiv.org/abs/hep-ph/0006269">Weinzierl, S. (2000). "Introduction to Monte Carlo methods"</a></p> | |
</li> | |
<li><p>Meurer A, <em>et al.</em> (2017) SymPy: symbolic computing in Python. PeerJ Computer Science 3:e103 <a href="https://doi.org/10.7717/peerj-cs.103">https://doi.org/10.7717/peerj-cs.103</a></p> | |
</li> | |
<li><p>Whittaker, E. T. and Robinson, G. "Normal Frequency Distribution." Ch. 8 in The Calculus of Observations: A Treatise on Numerical Mathematics, 4th ed. New York: Dover, p. 179, 1967.</p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<h1 id="Problems">Problems<a class="anchor-link" href="#Problems">¶</a></h1><ol> | |
<li><p>Calculate the area of a unit circle using the Monte Carlo integration method that we devloped in Example 2. Calculate the area of a quarter of the circle, then multiply the final result by 4.</p> | |
<p><em>Hint: You have to create a function that describes the perimeter of the circle.</em></p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [68]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">fcircle</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> | |
<span class="n">I</span> <span class="o">=</span> <span class="n">montecarlo_integrate</span><span class="p">(</span><span class="n">fcircle</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">10000</span><span class="p">)</span><span class="o">*</span><span class="mi">4</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'area of the unit circle is ~ </span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">I</span><span class="p">))</span> | |
<span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">fcircle</span><span class="p">(</span><span class="n">x</span><span class="p">))</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Quarter-circle function plotted</span><span class="se">\n</span><span class="s1">4*Area =</span><span class="si">{}</span><span class="s1"> with N=</span><span class="si">{}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="mi">10000</span><span class="p">))</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'x'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'f(x)'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>area of the unit circle is ~ 3.4047019106324234 | |
</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[68]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0,0.5,'f(x)')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<ol> | |
<li><p>100 steel rods are going to be used to support a 1000 kg structure. The | |
rods will buckle when the load in any rod exceeds the <a href="https://en.wikipedia.org/wiki/Euler%27s_critical_load">critical buckling | |
load</a></p> | |
<p>$P_{cr}=\frac{\pi^3 Er^4}{16L^2}$</p> | |
<p>where E=200e9 Pa, r=0.01 m +/-0.001 m, and L is the | |
length of the rods supporting the structure. Create a Monte | |
Carlo model <code>montecarlo_buckle</code> that predicts | |
the mean and standard deviation of the buckling load for 100 | |
samples with normally distributed dimensions r and L.</p> | |
<div class="highlight"><pre><span></span><span class="n">mean_buckle_load</span><span class="p">,</span><span class="n">std_buckle_load</span><span class="o">=</span>\ | |
<span class="n">montecarlo_buckle</span><span class="p">(</span><span class="n">E</span><span class="p">,</span><span class="n">r_mean</span><span class="p">,</span><span class="n">r_std</span><span class="p">,</span><span class="n">L</span><span class="p">,</span><span class="n">N</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span> | |
</pre></div> | |
<p>a. What is the mean_buckle_load and std_buckle_load for L=5 m?</p> | |
<p>b. What length, L, should the beams be so that only 2.5% will | |
reach the critical buckling load?</p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [70]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">montecarlo_buckle</span><span class="p">(</span><span class="n">E</span><span class="p">,</span><span class="n">r_mean</span><span class="p">,</span><span class="n">r_std</span><span class="p">,</span><span class="n">L</span><span class="p">,</span><span class="n">N</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span> | |
<span class="sd">'''Generate N rods of length L with radii of r=r_mean+/-r_std</span> | |
<span class="sd"> then calculate the mean and std of the buckling loads in for the</span> | |
<span class="sd"> rod population holding a 1000-kg structure</span> | |
<span class="sd"> Arguments</span> | |
<span class="sd"> ---------</span> | |
<span class="sd"> E: Young's modulus [note: keep units consistent]</span> | |
<span class="sd"> r_mean: mean radius of the N rods holding the structure</span> | |
<span class="sd"> r_std: standard deviation of the N rods holding the structure</span> | |
<span class="sd"> L: length of the rods (or the height of the structure)</span> | |
<span class="sd"> N: number of rods holding the structure, default is N=100 rods</span> | |
<span class="sd"> Returns</span> | |
<span class="sd"> -------</span> | |
<span class="sd"> mean_buckle_load: mean buckling load of N rods under 1000*9.81/N-Newton load</span> | |
<span class="sd"> std_buckle_load: std dev buckling load of N rods under 1000*9.81/N-Newton load</span> | |
<span class="sd"> '''</span> | |
<span class="n">ri</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">r_mean</span><span class="p">,</span><span class="n">r_std</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">N</span><span class="p">))</span> | |
<span class="n">Pi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">3</span><span class="o">*</span><span class="n">E</span><span class="o">*</span><span class="n">ri</span><span class="o">**</span><span class="mi">4</span><span class="o">/</span><span class="mi">16</span><span class="o">/</span><span class="n">L</span><span class="o">**</span><span class="mi">2</span> | |
<span class="n">mean_buckle_load</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">Pi</span><span class="p">)</span> | |
<span class="n">std_buckle_load</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">Pi</span><span class="p">)</span> | |
<span class="k">return</span> <span class="n">mean_buckle_load</span><span class="p">,</span><span class="n">std_buckle_load</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [75]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">mP</span><span class="p">,</span><span class="n">sP</span><span class="o">=</span><span class="n">montecarlo_buckle</span><span class="p">(</span><span class="mf">200e9</span><span class="p">,</span><span class="mf">0.01</span><span class="p">,</span><span class="mf">0.001</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> | |
<span class="nb">print</span><span class="p">(</span><span class="s1">'mean buckle load is </span><span class="si">{:.2f}</span><span class="s1"> N</span><span class="se">\n</span><span class="s1">std buckle load is </span><span class="si">{:.2f}</span><span class="s1"> N'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">mP</span><span class="p">,</span><span class="n">sP</span><span class="p">))</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_subarea output_stream output_stdout output_text"> | |
<pre>mean buckle load is 161.71 N | |
std buckle load is 64.15 N | |
</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [111]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">E</span><span class="o">=</span> <span class="mf">200e9</span> | |
<span class="n">r_mean</span><span class="o">=</span><span class="mf">0.01</span> | |
<span class="n">r_std</span><span class="o">=</span><span class="mf">0.001</span> | |
<span class="n">N</span><span class="o">=</span><span class="mi">100</span> | |
<span class="n">L</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> | |
<span class="n">fail_rate</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">L</span><span class="p">))</span> | |
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="n">L</span><span class="p">)):</span> | |
<span class="n">fj</span><span class="o">=</span><span class="mi">0</span> | |
<span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span> | |
<span class="n">rj</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">r_mean</span><span class="p">,</span><span class="n">r_std</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">N</span><span class="p">))</span> | |
<span class="n">Pj</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">3</span><span class="o">*</span><span class="n">E</span><span class="o">*</span><span class="n">rj</span><span class="o">**</span><span class="mi">4</span><span class="o">/</span><span class="mi">16</span><span class="o">/</span><span class="n">L</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> | |
<span class="n">fj</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">Pj</span><span class="o"><</span><span class="mi">1000</span><span class="o">*</span><span class="mf">9.81</span><span class="o">/</span><span class="mi">100</span><span class="p">)</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">Pj</span><span class="p">)</span> | |
<span class="n">fail_rate</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">fj</span><span class="o">/</span><span class="mi">100</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [119]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">logical_and</span><span class="p">(</span><span class="n">fail_rate</span><span class="o"><</span><span class="mf">0.025</span><span class="p">,</span><span class="n">fail_rate</span><span class="o">></span><span class="mf">0.021</span><span class="p">))</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[119]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>(array([24]),)</pre> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [122]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">fail_rate</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'predicted failure of 100 beams'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="mf">2.5</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">L</span><span class="p">)),</span><span class="n">label</span><span class="o">=</span><span class="s1">'desired failure level'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'length of beams (m)'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'average failure rate (%)'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'L =</span><span class="si">{:1.1f}</span><span class="s1"> m</span><span class="se">\n</span><span class="s1">Monte Carlo prediction of buckling</span><span class="se">\n</span><span class="s1">100 beams per trial average of 100 trials'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">L</span><span class="p">[</span><span class="mi">24</span><span class="p">]))</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[122]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0.5,1,'L =4.0 m\nMonte Carlo prediction of buckling\n100 beams per trial average of 100 trials')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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x1KxopkdHjlyJBMmTOCBBx5g/Pjx7N69m1GjRvHdd9+xatUqr7O92267jfXr1zN27Fivw0JPmYLx4osvMnPmTMaNG8e7775LfHy819V7amoqgwcPpnHjxmRlZTF//ny6d+/OwoUL6dq1a1j1HA5Lly5l3bp1JCcnU7duXe/5u3TpwsaNG3niiSe45JJLWLNmDWPGjOHgwYNMmDAhrHMsWLCAW265hW7dujFz5kwAnn76aa699lq+/fZbGjZsSL9+/Zg8eTKLFy/mpptu8h77wQcf8Ntvv9G3b18g9GfDcvocPZlXq8+uRwXGCqlyQnJyMs2aNWPevHlEODvWmzdvTuvWrfMIqYkTJ7J9+3Y2bNjABRdcABjPs7/99hujR49m6NChREZGsnr1asaOHUvv3r29x95xR8EOmI8ePcrMmTO55ZZbvGGpqamMHz+e5ORknnzySW/4hRdeSLt27Zg/fz49evRgyZIlfPrpp7z55pv06tULgC5dutC1a1d27doV9LwtWrTwTvFdccUVeRQenn02V5cnJyeHDh068NNPPzFlypRiFVLp6emsXbuWc845xxs2Y8YMPv30U5YvX851110HQIcOHQAYPXo0I0aMoG7duiGf469//StJSUl53Jlff/31nHfeeUyYMIF//etftG7dmgsuuIAZM2bkEVIzZsygefPmXHXVVUDoz4bl9Dnmsx5lp/qCY8eY5YDs7Gy+/PJL/vCHP3gFFECrVq3yaad9+OGHtGrVisTERLKysryfLl268Ouvv7Jx40YArr76asaPH8/EiRPZsGEDoerEREZG0r173l0IS5YsIScnh969e+c5Z6tWrahWrRorVqwAYPXq1VSoUIHbb789z/EegVVY1q5dS/fu3alXrx6RkZFERUWxZMkSNm3adFr5FkTr1q3zCCgw9d+oUSPatm2bpy46d+5MZmYma9asCTn/zZs3s3Xr1nz1WqlSJdq0aeOtV4A+ffowb948jhw5AsDBgwf53//+R79+/fKULZRnw3J65Kjm0eyzShPBsSLclzCn2MoKBw4cIDMzk3r16uWL8w/bt28fW7ZsISoqyjWvX3/9FYDZs2czevRonnnmGYYNG0Z8fDz33nsvo0aNyiMI/albt6536s73nADnn39+0HPu2bOHmjVr5iub23WFys6dO+nQoQMtWrTg+eef96qnP/HEE15F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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> | |
</div><div class="inner_cell"> | |
<div class="text_cell_render border-box-sizing rendered_html"> | |
<ol> | |
<li><p>Generate your own normal distribution using uniformly random numbers between -1/2 and 1/2.</p> | |
<p>a. What is the effect of changing the number of factors?</p> | |
<p>b. What is the effect of changing the number of samples?</p> | |
<p><em>Hint: for a-b try plotting histograms of the results.</em></p> | |
<p>c. How would you change the mean in your generated distribution?</p> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [137]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
<span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'factors = 10'</span><span class="p">)</span> | |
<span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
<span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'factors = 5'</span><span class="p">)</span> | |
<span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
<span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'factors = 2'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Number of samples =10,000</span><span class="se">\n</span><span class="s1">as factors increase, dist widens'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'effect A.U.'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'number of parts'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[137]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0,0.5,'number of parts')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [138]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
<span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'samples = 2000'</span><span class="p">)</span> | |
<span class="n">factors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span> <span class="c1"># each row represents a part and each column is an effect (-1/2-1/2)</span> | |
<span class="n">dims</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">factors</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">dims</span><span class="p">,</span><span class="mi">30</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'samples = 1000'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Number of factors=10</span><span class="se">\n</span><span class="s1">as samples incr, bar heights go up, dist is constant'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'effect A.U.'</span><span class="p">)</span> | |
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'number of parts'</span><span class="p">)</span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
<div class="output_wrapper"> | |
<div class="output"> | |
<div class="output_area"> | |
<div class="prompt output_prompt">Out[138]:</div> | |
<div class="output_text output_subarea output_execute_result"> | |
<pre>Text(0,0.5,'number of parts')</pre> | |
</div> | |
</div> | |
<div class="output_area"> | |
<div class="prompt"></div> | |
<div class="output_png output_subarea "> | |
<img src="data:image/png;base64,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VKxYkd69e3P33Xdz6NAh3xzxokWLSEhIoFevXjl6SOvSpQsA7777Lq1ataJt27ZMmTKFsWPH0q1bN9q1a5ejtCCWwYMH071793zD1a9fP98wkaZMmcLzzz/PE088QZMmTcLTQ20H8usYJq9wke0P4g1nSgdL2I0xhSIivPXWW6SnpzN69Gh27NhBo0aNGD58eLj19YIFC+jbty8DBgxg/PjxJCcnU6FCBS6++OIcddgh0TnDhIQE32lAruVTUlJyrS8lJYX9+/ezfft23/nbtm1j//79VKtWzXcfQ/2cjxkzhqSkJGbOnMnkyZOpVq0aV155Jffccw/JycmxDhH16tWjbt26MeeHFKQY/tFHH2XMmDFMnDiR667L+bJPZM78+OOPD08P5axD86Nz8JF27doVV7iffvopXMRvSgdL2I0xhXbyySfzzDPPoKp88sknPPTQQ9x0002kpqbSrVs3XnzxRZo0acKMGTPCyxw4cKBYinC3bt3qOy0hIYE6der4LlO7dm2SkpJiFtWHctKVK1dm5MiRjBw5kh9++IFXX32VYcOGsWfPnjxf+Srqovhnn32Wm266iVtvvZWxY6O77zhcl75mzZocCXuoLvy0007LFe6cc84Jh8vIyGDPnj3hcI0bNyYxMTFcJx+SlZXFV199Re/evTGlhyXsxpgiIyK0atWKadOm8cQTT7B69Wq6devGnj17cg168+yzz5KdnV3kcdi8eTMffPBBuDg+OzubOXPm0K5du5g54q5duzJ16lQyMzO58MIL49pOvXr1GDRoEAsXLmT16tV5hi3KoviXX36Za6+9lkGDBnHvvff6hjnnnHNITk7mueeeo3PnzuHpM2fOpFatWpx33nkANGzYkJYtW/Lcc88xaNCgHOEqV64crhJJSEiga9euzJ49m/T09PBvOXfuXPbt25ejbYUJniXsxphC+fTTTxkyZAh9+/alSZMmZGdnM2PGDCpVqsQFF1wAuIRz3rx5DB06lO7du7Ny5Ur+/ve/c9xxRT9UbEpKCn379mXChAnUqVOH6dOns2HDBqZPnx5zmbS0NK666iquvPJKhg0bFn4IyMjIYOHChUydOpWmTZvSs2dPWrZsyZlnnknNmjVZtWoVixYt4oYbbsgzTvXr1y9w/bmfd999l6uuuoozzjiDgQMH8sEHh4fGSExMpHXr1oArWbjzzju56aabaNCgAZ07d+add97hySef5MEHH8zRLmDy5Ml0796dG264gauuuopVq1YxceJEhgwZkuNthfT0dM455xz69OnDzTffTEZGBsOHD+fKK6/M0TGOKQVU1T5F+DnrrLPUmPysXbs23zCfbP4p30+8inJd0bZu3ar9+/fXU045RatUqaI1a9bUjh076qJFi8JhsrOzdezYsXr88cdrlSpVtGPHjvrRRx/pSSedpAMGDAiHe+qppxTQL774Isc2OnXqpOedd16OaZs2bVJAH3/88Vzh5s+fr82bN9eEhARt2rSpvvjiizmWHT9+vLrb32HZ2dn6wAMP6BlnnKGJiYlavXp1PeOMM3T48OG6a9cuVVW999579eyzz9ZatWppUlKSNm3aVMePH6/79+8/4uNXEKF4+31OOumkXOEfffRRPeWUUzQhIUGbNGmiDz/8sO96X3rpJT3jjDM0ISFBTzzxRJ0wYYIePHgwV7ilS5dq+/btNTExUevWratDhgzRX3/9Na6453fOAyu0FNzDy8PHep4rYtbznIlHfr1wAXz67a5813PGCfHleItyXaVZWloaBw8eLLEOY0z8rOe5kmM9zxljjDHliCXsxhhjTDlijeeMMeXGkiVLgo6CMYGzHLsxxhhTjljCbowxxpQjlrAbY4wx5Ygl7MYYY0w5Ygm7McYYU45Ywm6MMcaUI/a6mzFlWDw9yhljji6WsBtT2qTXAOCMwLafGdSWS0x6ejoTJkygLHapPW3aNBYvXsyKFSv44Ycf8hzqdd68eUyYMIF169aRkpLC9ddfz+jRo6lYsWKOcO+99x4jRoxg1apV1KhRg6uvvppJkyZRpUqVHOHWrFnD0KFDef/990lMTKRHjx7cd9994fHaTelgRfHGGFOGPP7442zbto3LLrssz3BvvPEGvXr1om3btrz++usMGTKEiRMnMmbMmBzhPv30U373u99Rt25dXn31VSZOnMhTTz3FwIEDc4T77rvvSEtLY+/evcydO5eHH36Yt99+m+7du3Po0KGi3k1TCJZjN8aYMmTNmjVUqFCBgwcP8uijj8YMN2rUKDp06MBjjz0GwPnnn88vv/zCxIkTGTp0aHhI1vHjx3PCCScwZ84cKleuDLjx1wcMGMDIkSM588wzAbjnnns4cOAACxYsCA+3W79+fTp16sS8efO44oorinO3TQFYjt0Y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 | |
" | |
> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="cell border-box-sizing code_cell rendered"> | |
<div class="input"> | |
<div class="prompt input_prompt">In [ ]:</div> | |
<div class="inner_cell"> | |
<div class="input_area"> | |
<div class=" highlight hl-ipython3"><pre><span></span> | |
</pre></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</body> | |
</html> |