diff --git a/about/index.html b/about/index.html index a926d92..9c17e40 100644 --- a/about/index.html +++ b/about/index.html @@ -1,9 +1,9 @@ - About | Dinne's professional blog

Hardware

VHDL i2s transmitter

Published on 2018-09-14 22:00

8 min read

Posts in category "Jupyter" | Dinne's professional blog

Home

VHDL i2s transmitter

Published on 2018-09-14 22:00

8 min read

Generating text using an LSTM neural network

Published on 2017-12-18 20:00

5 min read

Real Time sound synthesis with Jupyter

Published on 2017-12-03 12:00

6 min read

LSTM neural network for sequence learning

Published on 2017-11-26 22:00

22 min read

First Post

Published on 2017-11-20 20:00

1 min read

LSTM neural network for sequence learning | Dinne's professional blog

Tagged in Vhdl fpga-dsp

VHDL i2s transmitter

Published on 2018-09-14 22:00

8 min read

VHDL i2s transmitter | Dinne's professional blog

VHDL i2s transmitter

This summer I have been reading a book on VHDL 2008: "Effective Coding with VHDL" from Ricardo Jasinski. Although not for beginners I can recommend this book to anyone with some knowledge of FPGA's and general programming skills. To get some practical experience I obtained two dev kits:

+ */@font-face{font-family:FontAwesome;src:url(/static/fontawesome-webfont.674f50d2.eot);src:url(/static/fontawesome-webfont.674f50d2.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(/static/fontawesome-webfont.af7ae505.woff2) format("woff2"),url(/static/fontawesome-webfont.fee66e71.woff) format("woff"),url(/static/fontawesome-webfont.b06871f2.ttf) format("truetype"),url(/static/fontawesome-webfont.912ec66d.svg#fontawesomeregular) format("svg");font-weight:400;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}.fa-lg{font-size:1.33333em;line-height:.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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #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}.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)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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}.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-close:before,.fa-remove: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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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-cogs:before,.fa-gears: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-floppy-o:before,.fa-save:before{content:"\F0C7"}.fa-square:before{content:"\F0C8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\F0DC"}.fa-sort-desc:before,.fa-sort-down:before{content:"\F0DD"}.fa-sort-asc:before,.fa-sort-up:before{content:"\F0DE"}.fa-envelope:before{content:"\F0E0"}.fa-linkedin:before{content:"\F0E1"}.fa-rotate-left:before,.fa-undo:before{content:"\F0E2"}.fa-gavel:before,.fa-legal:before{content:"\F0E3"}.fa-dashboard:before,.fa-tachometer:before{content:"\F0E4"}.fa-comment-o:before{content:"\F0E5"}.fa-comments-o:before{content:"\F0E6"}.fa-bolt:before,.fa-flash:before{content:"\F0E7"}.fa-sitemap:before{content:"\F0E8"}.fa-umbrella:before{content:"\F0E9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\F150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\F151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\F152"}.fa-eur:before,.fa-euro:before{content:"\F153"}.fa-gbp:before{content:"\F154"}.fa-dollar:before,.fa-usd:before{content:"\F155"}.fa-inr:before,.fa-rupee:before{content:"\F156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\F157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\F158"}.fa-krw:before,.fa-won: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-caret-square-o-left:before,.fa-toggle-left:before{content:"\F191"}.fa-dot-circle-o:before{content:"\F192"}.fa-wheelchair:before{content:"\F193"}.fa-vimeo-square:before{content:"\F194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\F19C"}.fa-graduation-cap:before,.fa-mortar-board: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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\F1C5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\F1C6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\F1CD"}.fa-circle-o-notch:before{content:"\F1CE"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\F1D0"}.fa-empire:before,.fa-ge:before{content:"\F1D1"}.fa-git-square:before{content:"\F1D2"}.fa-git:before{content:"\F1D3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\F1D4"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-qq:before{content:"\F1D6"}.fa-wechat:before,.fa-weixin:before{content:"\F1D7"}.fa-paper-plane:before,.fa-send:before{content:"\F1D8"}.fa-paper-plane-o:before,.fa-send-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-futbol-o:before,.fa-soccer-ball-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-ils:before,.fa-shekel:before,.fa-sheqel: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-bed:before,.fa-hotel:before{content:"\F236"}.fa-viacoin:before{content:"\F237"}.fa-train:before{content:"\F238"}.fa-subway:before{content:"\F239"}.fa-medium:before{content:"\F23A"}.fa-y-combinator:before,.fa-yc: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-full:before,.fa-battery: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-paper-o:before,.fa-hand-stop-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-television:before,.fa-tv: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-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\F2A3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\F2A4"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-sign-language:before,.fa-signing: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-address-card:before,.fa-vcard:before{content:"\F2BB"}.fa-address-card-o:before,.fa-vcard-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-full:before,.fa-thermometer: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-bath:before,.fa-bathtub:before,.fa-s15: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}.toolbar-actions{height:100%;display:flex;flex:1 1 auto;justify-content:flex-end;align-items:center}@media (max-width:639px){.toolbar-actions .userlinks-container{display:none}}.darker-background,.main-container{background-color:#e0e0e0}a:link{color:#c62828;text-decoration:none}.footer{justify-content:center;align-content:center;background-color:#bdbdbd;padding:10px 5px 5px}.footer .notice-container{display:flex;align-content:center;align-items:center;margin-top:25px}.footer .notice-container .copyright{display:flex;flex:1;justify-content:flex-start}@media (max-width:639px){.footer .notice-container .copyright{justify-content:center}}.footer .notice-container .rss{display:flex;flex:1;justify-content:center}@media (max-width:639px){.footer .notice-container .rss{display:none}}.footer .notice-container .based-on{display:flex;flex:1;justify-content:flex-end}@media (max-width:639px){.footer .notice-container .based-on{display:none}}.footer .notice-container h4{color:#c62828;text-align:center;margin:0}.footer-fixed{position:fixed;left:0;bottom:0;right:0;z-index:15}.main-content{display:flex;flex-direction:column}.main-content .main-container{display:flex;min-height:100%;flex-direction:column;flex:1}.main-content .main-container .main-content{flex:1}*{box-sizing:border-box}html{height:100%}body{margin:0}.md-display-4{letter-spacing:-.1px}.md-display-3{letter-spacing:-.05px}.md-display-1,.md-display-2,.md-headline,h1,h2{letter-spacing:0}.md-title,h3{letter-spacing:.5px}.md-body-1,.md-body-2,.md-subheading-1,.md-subheading-2,h4,h5,h6,p{letter-spacing:.1px}.md-caption,caption{letter-spacing:.2px}.md-body-1,.md-body-2,.md-caption,.md-display-1,.md-display-2,.md-display-3,.md-display-4,.md-headline,.md-subheading-1,.md-subheading-2,.md-title,caption,h1,h2,h3,h4,h5,h6,p{margin:0}.md-display-1,.md-display-2,.md-display-3,.md-display-4,.md-headline,.md-title,h1,h2,h3{margin-bottom:14px}.md-body-1,.md-body-2,.md-caption,.md-subheading-1,.md-subheading-2,caption,h4,h5,h6,p{margin-bottom:10px}.md-display-3,.md-display-4,.md-title,h3{white-space:nowrap}.md-body-1,.md-caption,.md-display-1,.md-display-2,.md-display-3,.md-headline,.md-subheading-1,.md-subheading-2,caption,h1,h2,h4,h5,p{font-weight:400}.md-body-2,.md-title,h3,h6{font-weight:500}.md-display-4{font-size:112px;font-weight:300;line-height:128px}.md-display-3{font-size:56px;line-height:84px}.md-display-2{font-size:45px;line-height:48px}.md-display-1,h1{font-size:34px;line-height:40px}.md-headline,h2{font-size:24px;line-height:32px}.md-title,h3{font-size:20px}.md-subheading-2,.md-title,h3,h4{line-height:28px}.md-subheading-1,h5{line-height:24px}.md-body-1,.md-body-2,h6,p{line-height:1.42857}.md-caption,caption{font-size:12px}.md-picker-control,.md-text-left{text-align:left}.md-calendar-date,.md-text-center{text-align:center}.md-text-right{text-align:right}.md-text-justify{text-align:justify}.md-text-capitalize{text-transform:capitalize}.md-text-lowercalse{text-transform:lowercase}.md-text-uppercase{text-transform:uppercase}.md-text-nowrap{white-space:nowrap}.md-text-no-select{user-select:none}.md-font-light{font-weight:300}.md-font-regular{font-weight:400}.md-btn .md-icon-text,.md-clock-time-value,.md-font-medium{font-weight:500}.md-font-semibold{font-weight:600}.md-font-bold{font-weight:700}.md-transition--sharp{transition-timing-function:cubix-bezier(.4,0,.6,1)}.md-transition--standard{transition-timing-function:cubic-bezier(.4,0,.2,1)}.md-drop-down-leave.md-drop-down-leave-active,.md-transition--acceleration{transition-timing-function:cubic-bezier(.4,0,1,1)}.md-drop-down-enter.md-drop-down-enter-active,.md-transition--decceleration,.md-transition--deceleration{transition-timing-function:cubic-bezier(0,0,.2,1)}.md-calendar-date,.md-inline-block{display:inline-block;vertical-align:bottom}.md-full-width{width:100%}.md-block-centered,.md-bottom-nav .md-icon,.md-text-container{display:block;margin-left:auto;margin-right:auto}.md-cell--right,.md-collapser--card,.md-divider--expand-from-right:after,.md-grid.md-grid--no-spacing>.md-cell.md-cell--right{margin-left:auto}.md-expansion-panel-list,.md-list,.md-list-unstyled,.md-tabs{list-style:none;margin:0;padding-left:0}.md-media embed,.md-media iframe,.md-media img,.md-media object,.md-media svg,.md-media video{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.darker-background,.main-container{background-color:#e0e0e0}a:link{color:#c62828;text-decoration:none}@media screen and (min-width:320px){.md-subheading-1,.md-subheading-2{font-size:16px}.md-body-1,.md-body-2{font-size:14px}h4,h5{font-size:16px}h6,p{font-size:14px}}@media screen and (min-width:1025px){.md-subheading-1,.md-subheading-2{font-size:15px}.md-body-1,.md-body-2{font-size:13px}h4,h5{font-size:15px}h6,p{font-size:13px}}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:transparent;transition-timing-function:cubic-bezier(.4,0,.2,1)}html{background:#fafafa;font-size:14px;min-width:100%}body{font-family:Roboto,sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.42857;text-rendering:optimizeLegibility}.md-body-1,.md-body-2,.md-headline,.md-subheading-1,.md-subheading-2,.md-title,h2,h3,h4,h5,h6,p{color:rgba(0,0,0,.87)}.md-caption,.md-display-1,.md-display-2,.md-display-3,.md-display-4,caption,h1{color:rgba(0,0,0,.54)}button,h1,h2,h3,h4,h5,h6,html,input,p,textarea{font-family:Roboto,sans-serif}.md-text-container{max-width:640px;width:100%}.md-text-container.md-text-container.md-cell{margin-left:auto;margin-right:auto}.md-fake-btn{background:transparent;position:relative}.md-fake-btn--no-outline{outline-style:none}.md-no-scroll.md-no-scroll{overflow:hidden;position:fixed}.md-pointer--hover:hover{cursor:pointer}.md-pointer--none{pointer-events:none}.md-content-jump{left:-1000px;position:absolute;top:-1000px}.md-content-jump:active,.md-content-jump:focus{left:0;top:0}.md-grid{align-items:stretch;display:flex;flex-flow:row wrap;margin:0 auto}.md-grid.md-grid--no-spacing{padding:0}.md-grid.md-grid--no-spacing>.md-cell{margin:0}.md-grid--stacked{flex-direction:column}.md-cell--top{align-self:flex-start}.md-cell--middle{align-self:center}.md-cell--center{margin-left:auto;margin-right:auto}.md-cell--bottom{align-self:flex-end}.md-cell--stretch{align-self:stretch}@media (max-width:599px){.md-grid{padding:8px}.md-cell{width:calc(100% - 16px);margin:8px}.md-grid.md-grid--no-spacing>.md-cell{width:100%}.md-cell--phone-hidden{display:none!important}.md-cell--order-1,.md-cell--order-1-phone.md-cell--order-1-phone{order:1}.md-cell--order-2,.md-cell--order-2-phone.md-cell--order-2-phone{order:2}.md-cell--order-3,.md-cell--order-3-phone.md-cell--order-3-phone{order:3}.md-cell--order-4,.md-cell--order-4-phone.md-cell--order-4-phone{order:4}.md-cell--order-5,.md-cell--order-5-phone.md-cell--order-5-phone{order:5}.md-cell--order-6,.md-cell--order-6-phone.md-cell--order-6-phone{order:6}.md-cell--order-7,.md-cell--order-7-phone.md-cell--order-7-phone{order:7}.md-cell--order-8,.md-cell--order-8-phone.md-cell--order-8-phone{order:8}.md-cell--order-9,.md-cell--order-9-phone.md-cell--order-9-phone{order:9}.md-cell--order-10,.md-cell--order-10-phone.md-cell--order-10-phone{order:10}.md-cell--order-11,.md-cell--order-11-phone.md-cell--order-11-phone{order:11}.md-cell--order-12,.md-cell--order-12-phone.md-cell--order-12-phone{order:12}.md-cell--1,.md-cell--1-phone.md-cell--1-phone{width:calc(25% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--1,.md-grid.md-grid--no-spacing>.md-cell--1-phone.md-cell--1-phone{width:25%}.md-cell--2,.md-cell--2-phone.md-cell--2-phone{width:calc(50% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--2,.md-grid.md-grid--no-spacing>.md-cell--2-phone.md-cell--2-phone{width:50%}.md-cell--3,.md-cell--3-phone.md-cell--3-phone{width:calc(75% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--3,.md-grid.md-grid--no-spacing>.md-cell--3-phone.md-cell--3-phone{width:75%}.md-cell--4,.md-cell--4-phone.md-cell--4-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--4,.md-grid.md-grid--no-spacing>.md-cell--4-phone.md-cell--4-phone{width:100%}.md-cell--5,.md-cell--5-phone.md-cell--5-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--5,.md-grid.md-grid--no-spacing>.md-cell--5-phone.md-cell--5-phone{width:100%}.md-cell--6,.md-cell--6-phone.md-cell--6-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--6,.md-grid.md-grid--no-spacing>.md-cell--6-phone.md-cell--6-phone{width:100%}.md-cell--7,.md-cell--7-phone.md-cell--7-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--7,.md-grid.md-grid--no-spacing>.md-cell--7-phone.md-cell--7-phone{width:100%}.md-cell--8,.md-cell--8-phone.md-cell--8-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--8,.md-grid.md-grid--no-spacing>.md-cell--8-phone.md-cell--8-phone{width:100%}.md-cell--9,.md-cell--9-phone.md-cell--9-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--9,.md-grid.md-grid--no-spacing>.md-cell--9-phone.md-cell--9-phone{width:100%}.md-cell--10,.md-cell--10-phone.md-cell--10-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--10,.md-grid.md-grid--no-spacing>.md-cell--10-phone.md-cell--10-phone{width:100%}.md-cell--11,.md-cell--11-phone.md-cell--11-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--11,.md-grid.md-grid--no-spacing>.md-cell--11-phone.md-cell--11-phone{width:100%}.md-cell--12,.md-cell--12-phone.md-cell--12-phone{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--12,.md-grid.md-grid--no-spacing>.md-cell--12-phone.md-cell--12-phone{width:100%}.md-cell--1-offset,.md-cell--1-phone-offset.md-cell--1-phone-offset{margin-left:calc(25% + 8px)}.md-grid--no-spacing>.md-cell--1-offset,.md-grid--no-spacing>.md-cell--1-phone-offset.md-cell--1-phone-offset{margin-left:25%}.md-cell--2-offset,.md-cell--2-phone-offset.md-cell--2-phone-offset{margin-left:calc(50% + 8px)}.md-grid--no-spacing>.md-cell--2-offset,.md-grid--no-spacing>.md-cell--2-phone-offset.md-cell--2-phone-offset{margin-left:50%}.md-cell--3-offset,.md-cell--3-phone-offset.md-cell--3-phone-offset{margin-left:calc(75% + 8px)}.md-grid--no-spacing>.md-cell--3-offset,.md-grid--no-spacing>.md-cell--3-phone-offset.md-cell--3-phone-offset{margin-left:75%}}@media (min-width:600px) and (max-width:839px){.md-grid{padding:8px}.md-cell{width:calc(50% - 16px);margin:8px}.md-grid.md-grid--no-spacing>.md-cell{width:50%}.md-cell--tablet-hidden{display:none!important}.md-cell--order-1,.md-cell--order-1-tablet.md-cell--order-1-tablet{order:1}.md-cell--order-2,.md-cell--order-2-tablet.md-cell--order-2-tablet{order:2}.md-cell--order-3,.md-cell--order-3-tablet.md-cell--order-3-tablet{order:3}.md-cell--order-4,.md-cell--order-4-tablet.md-cell--order-4-tablet{order:4}.md-cell--order-5,.md-cell--order-5-tablet.md-cell--order-5-tablet{order:5}.md-cell--order-6,.md-cell--order-6-tablet.md-cell--order-6-tablet{order:6}.md-cell--order-7,.md-cell--order-7-tablet.md-cell--order-7-tablet{order:7}.md-cell--order-8,.md-cell--order-8-tablet.md-cell--order-8-tablet{order:8}.md-cell--order-9,.md-cell--order-9-tablet.md-cell--order-9-tablet{order:9}.md-cell--order-10,.md-cell--order-10-tablet.md-cell--order-10-tablet{order:10}.md-cell--order-11,.md-cell--order-11-tablet.md-cell--order-11-tablet{order:11}.md-cell--order-12,.md-cell--order-12-tablet.md-cell--order-12-tablet{order:12}.md-cell--1,.md-cell--1-tablet.md-cell--1-tablet{width:calc(12.5% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--1,.md-grid.md-grid--no-spacing>.md-cell--1-tablet.md-cell--1-tablet{width:12.5%}.md-cell--2,.md-cell--2-tablet.md-cell--2-tablet{width:calc(25% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--2,.md-grid.md-grid--no-spacing>.md-cell--2-tablet.md-cell--2-tablet{width:25%}.md-cell--3,.md-cell--3-tablet.md-cell--3-tablet{width:calc(37.5% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--3,.md-grid.md-grid--no-spacing>.md-cell--3-tablet.md-cell--3-tablet{width:37.5%}.md-cell--4,.md-cell--4-tablet.md-cell--4-tablet{width:calc(50% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--4,.md-grid.md-grid--no-spacing>.md-cell--4-tablet.md-cell--4-tablet{width:50%}.md-cell--5,.md-cell--5-tablet.md-cell--5-tablet{width:calc(62.5% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--5,.md-grid.md-grid--no-spacing>.md-cell--5-tablet.md-cell--5-tablet{width:62.5%}.md-cell--6,.md-cell--6-tablet.md-cell--6-tablet{width:calc(75% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--6,.md-grid.md-grid--no-spacing>.md-cell--6-tablet.md-cell--6-tablet{width:75%}.md-cell--7,.md-cell--7-tablet.md-cell--7-tablet{width:calc(87.5% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--7,.md-grid.md-grid--no-spacing>.md-cell--7-tablet.md-cell--7-tablet{width:87.5%}.md-cell--8,.md-cell--8-tablet.md-cell--8-tablet{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--8,.md-grid.md-grid--no-spacing>.md-cell--8-tablet.md-cell--8-tablet{width:100%}.md-cell--9,.md-cell--9-tablet.md-cell--9-tablet{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--9,.md-grid.md-grid--no-spacing>.md-cell--9-tablet.md-cell--9-tablet{width:100%}.md-cell--10,.md-cell--10-tablet.md-cell--10-tablet{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--10,.md-grid.md-grid--no-spacing>.md-cell--10-tablet.md-cell--10-tablet{width:100%}.md-cell--11,.md-cell--11-tablet.md-cell--11-tablet{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--11,.md-grid.md-grid--no-spacing>.md-cell--11-tablet.md-cell--11-tablet{width:100%}.md-cell--12,.md-cell--12-tablet.md-cell--12-tablet{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--12,.md-grid.md-grid--no-spacing>.md-cell--12-tablet.md-cell--12-tablet{width:100%}.md-cell--1-offset,.md-cell--1-tablet-offset.md-cell--1-tablet-offset{margin-left:calc(12.5% + 8px)}.md-grid--no-spacing>.md-cell--1-offset,.md-grid--no-spacing>.md-cell--1-tablet-offset.md-cell--1-tablet-offset{margin-left:12.5%}.md-cell--2-offset,.md-cell--2-tablet-offset.md-cell--2-tablet-offset{margin-left:calc(25% + 8px)}.md-grid--no-spacing>.md-cell--2-offset,.md-grid--no-spacing>.md-cell--2-tablet-offset.md-cell--2-tablet-offset{margin-left:25%}.md-cell--3-offset,.md-cell--3-tablet-offset.md-cell--3-tablet-offset{margin-left:calc(37.5% + 8px)}.md-grid--no-spacing>.md-cell--3-offset,.md-grid--no-spacing>.md-cell--3-tablet-offset.md-cell--3-tablet-offset{margin-left:37.5%}.md-cell--4-offset,.md-cell--4-tablet-offset.md-cell--4-tablet-offset{margin-left:calc(50% + 8px)}.md-grid--no-spacing>.md-cell--4-offset,.md-grid--no-spacing>.md-cell--4-tablet-offset.md-cell--4-tablet-offset{margin-left:50%}.md-cell--5-offset,.md-cell--5-tablet-offset.md-cell--5-tablet-offset{margin-left:calc(62.5% + 8px)}.md-grid--no-spacing>.md-cell--5-offset,.md-grid--no-spacing>.md-cell--5-tablet-offset.md-cell--5-tablet-offset{margin-left:62.5%}.md-cell--6-offset,.md-cell--6-tablet-offset.md-cell--6-tablet-offset{margin-left:calc(75% + 8px)}.md-grid--no-spacing>.md-cell--6-offset,.md-grid--no-spacing>.md-cell--6-tablet-offset.md-cell--6-tablet-offset{margin-left:75%}.md-cell--7-offset,.md-cell--7-tablet-offset.md-cell--7-tablet-offset{margin-left:calc(87.5% + 8px)}.md-grid--no-spacing>.md-cell--7-offset,.md-grid--no-spacing>.md-cell--7-tablet-offset.md-cell--7-tablet-offset{margin-left:87.5%}}@media (min-width:840px){.md-grid{padding:8px}.md-cell{width:calc(33.33333% - 16px);margin:8px}.md-grid.md-grid--no-spacing>.md-cell{width:33.33333%}.md-cell--desktop-hidden{display:none!important}.md-cell--order-1,.md-cell--order-1-desktop.md-cell--order-1-desktop{order:1}.md-cell--order-2,.md-cell--order-2-desktop.md-cell--order-2-desktop{order:2}.md-cell--order-3,.md-cell--order-3-desktop.md-cell--order-3-desktop{order:3}.md-cell--order-4,.md-cell--order-4-desktop.md-cell--order-4-desktop{order:4}.md-cell--order-5,.md-cell--order-5-desktop.md-cell--order-5-desktop{order:5}.md-cell--order-6,.md-cell--order-6-desktop.md-cell--order-6-desktop{order:6}.md-cell--order-7,.md-cell--order-7-desktop.md-cell--order-7-desktop{order:7}.md-cell--order-8,.md-cell--order-8-desktop.md-cell--order-8-desktop{order:8}.md-cell--order-9,.md-cell--order-9-desktop.md-cell--order-9-desktop{order:9}.md-cell--order-10,.md-cell--order-10-desktop.md-cell--order-10-desktop{order:10}.md-cell--order-11,.md-cell--order-11-desktop.md-cell--order-11-desktop{order:11}.md-cell--order-12,.md-cell--order-12-desktop.md-cell--order-12-desktop{order:12}.md-cell--1,.md-cell--1-desktop.md-cell--1-desktop{width:calc(8.33333% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--1,.md-grid.md-grid--no-spacing>.md-cell--1-desktop.md-cell--1-desktop{width:8.33333%}.md-cell--2,.md-cell--2-desktop.md-cell--2-desktop{width:calc(16.66667% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--2,.md-grid.md-grid--no-spacing>.md-cell--2-desktop.md-cell--2-desktop{width:16.66667%}.md-cell--3,.md-cell--3-desktop.md-cell--3-desktop{width:calc(25% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--3,.md-grid.md-grid--no-spacing>.md-cell--3-desktop.md-cell--3-desktop{width:25%}.md-cell--4,.md-cell--4-desktop.md-cell--4-desktop{width:calc(33.33333% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--4,.md-grid.md-grid--no-spacing>.md-cell--4-desktop.md-cell--4-desktop{width:33.33333%}.md-cell--5,.md-cell--5-desktop.md-cell--5-desktop{width:calc(41.66667% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--5,.md-grid.md-grid--no-spacing>.md-cell--5-desktop.md-cell--5-desktop{width:41.66667%}.md-cell--6,.md-cell--6-desktop.md-cell--6-desktop{width:calc(50% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--6,.md-grid.md-grid--no-spacing>.md-cell--6-desktop.md-cell--6-desktop{width:50%}.md-cell--7,.md-cell--7-desktop.md-cell--7-desktop{width:calc(58.33333% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--7,.md-grid.md-grid--no-spacing>.md-cell--7-desktop.md-cell--7-desktop{width:58.33333%}.md-cell--8,.md-cell--8-desktop.md-cell--8-desktop{width:calc(66.66667% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--8,.md-grid.md-grid--no-spacing>.md-cell--8-desktop.md-cell--8-desktop{width:66.66667%}.md-cell--9,.md-cell--9-desktop.md-cell--9-desktop{width:calc(75% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--9,.md-grid.md-grid--no-spacing>.md-cell--9-desktop.md-cell--9-desktop{width:75%}.md-cell--10,.md-cell--10-desktop.md-cell--10-desktop{width:calc(83.33333% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--10,.md-grid.md-grid--no-spacing>.md-cell--10-desktop.md-cell--10-desktop{width:83.33333%}.md-cell--11,.md-cell--11-desktop.md-cell--11-desktop{width:calc(91.66667% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--11,.md-grid.md-grid--no-spacing>.md-cell--11-desktop.md-cell--11-desktop{width:91.66667%}.md-cell--12,.md-cell--12-desktop.md-cell--12-desktop{width:calc(100% - 16px)}.md-grid.md-grid--no-spacing>.md-cell--12,.md-grid.md-grid--no-spacing>.md-cell--12-desktop.md-cell--12-desktop{width:100%}.md-cell--1-desktop-offset.md-cell--1-desktop-offset,.md-cell--1-offset{margin-left:calc(8.33333% + 8px)}.md-grid--no-spacing>.md-cell--1-desktop-offset.md-cell--1-desktop-offset,.md-grid--no-spacing>.md-cell--1-offset{margin-left:8.33333%}.md-cell--2-desktop-offset.md-cell--2-desktop-offset,.md-cell--2-offset{margin-left:calc(16.66667% + 8px)}.md-grid--no-spacing>.md-cell--2-desktop-offset.md-cell--2-desktop-offset,.md-grid--no-spacing>.md-cell--2-offset{margin-left:16.66667%}.md-cell--3-desktop-offset.md-cell--3-desktop-offset,.md-cell--3-offset{margin-left:calc(25% + 8px)}.md-grid--no-spacing>.md-cell--3-desktop-offset.md-cell--3-desktop-offset,.md-grid--no-spacing>.md-cell--3-offset{margin-left:25%}.md-cell--4-desktop-offset.md-cell--4-desktop-offset,.md-cell--4-offset{margin-left:calc(33.33333% + 8px)}.md-grid--no-spacing>.md-cell--4-desktop-offset.md-cell--4-desktop-offset,.md-grid--no-spacing>.md-cell--4-offset{margin-left:33.33333%}.md-cell--5-desktop-offset.md-cell--5-desktop-offset,.md-cell--5-offset{margin-left:calc(41.66667% + 8px)}.md-grid--no-spacing>.md-cell--5-desktop-offset.md-cell--5-desktop-offset,.md-grid--no-spacing>.md-cell--5-offset{margin-left:41.66667%}.md-cell--6-desktop-offset.md-cell--6-desktop-offset,.md-cell--6-offset{margin-left:calc(50% + 8px)}.md-grid--no-spacing>.md-cell--6-desktop-offset.md-cell--6-desktop-offset,.md-grid--no-spacing>.md-cell--6-offset{margin-left:50%}.md-cell--7-desktop-offset.md-cell--7-desktop-offset,.md-cell--7-offset{margin-left:calc(58.33333% + 8px)}.md-grid--no-spacing>.md-cell--7-desktop-offset.md-cell--7-desktop-offset,.md-grid--no-spacing>.md-cell--7-offset{margin-left:58.33333%}.md-cell--8-desktop-offset.md-cell--8-desktop-offset,.md-cell--8-offset{margin-left:calc(66.66667% + 8px)}.md-grid--no-spacing>.md-cell--8-desktop-offset.md-cell--8-desktop-offset,.md-grid--no-spacing>.md-cell--8-offset{margin-left:66.66667%}.md-cell--9-desktop-offset.md-cell--9-desktop-offset,.md-cell--9-offset{margin-left:calc(75% + 8px)}.md-grid--no-spacing>.md-cell--9-desktop-offset.md-cell--9-desktop-offset,.md-grid--no-spacing>.md-cell--9-offset{margin-left:75%}.md-cell--10-desktop-offset.md-cell--10-desktop-offset,.md-cell--10-offset{margin-left:calc(83.33333% + 8px)}.md-grid--no-spacing>.md-cell--10-desktop-offset.md-cell--10-desktop-offset,.md-grid--no-spacing>.md-cell--10-offset{margin-left:83.33333%}.md-cell--11-desktop-offset.md-cell--11-desktop-offset,.md-cell--11-offset{margin-left:calc(91.66667% + 8px)}.md-grid--no-spacing>.md-cell--11-desktop-offset.md-cell--11-desktop-offset,.md-grid--no-spacing>.md-cell--11-offset{margin-left:91.66667%}}.md-autocomplete-container{position:relative}.md-autocomplete-suggestion{color:rgba(0,0,0,.54);line-height:1.15;overflow:hidden;position:absolute;top:12px;white-space:nowrap}@media screen and (min-width:320px){.md-autocomplete-suggestion{font-size:16px}.md-autocomplete-suggestion--floating{top:37px}.md-autocomplete-suggestion--block{top:18px}}@media screen and (min-width:1025px){.md-autocomplete-suggestion{font-size:13px}.md-autocomplete-suggestion--floating{top:33px}.md-autocomplete-suggestion--block{top:15px}}.md-avatar{border:1px solid rgba(0,0,0,.12);border-radius:50%;height:40px;overflow:hidden;text-align:center;width:40px}.md-avatar .md-icon{color:inherit}.md-avatar--icon-sized{height:24px;width:24px}.md-avatar-img{height:100%;width:auto}.md-avatar-content{align-items:center;display:flex;font-size:24px;height:100%;justify-content:center;width:100%}.md-avatar--default{background:#616161;color:#f5f5f5}@media screen and (min-width:1025px){.md-avatar-content{font-size:20px}.md-avatar--icon-sized{height:20px;width:20px}}.md-avatar--red{background:#d50000;color:#ffebee}.md-avatar--pink{background:#d81b60;color:#fff}.md-avatar--purple{background:#7b1fa2;color:#e1bee7}.md-avatar--deep-purple{background:#311b92;color:#d1c4e9}.md-avatar--indigo{background:#3949ab;color:#c5cae9}.md-avatar--blue{background:#2962ff;color:#fff}.md-avatar--light-blue{background:#4fc3f7;color:#311b92}.md-avatar--cyan{background:#26c6da;color:#004d40}.md-avatar--teal{background:#1de9b6;color:#004d40}.md-avatar--green{background:#2e7d32;color:#e8f5e9}.md-avatar--light-green{background:#aed581;color:#1b5e20}.md-avatar--lime{background:#d4e157;color:#00695c}.md-avatar--yellow{background:#ff0;color:#795548}.md-avatar--amber{background:#ffca28;color:#4e342e}.md-avatar--orange{background:#fb8c00;color:#212121}.md-avatar--deep-orange{background:#ff3d00;color:#212121}.md-avatar--brown{background:#795548;color:#efebe9}.md-avatar--grey{background:#616161;color:#f5f5f5}.md-avatar--blue-grey{background:#455a64;color:#eceff1}.md-badge-container{position:relative}.md-badge{position:absolute;right:-8px;top:-8px}.md-badge--circular{align-items:center;border-radius:50%;display:flex;font-size:10px;height:24px;justify-content:center;width:24px}.md-badge--default{background:rgba(0,0,0,.2)}.md-bottom-navigation{bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;position:fixed;width:100%;z-index:11}.md-bottom-navigation--shifting{transition-duration:.3s;transition-property:background}.md-bottom-navigation--dynamic{transform:translateZ(0);transition-duration:.3s;transition-property:background,transform}.md-bottom-navigation--dynamic-inactive{transform:translate3d(0,100%,0)}.md-bottom-navigation-offset{padding-bottom:56px}.md-bottom-nav{color:inherit;display:block;flex-grow:1;font-size:12px;height:56px;max-width:168px;padding:8px 12px 10px;text-align:center;text-decoration:none;user-select:none}.md-bottom-nav--active{flex-shrink:0;font-size:14px;padding-top:6px}.md-bottom-nav--fixed{min-width:80px}.md-bottom-nav--shifting{min-width:96px;position:static;transition-duration:.15s;transition-property:max-width}.md-bottom-nav--shifting-inactive{max-width:96px;min-width:56px;padding-top:16px}.md-bottom-nav--shifting .md-ink-container{overflow:visible}.md-bottom-nav--shifting .md-ink{background:hsla(0,0%,100%,.12)}.md-bottom-nav-label{transition-duration:.15s;transition-property:color,font-size}.md-bottom-nav-label--shifting-inactive{max-width:32px;overflow:hidden;white-space:nowrap}a.md-btn{text-decoration:none}.md-btn{background:transparent;border:0;position:relative;transition-duration:.15s;transition-property:background,color}.md-btn[disabled] *{pointer-events:none}.md-btn--tooltip{overflow:visible}.md-btn:focus{outline-style:none}.md-btn .md-icon-separator{height:100%}.md-btn--hover{background:hsla(0,0%,60%,.12)}.md-btn--color-primary-active{background:hsla(0,0%,74%,.12)}.md-btn--color-secondary-active{background:rgba(198,40,40,.12)}.md-btn--text{border-radius:2px;font-weight:500;min-width:88px;padding:8px 16px;text-transform:uppercase}.md-btn--raised{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);transition:background .15s,box-shadow .3s,color .15s}.md-btn--raised-disabled{background:rgba(0,0,0,.12)}.md-btn--raised-pressed{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.4)}.md-btn--icon{border-radius:50%;color:rgba(0,0,0,.54);height:48px;padding:12px;width:48px}.md-btn--floating{height:56px;padding:16px;transition-property:background,box-shadow,color;width:56px}.md-btn--floating-mini{height:40px;padding:8px;width:40px}.md-btn--fixed{position:fixed;z-index:10}@media screen and (min-width:320px){.md-btn--text{height:36px;margin-bottom:6px;margin-top:6px;font-size:14px}.md-btn--text:after,.md-btn--text:before{content:"";height:6px;left:0;position:absolute;right:0}.md-btn--text:before{top:-6px}.md-btn--text:after{bottom:-6px}.md-btn--fixed-tl{left:16px;top:16px}.md-btn--fixed-tr{right:16px;top:16px}.md-btn--fixed-bl{bottom:16px;left:16px}.md-btn--fixed-br{bottom:16px;right:16px}}@media screen and (min-width:1025px){.md-btn--text{height:32px;margin-bottom:0;margin-top:0;font-size:13px}.md-btn--text:after,.md-btn--text:before{display:none;visibility:hidden}.md-btn--text:before{top:0}.md-btn--text:after{bottom:0}.md-btn--fixed-tl{left:24px;top:24px}.md-btn--fixed-tr{right:24px;top:24px}.md-btn--fixed-bl{bottom:24px;left:24px}.md-btn--fixed-br{bottom:24px;right:24px}.md-btn--icon{height:40px;width:40px;padding:10px}.md-btn--floating{height:48px;padding:14px;width:48px}.md-btn--floating-mini{height:40px;padding:10px;width:40px}}.md-card{display:block}.md-card--raise{transition-duration:.3s;transition-property:box-shadow}.md-collapser--card{transition-duration:.3s;transition-property:background,transform}.md-card-text{font-size:14px;padding:16px}.md-card-text p{font-size:inherit}.md-card-text p:last-child{margin-bottom:0}.md-card-text:last-child{padding-bottom:24px}.md-card-title{align-items:center;display:flex;padding:16px}.md-card-title:last-child{padding-bottom:24px}.md-card-title--primary{padding-top:24px}.md-card-title--title{font-size:14px;line-height:1.42857;margin:0;white-space:normal}.md-card-title--large{font-size:24px}.md-card-title--one-line{overflow:hidden}.md-card-title--one-line .md-card-title--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-avatar--card{flex-shrink:0;margin-right:16px}.md-dialog-footer--card{align-items:center;display:flex;justify-content:flex-start}.md-dialog-footer--card-centered{justify-content:center}.md-card--table .md-card-title{padding-left:24px}.md-chip{align-items:center;background:#e0e0e0;border:0;border-radius:16px;display:inline-flex;height:32px;padding-left:12px;padding-right:12px;position:relative;transition-duration:.15s;transition-property:box-shadow,background;vertical-align:top;white-space:nowrap}.md-chip:focus{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);outline-style:none}.md-chip--hover.md-chip--hover{background:#616161}.md-chip-text{color:rgba(0,0,0,.87);font-size:13px;transition-duration:.15s;transition-property:color}.md-chip .md-avatar{border:0;height:32px;left:0;position:absolute;top:0;width:32px}.md-chip--avatar{padding-left:40px}.md-chip-icon{color:rgba(0,0,0,.54);margin-left:4px;margin-right:4px;position:absolute;right:0;top:4px;z-index:1}.md-chip-icon--rotate{transform:rotate(45deg)}.md-chip--remove{padding-right:32px}.md-chip-text--contact{font-size:14px}.md-chip-text--hover{color:#fff}@media screen and (min-width:1025px){.md-chip-icon{margin-left:6px;margin-right:6px;top:6px}}.md-collapser.md-collapser,.md-collapser .md-tooltip-container{transition-duration:.15s;transition-property:transform}.md-collapser .md-tooltip-container{transform:rotate(0deg)}.md-collapser--flipped{transform:rotate(180deg)}.md-collapser--flipped .md-tooltip-container{transform:rotate(-180deg)}.md-data-table{border-collapse:collapse;max-width:100%}.md-data-table--full-width{width:100%}.md-data-table--responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}tbody .md-table-row:not(:last-child),thead .md-table-row{border-bottom:1px solid rgba(0,0,0,.12)}tbody .md-table-row{transition-duration:.15s;transition-property:background}tbody .md-table-row--active{background:#f5f5f5}@media (min-device-width:1025px){tbody .md-table-row--hover{background:#eee}}.md-table-column{line-height:normal;padding-bottom:0;padding-right:24px;padding-top:0;vertical-align:middle;white-space:nowrap}.md-table-column:first-child{padding-left:24px}.md-table-column--relative{position:relative}.md-table-column--adjusted{padding-right:56px}.md-table-column--header{font-size:12px;font-weight:500;height:56px}.md-table-column--header .md-icon{font-size:16px}.md-table-column--data{font-size:13px;height:48px}.md-table-column--plain{height:48px;white-space:normal}.md-table-column--grow{width:100%}.md-table-column--select-header{padding-left:16px}.md-table-column .md-icon-separator{line-height:inherit}.md-table-checkbox .md-selection-control-label{display:block}.md-table-checkbox .md-selection-control-container{margin-left:12px;margin-right:12px}.md-edit-dialog.md-dialog{width:250px}.md-edit-dialog__label{overflow:hidden;padding:16px 0;text-overflow:ellipsis;width:250px}@media screen and (max-width:1024px){.md-edit-dialog__label{font-size:16px}}.md-edit-dialog__content{display:flex;padding:24px;padding-bottom:8px}.md-edit-dialog__content:not(:first-child){padding-top:0}.md-edit-dialog__header{font-weight:500}.md-edit-dialog__header.md-text-field{font-size:12px}.md-edit-dialog__blocked-field{height:47px;width:250px}.md-edit-dialog__blocked-field.md-edit-dialog__blocked-field{padding-bottom:0;padding-top:0}.md-edit-dialog__blocked-field .md-text-field-icon-container{align-items:center}.md-table-column--select-field{padding-left:24px}.md-select-field-column .md-select-field--btn{height:47px}.md-table-footer--pagination .md-table-column{padding-left:0}.md-table-pagination{height:56px}.md-table-pagination--controls{align-items:center;display:inline-flex;justify-content:flex-start;position:absolute;white-space:nowrap}@media (max-width:767px){.md-table-pagination .md-text-field{font-size:13px}.md-table-pagination .md-icon-text:first-child{padding-right:4px}.md-table-pagination__label{display:none}}.md-table-card-header{position:relative}.md-table-card-header--no-title{align-items:center;display:flex;height:80px;padding-right:2px}.md-table-card-header .md-card-title{padding-right:2px}.md-table-card-header .md-card-title:last-child{padding-bottom:16px}.md-table-card-header .md-btn--dialog+.md-btn--dialog{margin-left:8px}.md-card-title--contextual{background:#ffebee;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.md-card-title--title-contextual{color:#c62828;font-size:16px;font-weight:500;line-height:80px}.md-drop-down-enter{transform:translate3d(0,-100%,0)}.md-drop-down-enter.md-drop-down-enter-active{transform:translateZ(0);transition-duration:.15s;transition-property:transform}.md-drop-down-leave{transform:translateZ(0)}.md-drop-down-leave.md-drop-down-leave-active{transform:translate3d(0,-100%,0);transition-duration:.15s;transition-property:transform}.md-data-table--fixed{overflow-y:hidden}.md-data-table__fixed-wrapper{display:table;min-width:100%;position:relative}.md-data-table__fixed-wrapper--header{padding-top:56px}.md-data-table__fixed-wrapper--footer{padding-bottom:48px}.md-data-table__scroll-wrapper{overflow-x:hidden;overflow-y:auto}.md-table-column--fixed{height:0;padding-bottom:0;padding-top:0;visibility:hidden;white-space:nowrap}.md-table-column--fixed>*{display:none}.md-table-column--fixed .md-table-column__fixed{display:block}.md-table-column__fixed{position:absolute;visibility:visible}.md-table-column__fixed--header{top:0}.md-table-column__fixed--footer{bottom:0}.md-table-column__fixed--flex{align-items:center;display:flex}.md-table-column__fixed--flex-right{justify-content:flex-end}.md-table-column__fixed .md-table-checkbox--header{display:flex;height:56px}.md-table-column__fixed .md-table-checkbox--footer{display:flex;height:48px}.md-dialog-container.md-overlay{transition-duration:.3s;z-index:20}.md-dialog{width:280px;cursor:auto;position:fixed}.md-dialog--centered{left:50%;max-height:calc(100% - 48px);max-width:calc(100% - 80px);top:50%;transform:translate3d(-50%,-50%,0)}.md-dialog--centered .md-list{padding-bottom:8px;padding-top:0}.md-dialog--centered .md-list-tile{height:auto;padding:16px 24px}.md-dialog--centered .md-tile-text--primary{white-space:normal}.md-dialog--centered-enter{transform:translate3d(-50%,calc(-50% + -30px),0)}.md-dialog--centered-enter.md-dialog--centered-enter-active{transform:translate3d(-50%,-50%,0);transition-duration:.3s;transition-property:transform}.md-dialog--centered-leave{transform:translate3d(-50%,-50%,0)}.md-dialog--centered-leave.md-dialog--centered-leave-active{transform:translate3d(-50%,calc(-50% + -30px),0);transition-duration:.3s;transition-property:transform}.md-dialog--full-page{bottom:0;left:0;overflow:auto;top:0;width:100vw;z-index:110}.md-dialog--full-page-enter{transform:scale(0)}.md-dialog--full-page-enter.md-dialog--full-page-enter-active{transform:scale(1);transition-duration:.3s;transition-property:transform}.md-dialog--full-page-leave{transform:scale(1)}.md-dialog--full-page-leave.md-dialog--full-page-leave-active{transform:scale(0);transition-duration:.3s;transition-property:transform}.md-title--dialog{margin-bottom:0;padding:24px;padding-bottom:20px;white-space:normal}.md-dialog-content{-webkit-overflow-scrolling:touch;overflow:auto}.md-dialog-content--padded{padding:24px}.md-dialog-content--padded:not(:first-child){padding-top:0}.md-dialog-footer{display:flex;justify-content:flex-end}.md-dialog-footer--inline{padding:8px}.md-dialog-footer--inline .md-btn--dialog+.md-btn--dialog{margin-left:8px}.md-dialog-footer--stacked{align-items:flex-end;flex-direction:column;padding-bottom:8px;padding-right:8px}.md-dialog-footer--stacked .md-btn--dialog{margin-bottom:6px;margin-top:6px}.md-btn--dialog{height:36px;min-width:64px;padding-left:8px;padding-right:8px}.md-divider{background:rgba(0,0,0,.12);border:0;content:"";display:block;height:1px;margin:0}.md-divider--vertical{height:100%;width:1px}.md-divider--inset{margin-left:72px}.md-divider-border{border:0 solid rgba(0,0,0,.12)}.md-divider-border--top{border-top-width:1px}.md-divider-border--right{border-right-width:1px}.md-divider-border--bottom{border-bottom-width:1px}.md-divider-border--left{border-left-width:1px}@media screen and (min-width:320px) and (max-width:1024px){.md-drawer--left{max-width:320px;transform:translate3d(-100%,0,0);width:calc(100vw - 56px)}.md-drawer--right{left:0;transform:translate3d(100%,0,0)}.md-drawer--mini.md-drawer--mini{width:48px}.md-list-tile--mini.md-list-tile--mini{padding-left:12px;padding-right:12px}.md-drawer-relative--mini.md-drawer-relative--mini{margin-left:48px}.md-toolbar~.md-list--drawer{height:calc(100% - 56px)}}@media screen and (min-width:320px) and (min-aspect-ratio:13/9){.md-toolbar~.md-list--drawer{height:calc(100% - 48px)}}@media screen and (min-width:768px){.md-drawer--left{max-width:400px;transform:translate3d(-256px,0,0);width:256px}.md-drawer--right{transform:translate3d(100%,0,0)}.md-drawer--mini.md-drawer--mini{width:72px}.md-list-tile--mini.md-list-tile--mini{padding-left:26px;padding-right:26px}.md-drawer-relative{margin-left:256px}.md-drawer-relative--mini.md-drawer-relative--mini{margin-left:72px}.md-toolbar~.md-list--drawer{height:calc(100% - 64px)}}.md-drawer{transition-duration:.3s;transition-property:transform}.md-drawer--fixed{bottom:0;position:fixed;top:0;z-index:17}.md-drawer--inline{display:inline-block;height:100%}.md-drawer--left{left:0}.md-drawer--right{right:0}.md-drawer--active{transform:translateZ(0)}.md-drawer--mini{z-index:16}.md-list--drawer{-webkit-overflow-scrolling:touch;height:100%;overflow-y:auto}.md-overlay--drawer.md-overlay--drawer{transition-duration:.3s}.md-expansion-panel{background:#fff;transition-duration:.15s;transition-property:margin}.md-expansion-panel--expanded:not(:first-child){margin-top:16px}.md-expansion-panel--expanded:not(:last-child){margin-bottom:16px}.md-panel-column--overflown{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:break-word}.md-panel-column:not(:last-child){padding-right:16px}.md-panel-header{align-items:center;display:flex;font-size:15px;height:48px;justify-content:space-between;padding-left:24px;padding-right:24px;transition-duration:.15s;transition-property:background,height}.md-panel-header--expanded{height:64px}.md-panel-header--focused{background:#eee}.md-panel-content{padding:0 24px 16px}.md-panel-secondary-label{color:rgba(0,0,0,.54);font-size:12px}.md-file-input{height:0;opacity:0;overflow:hidden;position:absolute;width:0}.md-file-input-container{position:relative}.md-file-input-container .md-btn{display:block}.md-ink-container{border-radius:inherit;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.md-ink-container--2x{height:200%;left:-50%;top:-50%;width:200%}.md-ink{background:rgba(0,0,0,.12);border-radius:50%;display:block;opacity:1;position:absolute;transform:scale(0);z-index:-1}.md-ink--active{transition-duration:.45s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,1,1)}.md-ink--expanded{transform:scale(1)}.md-ink--leaving{opacity:0;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.md-icon{color:rgba(0,0,0,.54);font-size:24px;text-align:center;transition-duration:.15s;transition-property:color;user-select:none}svg.md-icon{fill:currentColor;height:24px;width:24px}.md-icon-separator{align-items:center;display:flex;font-weight:inherit;text-align:left}.md-icon-separator .md-icon{flex-grow:0;flex-shrink:0}.md-icon-text{flex-grow:1;flex-shrink:0;font-weight:inherit;line-height:inherit}.md-icon-text:first-child{padding-right:16px}.md-icon-text:last-child{padding-left:16px}@media screen and (min-width:1025px){.material-icons.md-icon{font-size:20px}svg.md-icon{height:20px;width:20px}}.md-layover-enter{transform:scale(0)}.md-layover-enter.md-layover-enter-active{transform:scale(1);transition-duration:.2s;transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1)}.md-layover-leave{opacity:1}.md-layover-leave.md-layover-leave-active{opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,1,1)}.md-layover-child{position:fixed;z-index:100}.md-layover-child--tl{transform-origin:0 0}.md-layover-child--tr{transform-origin:100% 0}.md-layover-child--bl{transform-origin:0 100%}.md-layover-child--br{transform-origin:100% 100%}.md-layover-child--below{transform-origin:50% 0}.md-layover-child--below.md-layover-enter{transform:scaleY(0)}.md-layover-child--below.md-layover-enter.md-layover-enter-active{transform:scaleY(1)}.md-layover--simplified{position:relative}.md-layover-child--simplified{position:absolute}.md-list{background:#fff;user-select:none}.md-list .md-avatar,.md-list .md-icon{flex-shrink:0}.md-list .md-divider{margin-bottom:8px;margin-top:8px}.md-list .md-list:not(.md-list--menu){background:inherit}.md-list-tile{align-items:center;display:flex;padding-left:16px;padding-right:16px;text-decoration:none;transition-duration:.15s;transition-property:background}.md-list-tile--active{background:rgba(0,0,0,.12)}.md-list-item--inset{padding-left:72px}.md-tile-content{flex-grow:1;overflow:hidden}.md-tile-content--left-icon{padding-left:32px}.md-tile-content--left-avatar{padding-left:16px}.md-tile-content--right-padding{padding-right:16px}.md-tile-addon{line-height:1.42857}.md-tile-addon--icon{height:24px}.md-tile-addon--avatar{height:40px}.md-text--theme-primary .md-icon{color:inherit}.md-tile-text--primary,.md-tile-text--secondary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-tile-text--three-lines{white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md-list-tile--three-lines .md-tile-addon{align-self:flex-start}.md-list--nested-1 .md-list-tile{padding-left:72px}.md-list--nested-2 .md-list-tile{padding-left:108px}.md-list-control{flex-grow:1}.md-list-control .md-selection-control-label,.md-list-control .md-selection-control-label>span{width:100%}.md-tile-content--left-button{padding-left:24px}.md-list-control--right{justify-content:flex-end}.md-list-tile--control-left{padding-left:0}.md-list-tile--control-right{padding-right:0}@media screen and (min-width:320px){.md-list{padding-bottom:8px;padding-top:8px}.md-list-tile{height:48px}.md-tile-text--primary{font-size:16px}.md-tile-text--secondary{font-size:14px}.md-list-tile--avatar{height:56px}.md-list-tile--two-lines{height:72px}.md-list-tile--three-lines{height:88px}.md-list-tile--three-lines .md-tile-text--secondary{height:40px}.md-list-tile--three-lines .md-tile-addon{margin-top:14px}}@media screen and (min-width:1025px){.md-list{padding-bottom:4px;padding-top:4px}.md-list-tile{height:40px}.md-tile-text--primary,.md-tile-text--secondary{font-size:13px}.md-list-tile--avatar{height:48px}.md-list-tile--two-lines{height:60px}.md-list-tile--three-lines{height:76px}.md-list-tile--three-lines .md-tile-text--secondary{height:37.14286px}.md-list-tile--three-lines .md-tile-addon{margin-top:12px}.md-tile-addon--icon{height:20px}.md-tile-content--left-icon{padding-left:36px}}.md-list--inline{display:flex;padding:0}.md-media{display:block;height:0;overflow:hidden;padding:0;position:relative}.md-media--16-9{padding-bottom:56.25%}.md-media--4-3{padding-bottom:75%}.md-media--1-1{padding-bottom:100%}.md-media-overlay{background:rgba(0,0,0,.54);bottom:0;position:absolute;width:100%;z-index:1}.md-media-overlay .md-btn,.md-media-overlay .md-text{color:#fff}.md-media-overlay .md-text--secondary{color:hsla(0,0%,100%,.7)}.md-list--menu{min-width:112px}.md-list--menu-restricted{-webkit-overflow-scrolling:touch;overflow-y:auto}.md-list--menu-contained{width:100%}.md-list--menu-below{left:0;top:100%;transform-origin:50% 0}.md-list--menu-tr{right:0;top:0;transform-origin:100% 0}.md-list--menu-tl{top:0;transform-origin:0 0}.md-list--menu-br{right:0;transform-origin:100% 100%}.md-list--menu-bl{transform-origin:0 100%}@media screen and (min-width:1025px){.md-list--menu-cascading{padding-bottom:16px;padding-top:16px}.md-list--menu-cascading .md-list-tile{padding-left:24px;padding-right:24px}.md-list--menu-cascading .md-list-tile:not(.md-list-tile--two-lines):not(.md-list-tile--three-lines){height:32px}.md-list--menu-cascading .md-tile-text--primary{font-size:15px}.md-list--menu-cascading .md-collapser{transform:rotate(-90deg)}.md-list--menu-cascading .md-collapser--flipped{transform:rotate(90deg)}}@media screen and (min-width:320px){.md-list--menu-restricted{max-height:272px}}@media screen and (min-width:1025px){.md-list--menu-restricted{max-height:264px}}@media screen and (min-width:320px){.md-navigation-drawer-content{min-height:calc(100vh - 56px)}}@media screen and (min-width:320px) and (min-aspect-ratio:13/9){.md-navigation-drawer-content{min-height:calc(100vh - 48px)}}@media screen and (min-width:768px){.md-navigation-drawer-content{min-height:calc(100vh - 64px)}.md-title.md-title--persistent-offset{margin-left:216px}}@media screen and (min-width:1025px){.md-title.md-title--persistent-offset{margin-left:226px}}.md-toolbar.md-toolbar--over-drawer{z-index:19}.md-title--drawer-active.md-title--drawer-active{transition-duration:.3s;transition-property:margin-left}.md-navigation-drawer-content{display:block}.md-navigation-drawer-content:focus{outline-style:none}.md-navigation-drawer-content--inactive{margin-left:0}.md-navigation-drawer-content--active{transition-duration:.3s;transition-property:margin-left}.md-navigation-drawer-content--prominent-offset{min-height:calc(100vh - 128px)}.md-title.md-title--permanent-offset{margin-left:276px}.md-cross-fade-enter{opacity:.01;transform:translate3d(0,16px,0)}.md-cross-fade-enter.md-cross-fade-enter-active{opacity:1;transform:translateZ(0);transition-duration:.3s;transition-property:transform,opacity}.md-overlay{background:rgba(0,0,0,.4);bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition-duration:.15s;transition-property:opacity;z-index:16}.md-overlay--active{opacity:1}.md-paper--0{box-shadow:none}@media screen and (min-width:1025px){.md-paper--0-hover{transition-duration:.3s;transition-property:box-shadow}.md-paper--0-hover:hover{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4)}}.md-paper--1{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.md-paper--2{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.4)}.md-paper--3{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4)}.md-paper--4{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4)}.md-paper--5{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.4)}.md-picker-container{position:relative}.md-picker-content-container{background:#fff}.md-picker--inline{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);position:absolute;z-index:12}.md-picker--inline-icon{left:40px}.md-picker-control{padding:0}.md-picker-text{color:hsla(0,0%,100%,.7)}.md-picker-text.md-picker-text>*{color:inherit}.md-picker-text>*{font-weight:inherit;margin:0;transition-duration:.15s;transition-property:color,font}.md-picker-text--active{color:#fff;font-weight:500}.md-dialog--picker{-webkit-overflow-scrolling:touch;max-height:calc(100% - 16px);max-width:calc(100% - 16px);overflow:auto;width:auto}.md-dialog-content--picker{padding:0}.md-picker-header{background:#bdbdbd;padding:24px}@media (orientation:portrait){.md-picker{width:320px}.md-picker .md-picker-header{height:110px}.md-picker .md-time-periods{display:inline-block;padding-left:1em;padding-right:24px}.md-picker .md-picker-content{height:340px}.md-picker .md-display-3{font-size:4.8em;line-height:1}.md-picker .md-calendar-dows{padding-bottom:12px}.md-picker.md-picker--date .md-display-1{display:inline-block}.md-picker .md-calendar-date--btn{height:44px}.md-picker .md-calendar-date--btn:after{height:36px;width:36px}.md-picker .md-clock-face{height:272px;width:272px}.md-picker .md-clock-hand{width:116px}.md-picker .md-clock-hand--inner{width:80px}}@media (orientation:landscape){.md-picker{display:flex;width:560px}.md-picker .md-picker-header{width:180px}.md-picker .md-picker-content{height:280px;width:380px}.md-picker .md-calendar-date--btn{height:35px}.md-picker .md-calendar-date--btn:after{height:32px;width:32px}.md-picker.md-picker--time .md-picker-header{padding-top:93.33333px}.md-picker .md-clock-face{height:244px;width:244px}.md-picker .md-clock-hand{width:102px}.md-picker .md-clock-hand--inner{width:66px}.md-picker .md-time-periods{margin-left:auto;margin-right:2.5em;width:35px}.md-picker .md-display-3{font-size:3.25em}}@media (max-width:320px) and (orientation:portrait){.md-picker{width:304px}}@media (max-height:320px) and (orientation:landscape){.md-picker .md-picker-content{height:256px;width:calc(100vw - 196px)}}.md-picker--date .md-picker-control{display:block}.md-picker-content--calendar{padding-left:12px;padding-right:12px}.md-calendar-controls{align-items:center;display:flex}.md-calendar-controls .md-title{flex-grow:1;font-size:16px;margin-bottom:0;text-align:center}.md-calendar-date{margin:0;width:14.28571%}.md-picker-content--year{-webkit-overflow-scrolling:touch;overflow-y:auto}.md-years{list-style:none;margin:0;padding:0}.md-year{font-size:16px;padding:12px;transition-duration:.15s;transition-property:color,font-size}.md-year:focus:not(.md-year--active){font-size:20px}.md-year--active{font-size:24px;font-weight:500}.md-calendar-date--btn:after{background:#bdbdbd;border-radius:50%;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scale(0);transition-duration:.15s;transition-property:transform;z-index:0}.md-calendar-date--btn-active{font-weight:700}.md-calendar-date--btn-active:after{transform:translateX(-50%) translateY(-50%) scale(1)}.md-calendar-date--date{position:relative;z-index:1}.md-calendar-dow{font-size:13px;font-weight:700;line-height:1.42857}.md-picker-content--clock{padding:24px;padding-bottom:12px}.md-time-periods .md-picker-control{display:block}.md-time-period{font-size:1.14286em;font-weight:500;margin:0;padding:0}.md-clock-face{background:#f5f5f5;border-radius:50%;position:relative}.md-clock-hand{height:2px;position:absolute;transform-origin:0 0;transition-duration:.15s;transition-property:width;z-index:1}.md-clock-hand--active{transition-property:transform,width}.md-clock-hand:after,.md-clock-hand:before{background:#bdbdbd;border-radius:50%;content:"";position:absolute}.md-clock-hand:before{height:6px;left:-3px;top:-2px;width:6px}.md-clock-hand:after{height:36px;right:-16px;top:-18px;transition-duration:.15s;transition-property:background,border,transform;width:36px}.md-clock-hand--minute-hover:after{transform:scale(.4)}.md-clock-time{align-items:center;display:flex;height:36px;justify-content:center;position:absolute;width:36px;z-index:8}.md-clock-time:focus{outline-style:none}.md-progress{display:block;margin-bottom:1em;margin-top:1em}.md-progress--circular-determinate{transition-duration:.15s;transition-property:transform}.md-progress--circular-indeterminate{animation-duration:2.4s;animation-iteration-count:infinite;animation-name:md-circular-progress;animation-timing-function:linear}.md-circular-progress-path{fill:none;stroke:#c62828;stroke-dasharray:187px}.md-circular-progress-path--animated{animation-duration:2.4s;animation-iteration-count:infinite;animation-name:md-circular-progress-dash;animation-timing-function:ease-ine-out;stroke-dashoffset:0}@keyframes md-circular-progress{0%{transform:rotate(0deg)}50%{transform:rotate(135deg)}75%{transform:rotate(450deg)}to{transform:rotate(2turn)}}@keyframes md-circular-progress-dash{0%{stroke-dashoffset:187px}50%{stroke-dashoffset:46.75px}to{stroke-dashoffset:187px}}.md-progress--linear{background:#ff8a80;height:3px;overflow:hidden;position:relative;width:100%}.md-progress--linear-active{background:#c62828}.md-progress--linear-determinate{height:100%;position:absolute;z-index:1}.md-progress--linear-indeterminate:after,.md-progress--linear-indeterminate:before{background:inherit;bottom:0;content:"";position:absolute;top:0;will-change:left,right;z-index:1}.md-progress--linear-indeterminate:before{animation-duration:2.4s;animation-iteration-count:infinite;animation-name:md-linear-indeterminate;animation-timing-function:cubic-bezier(.4,0,.2,1)}.md-progress--linear-indeterminate:after{animation-delay:1.15s;animation-duration:2.4s;animation-iteration-count:infinite;animation-name:md-linear-indeterminate-short;animation-timing-function:cubic-bezier(.4,0,1,1)}.md-progress--linear-query:after,.md-progress--linear-query:before{animation-direction:reverse}@keyframes md-linear-indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes md-linear-indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.md-select-field{cursor:inherit;display:flex;flex-wrap:wrap;user-select:none}.md-select-field .md-divider{width:100%}.md-select-field__toggle{position:relative}.md-select-field--btn.md-select-field--btn{padding:16px 16px 16px 24px}.md-select-field--text-field{pointer-events:none}.md-drop-enter{transform:translate3d(0,-6px,0)}.md-drop-enter.md-drop-enter-active{transform:translateZ(0);transition-duration:.3s;transition-property:transform}@media screen and (min-width:320px){.md-select-field--btn{height:48px}.md-select-field--text-field{height:18px}}@media screen and (min-width:1025px){.md-select-field--btn{height:40px}.md-select-field--text-field{height:15px}}.md-selection-control-container--inline{display:inline-block}.md-selection-control-input{height:0;position:absolute;visibility:hidden;width:0}.md-selection-control-label{align-items:center;display:inline-flex}.md-selection-control-group{border:0}.md-switch-container{align-items:center;display:flex;height:48px}.md-switch-container.md-selection-control-container--inline{display:inline-flex}.md-switch-track{border-radius:8px;flex-shrink:0;height:16px;margin-left:12px;margin-right:12px;position:relative;width:40px}.md-switch-track--on{background:rgba(244,67,54,.5)}.md-switch-track--off{background:rgba(0,0,0,.38)}.md-switch-track--disabled{background:rgba(0,0,0,.12)}.md-switch-thumb{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);border-radius:50%;content:"";display:block;height:24px;position:absolute;transition-duration:.15s;transition-property:background,transform;width:24px}.md-switch-thumb--on{background:#f44336;transform:translate3d(20px,-4px,0)}.md-switch-thumb--off{background:#fafafa;transform:translate3d(-4px,-4px,0)}.md-switch-thumb--disabled{background:#bdbdbd}@media screen and (min-width:320px){.md-selection-control-label{font-size:16px}}@media screen and (min-width:1025px){.md-selection-control-label{font-size:13px}.md-selection-control-container{height:40px}}.md-slider-container{display:flex;flex-wrap:wrap;text-align:left}.md-slider-label{display:block;width:100%}.md-slider-input{height:0;position:absolute;visibility:hidden;width:0}.md-slider-track{background:rgba(0,0,0,.26);content:"";display:block;flex-grow:1;flex-shrink:0;height:2px;margin-bottom:23px;margin-top:23px;position:relative}.md-slider-track-fill{background:#bdbdbd;border:0;height:2px;left:0;margin:0;position:absolute;top:0;transition-duration:.15s;transition-property:width}.md-slider-track-fill--dragging{transition-property:none}.md-slider-thumb{border-radius:50%;content:"";display:inline-block;height:14px;position:absolute;top:-6px;transition-duration:.15s;transition-property:left,transform,background;width:14px;z-index:5}.md-slider-thumb:focus{outline-style:none}.md-slider-thumb--on{background:#bdbdbd}.md-slider-thumb--active{transform:scale(1.5);transform-origin:center}.md-slider-thumb--dragging{transition-property:transform,background}.md-slider-thumb--disabled{background:rgba(0,0,0,.26);transform:scale(.75)}.md-slider-thumb--continuous-off{background:#fff;border:2px solid;border-color:rgba(0,0,0,.26);position:relative}.md-slider-thumb--mask{transform:scale(1)}.md-slider-thumb--mask-inked{background:hsla(0,0%,74%,.15);transform:scale(3.5);z-index:4}.md-slider-thumb--mask-disabled{background:#fff;border-radius:0;transform:scale(1.1);z-index:4}.md-slider-thumb--discrete:after{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid transparent;border-top-left-radius:10px;border-top-right-radius:10px;content:"";height:0;left:0;position:absolute;top:10px;transition-duration:.15s;transition-property:border-top-color,transform;width:0}.md-slider-thumb--discrete-active{top:0;transform:scale(2) translate3d(0,-18px,0)}.md-slider-thumb--discrete-on:after{border-top-color:#bdbdbd}.md-slider-thumb--discrete-off{background:#000}.md-slider-thumb--discrete-active-off{background:#bdbdbd}.md-slider-thumb--discrete-active-off:after{border-top-color:#bdbdbd}.md-slider-thumb--discrete-mask-inked{transform:scale(2.5);transition-duration:.3s}.md-slider-thumb--discrete-mask-leaving{background:hsla(0,0%,74%,.3);transition-duration:.3s;z-index:4}.md-slider-discrete-value{align-items:center;color:#fff;display:flex;font-size:12px;height:28px;justify-content:center;position:absolute;text-align:center;transform:translate3d(-7px,-43px,0);transition-duration:.15s;transition-property:left;width:28px;z-index:6}.md-slider-discrete-tick{background:#000;content:"";height:2px;position:absolute;top:0;z-index:4}.md-slider-discrete-value--dragging{transition-property:none}.md-slider-editor{text-align:right}.md-slider-container .md-text-field-container{margin-left:4px;padding-right:0}@media screen and (min-width:320px){.md-slider-ind{font-size:16px;margin-top:14px}}@media screen and (min-width:1025px){.md-slider-ind{font-size:13px;margin-top:16px}}.md-slider-container .md-icon{margin-bottom:12px;margin-top:12px}.md-slider-ind{display:block;text-align:center}.md-slider-track--ind-left{margin-left:16px}.md-slider-track--ind-right{margin-right:16px}.md-subheader{font-size:14px;font-weight:500;height:48px;line-height:48px;padding-left:16px;padding-right:16px}.md-snackbar-container{position:absolute}.md-snackbar{align-items:center;background:#323232;bottom:0;display:flex;height:48px;justify-content:space-between;position:fixed;transform-origin:0 100%;z-index:20}.md-snackbar--multiline{height:80px}.md-snackbar--toast{color:#fff;margin-bottom:0;padding-left:24px;padding-right:24px}.md-snackbar-enter-active,.md-snackbar-leave-active{transition-duration:.3s;transition-property:transform}.md-snackbar-enter-active *,.md-snackbar-leave-active *{transition-duration:.3s;transition-property:opacity}.md-snackbar-enter.md-snackbar-enter-active{transition-timing-function:cubic-bezier(0,0,.2,1)}.md-snackbar-leave.md-snackbar-leave-active{transition-timing-function:cubic-bezier(.4,0,1,1)}.md-snackbar-enter *,.md-snackbar-leave.md-snackbar-leave-active *{opacity:0}.md-snackbar-enter.md-snackbar-enter-active *,.md-snackbar-leave *{opacity:1}.md-btn--snackbar{padding-left:24px;padding-right:24px}@media screen and (min-width:320px){.md-snackbar{left:0;right:0}.md-snackbar-enter,.md-snackbar-leave.md-snackbar-leave-active{transform:translate3d(0,100%,0)}.md-snackbar-enter.md-snackbar-enter-active,.md-snackbar-leave{transform:translateZ(0)}.md-snackbar--action{padding-right:0}.md-btn--snackbar-floating{transition:bottom .3s,background .15s,box-shadow .15s,color .15s;will-change:bottom}.md-btn--snackbar-floating-adjust{bottom:64px}.md-btn--snackbar-floating-multiline-adjust{bottom:96px}}@media screen and (min-width:768px){.md-snackbar{border-radius:2px;left:50%;max-width:568px;min-width:288px;right:auto;transform:translate3d(-50%,0,0)}.md-snackbar-enter,.md-snackbar-leave.md-snackbar-leave-active{transform:translate3d(-50%,100%,0)}.md-snackbar-enter.md-snackbar-enter-active,.md-snackbar-leave{transform:translate3d(-50%,0,0)}.md-snackbar--action{padding-right:24px}.md-btn--snackbar-floating-adjust,.md-btn--snackbar-floating-multiline-adjust{bottom:24px}}.md-tabs{display:flex;position:relative}.md-tabs.md-background--primary .md-ink{background:hsla(0,0%,100%,.12)}.md-tabs--centered{justify-content:center}.md-tabs--centered .md-tab,.md-tabs--pagination .md-tab{flex-grow:0}.md-tab{align-items:center;color:inherit;display:flex;flex-direction:column;flex-grow:1;flex-shrink:0;height:48px;justify-content:flex-end;overflow:hidden;padding-bottom:20px;padding-left:12px;padding-right:12px;position:relative;text-align:center;text-decoration:none;text-transform:uppercase}.md-tab--multiline{font-size:12px;padding-bottom:12px}.md-tab--icon{height:72px;padding-bottom:16px}.md-tab--inactive{color:hsla(0,0%,100%,.7)}.md-tab-indicator{background:#c62828;bottom:0;content:"";height:2px;left:0;position:absolute}.md-btn--tab-overflow{bottom:2px;position:absolute}.md-btn--tab-overflow--icon{bottom:8px}.md-btn--tab-overflow-left{left:6px;z-index:3}.md-btn--tab-overflow-right{right:12px}.md-menu--tab{margin-right:100%}.md-menu--tab .md-icon{color:inherit}.md-menu--tab .md-tab{padding-top:12px}.md-icon--tab{color:inherit;margin-bottom:10px}.md-tab-toolbar{width:100%}.md-tabs-fixed-container{left:0;position:fixed;right:0;top:0;z-index:15}.md-tabs-content--offset{margin-top:48px}.md-tabs-content--offset-icon{margin-top:72px}.md-tabs-content--offset-toolbar-prominent{margin-top:176px}.md-tabs-content--offset-toolbar-prominent-icon{margin-top:200px}@media screen and (min-width:320px){.md-toolbar~.md-tabs{margin-top:-1px}.md-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.md-tab{max-width:calc(100vw - 56px);min-width:72px}.md-tab-label{font-size:14px;font-weight:500;line-height:14px}}@media screen and (min-width:320px) and (max-aspect-ratio:13/9){.md-tabs-content--offset-toolbar{margin-top:104px}.md-tabs-content--offset-toolbar-icon{margin-top:128px}}@media screen and (min-width:320px) and (min-aspect-ratio:13/9){.md-tabs-content--offset-toolbar{margin-top:96px}.md-tabs-content--offset-toolbar-icon{margin-top:120px}}@media screen and (min-width:768px){.md-tabs-content--offset-toolbar{margin-top:112px}.md-tabs-content--offset-toolbar-icon{margin-top:136px}}@media screen and (min-width:1025px){.md-toolbar~.md-tabs{margin-top:0}.md-tabs{overflow:visible}.md-tab{max-width:264px;min-width:160px;padding-left:24px;padding-right:24px}.md-tab-label{font-size:13px;line-height:13px}.md-icon--tab{margin-bottom:12px;margin-top:2px}}.md-text-field-container{position:relative}.md-text-field-container--input{line-height:1.15}.md-text-field-container--input-block{display:flex}.md-text-field-container--input-block .md-text-field-message-container{flex-shrink:0}.md-text-field-container--multiline,.md-text-field-multiline-container{transition-duration:.15s;transition-property:height}.md-text-field-multiline-container{position:relative}.md-text-field-container--multiline{display:flex;flex-direction:column}.md-text-field{background:none;border:0;line-height:inherit;padding:0;width:100%}.md-text-field:placeholder{color:rgba(0,0,0,.54)}.md-text-field:-moz-placeholder,.md-text-field::-moz-placeholder{color:rgba(0,0,0,.54)}.md-text-field:-ms-input-placeholder{color:rgba(0,0,0,.54)}.md-text-field::-webkit-input-placeholder{color:rgba(0,0,0,.54)}.md-text-field:focus{outline-style:none}.md-text-field[type=search]{-webkit-appearance:textfield}.md-text-field:-webkit-autofill,.md-text-field:-webkit-autofill:focus{box-shadow:inset 0 0 0 50px #fff}.md-text-field--margin{margin-top:13px}.md-text-field[disabled]:placeholder{color:rgba(0,0,0,.38)}.md-text-field[disabled]:-moz-placeholder,.md-text-field[disabled]::-moz-placeholder{color:rgba(0,0,0,.38)}.md-text-field[disabled]:-ms-input-placeholder{color:rgba(0,0,0,.38)}.md-text-field[disabled]::-webkit-input-placeholder{color:rgba(0,0,0,.38)}.md-text-field--multiline{padding-bottom:0;padding-top:0;resize:none}.md-text-field--multiline-mask{overflow:hidden;position:absolute;visibility:hidden}.md-divider--text-field{margin-top:7px;overflow:visible}.md-divider--text-field:after{background:#bdbdbd;content:"";display:block;height:2px;transition-duration:.15s;transition-property:width;width:0}.md-divider--text-field-expanded:after{width:100%}.md-divider--text-field-error,.md-divider--text-field-error:after{background:#f44336}.md-divider--expand-from-left:after{left:0}.md-divider--expand-from-center:after{margin:auto}.md-divider--expand-from-right:after{right:0}.md-floating-label{cursor:text;line-height:1;pointer-events:none;position:absolute;top:0;transition-duration:.15s;transition-property:transform,font-size,color;white-space:nowrap}.md-floating-label--floating{font-size:12px}.md-floating-label--icon-offset{left:40px}@media screen and (min-width:1025px){.md-floating-label--icon-offset{left:36px}}.md-text-field-message-container{display:flex;font-size:12px;justify-content:space-between}.md-text-field-message-container--count-only{justify-content:flex-end}.md-text-field-message-container--left-icon-offset{padding-left:40px}.md-text-field-message-container--right-icon-offset{padding-right:40px}.md-text-field-message{color:inherit;flex-grow:1;line-height:1.42857;transition-duration:.15s;transition-property:opacity;white-space:normal}.md-text-field-message--counter{display:block;flex-grow:0;flex-shrink:0;padding-left:16px}.md-text-field-message--inactive{opacity:0}.md-text-field-message--active{opacity:1}.md-text-field-divider-container{display:inline-block}.md-text-field-divider-container--grow{display:block;flex-grow:1}.md-text-field-divider-container+.md-text-field-icon,.md-text-field-icon+.md-text-field-divider-container{margin-left:16px}.md-text-field-icon-container{align-items:flex-end;display:flex;width:100%}.md-text-field-container--input-block .md-text-field-icon-container{align-items:center}.md-text-field-inline-indicator{position:absolute;right:0}.md-text-field--inline-indicator{width:calc(100% - 24px)}.md-password-btn{background:transparent;border:0;height:24px;padding:0;width:24px}.md-password-btn:not(.md-password-btn--focus):focus{outline-style:none}.md-password-btn .md-icon{color:inherit}.md-password-btn--active:before{background:rgba(0,0,0,.54)}.md-password-btn--invisible:after,.md-password-btn--invisible:before{content:"";display:block;height:2px;position:absolute;top:50%;width:100%}.md-password-btn--invisible:before{transform:translate3d(-1px,-50%,0) rotate(45deg)}.md-password-btn--invisible:after{background:#fafafa;transform:translate3d(1px,-50%,0) rotate(45deg)}@media screen and (min-width:320px){.md-text-field-container--input-block{padding-bottom:20px;padding-top:20px}.md-text-field-container--multiline-block{margin-bottom:20px;margin-top:20px}.md-text-field-container--padded-block{padding-left:20px;padding-right:20px}.md-text-field{font-size:16px}.md-text-field--floating-margin{margin-top:37px}.md-divider--text-field{margin-bottom:8px}.md-floating-label--inactive{transform:translate3d(0,39px,0)}.md-floating-label--inactive-sized{font-size:16px}.md-floating-label--floating{transform:translate3d(0,16px,0)}.md-text-field-icon--positioned{margin-bottom:13.5px}.md-text-field-inline-indicator{top:9px}.md-text-field-inline-indicator--floating{top:34px}.md-text-field-inline-indicator--block{top:17px}.md-floating-label--inactive-title{transform:translate3d(0,42px,0)}}@media screen and (min-width:1025px){.md-text-field-container--input-block{padding-bottom:16px;padding-top:16px}.md-text-field-container--multiline-block{margin-bottom:16px;margin-top:16px}.md-text-field-container--padded-block{padding-left:16px;padding-right:16px}.md-text-field{font-size:13px}.md-text-field--floating-margin{margin-top:33px}.md-divider--text-field{margin-bottom:4px}.md-floating-label--inactive{transform:translate3d(0,33px,0)}.md-floating-label--inactive-sized{font-size:13px}.md-floating-label--floating{transform:translate3d(0,12px,0)}.md-text-field-icon--positioned{margin-bottom:9.5px}.md-password-btn.md-password-btn{height:20px;width:20px}.md-text-field-message-container--left-icon-offset{padding-left:36px}.md-text-field-message-container--right-icon-offset{padding-right:36px}.md-text-field-inline-indicator{top:9px}.md-text-field-inline-indicator--floating{top:30px}.md-text-field-inline-indicator--block{top:12px}.md-floating-label--inactive-title{transform:translate3d(0,36px,0)}}.md-text-field--title{font-size:34px}.md-floating-label--title{transition-duration:.25s}.md-floating-label--inactive-title{font-size:34px}@media screen and (min-width:320px){.md-toolbar-relative{margin-top:56px}.md-toolbar-relative--padding{padding-top:56px}.md-toolbar{height:56px}.md-btn--toolbar{margin-bottom:4px;margin-top:4px}.md-toolbar .md-btn--text{margin-bottom:10px;margin-top:10px}.md-toolbar--action-left{margin-left:4px}.md-toolbar--action-right{margin-right:4px}.md-title--toolbar{line-height:56px;margin-left:20px}.md-title--toolbar-offset{margin-left:72px}.md-select-field--toolbar.md-select-field--toolbar{margin-bottom:6px;margin-top:6px}}@media screen and (min-width:320px) and (min-aspect-ratio:13/9){.md-toolbar-relative{margin-top:48px}.md-toolbar-relative--padding{padding-top:48px}.md-toolbar{height:48px}.md-toolbar--action-left{margin-left:4px}.md-toolbar--action-right{margin-right:4px}.md-title--toolbar{line-height:48px;margin-left:20px}.md-title--toolbar-offset{margin-left:72px}}@media screen and (min-width:768px){.md-toolbar-relative{margin-top:64px}.md-toolbar-relative--padding{padding-top:64px}.md-toolbar{height:64px}.md-btn--toolbar{margin-bottom:8px;margin-top:8px}.md-toolbar .md-btn--text{margin-bottom:14px;margin-top:14px}.md-toolbar--action-left{margin-left:12px}.md-toolbar--action-right{margin-right:12px}.md-title--toolbar{line-height:64px;margin-left:20px}.md-title--toolbar-offset{margin-left:80px}.md-select-field--toolbar.md-select-field--toolbar{margin-bottom:10px;margin-top:10px}}@media screen and (min-width:768px) and (min-aspect-ratio:13/9){.md-select-field--toolbar.md-select-field--toolbar{margin-bottom:12px;margin-top:12px}}@media screen and (min-width:1025px){.md-toolbar--action-left{margin-left:14px}.md-toolbar--action-right{margin-right:14px}.md-title--toolbar{margin-left:26px}.md-title--toolbar-offset{margin-left:80px}.md-btn--toolbar{margin-bottom:12px;margin-top:12px}.md-toolbar .md-btn--text{margin-bottom:16px;margin-top:16px}}.md-toolbar{display:flex}.md-toolbar--fixed{left:0;position:fixed;right:0;top:0;z-index:15}.md-toolbar--inset{margin:8px;max-width:calc(100vw - 16px)}.md-toolbar--text-white{color:#fff}.md-toolbar--text-white .md-btn,.md-toolbar--text-white .md-icon,.md-toolbar--text-white .md-select-field,.md-toolbar--text-white .md-text-field,.md-toolbar--text-white .md-title--toolbar{color:inherit}.md-toolbar--text-white :placeholder{color:hsla(0,0%,100%,.7)}.md-toolbar--text-white :-moz-placeholder,.md-toolbar--text-white ::-moz-placeholder{color:hsla(0,0%,100%,.7)}.md-toolbar--text-white :-ms-input-placeholder{color:hsla(0,0%,100%,.7)}.md-toolbar--text-white ::-webkit-input-placeholder{color:hsla(0,0%,100%,.7)}.md-toolbar--themed{background:#f5f5f5}.md-toolbar--themed .md-title--toolbar{color:rgba(0,0,0,.87)}.md-toolbar--prominent{height:128px}.md-title--toolbar{color:rgba(0,0,0,.87);margin-bottom:0;transition-duration:.15s;transition-property:transform}.md-title--toolbar-prominent{position:absolute;transform:translate3d(0,64px,0)}.md-toolbar-relative--prominent{margin-top:128px}.md-toolbar-relative--prominent-padding{padding-top:128px}.md-toolbar .md-text-field-container{padding-bottom:0;padding-top:0}.md-toolbar .md-text-field--toolbar{font-size:20px}.md-toolbar .md-autocomplete,.md-toolbar .md-autocomplete-container{height:100%}@media screen and (min-width:320px){.md-tooltip{font-size:14px;padding:9px 16px}.md-tooltip--top{top:-24px}.md-tooltip--right{right:-24px}.md-tooltip--bottom{bottom:-24px}.md-tooltip--left{left:-24px}}@media screen and (min-width:1025px){.md-tooltip{font-size:10px;padding:6px 8px}.md-tooltip--top{top:-14px}.md-tooltip--right{right:-14px}.md-tooltip--bottom{bottom:-14px}.md-tooltip--left{left:-14px}}.md-tooltip-container{height:100%;left:0;pointer-events:none;position:absolute;top:0;user-select:none;width:100%;z-index:1}.md-tooltip{background:#616161;color:#fff;display:block;font-weight:500;opacity:.9;outline-style:none;position:absolute;white-space:nowrap}.md-tooltip--active{transition-duration:.15s;transition-property:opacity,transform}.md-tooltip--enter,.md-tooltip--leave-active{opacity:0}.md-tooltip--enter-active{opacity:.9;transition-timing-function:cubic-bezier(0,0,.2,1)}.md-tooltip--leave-active{transition-timing-function:cubic-bezier(.4,0,1,1)}.md-tooltip--horizontal{left:50%;transform:translate3d(-50%,0,0)}.md-tooltip--vertical{top:50%;transform:translate3d(0,-50%,0)}.md-tooltip--top-active{transform:translate3d(-50%,-100%,0)}.md-tooltip--right-active{transform:translate3d(100%,-50%,0)}.md-tooltip--bottom-active{transform:translate3d(-50%,100%,0)}.md-tooltip--left-active{transform:translate3d(-100%,-50%,0)}.md-text{color:rgba(0,0,0,.87)}.md-text--secondary{color:rgba(0,0,0,.54)}.md-text--disabled{color:rgba(0,0,0,.38)}.md-text--theme-primary{color:#bdbdbd}.md-text--theme-secondary{color:#c62828}.md-text--error{color:#f44336}.md-text--inherit.md-text--inherit{color:inherit}.md-ink--primary .md-ink{background:hsla(0,0%,74%,.26)}.md-ink--secondary .md-ink{background:rgba(198,40,40,.26)}.md-background{background:#fafafa}.md-background--card{background:#fff}.md-background--primary{background:#bdbdbd;color:#fff}.md-background--secondary{background:#c62828;color:#fff}@media screen and (min-width:1025px){.md-background--primary-hover:hover{background:hsla(0,0%,74%,.9)}.md-background--secondary-hover:hover{background:rgba(198,40,40,.9)}}@media (max-width:359px){div .mobile-fix{padding-left:0;padding-right:0}}

VHDL i2s transmitter

This summer I have been reading a book on VHDL 2008: "Effective Coding with VHDL" from Ricardo Jasinski. Although not for beginners I can recommend this book to anyone with some knowledge of FPGA's and general programming skills. To get some practical experience I obtained two dev kits:

  • A Zedboard dev kit containing an Xilinx Zync
  • A Nexys4-DDR with Xylinx Artix-7 from Digilent
  • @@ -160,6 +160,7 @@

    Counters

    The counters are relatively simple. The count up to the divider value and then toggle a clock. Furthermore the moment LRCK toggles is also used to set the position of SDIN to either 0 or SAMPLE_WIDTH (24).

    +

    6-10-2018: There is a bug in the code below that allows it be simulated correctly. Synthesis however results in a bit shift, resulting in garbled audio output. The updated code is in the i2s_sender repo

         if MCLK_in'event and MCLK_in = '1' then -- Rising clock edge
             -- MCLK == 18.4320 Mhz
    @@ -223,21 +224,23 @@ 

Top level component

-

For testing the top level component connects a square waveform generator to the i2ssender. The i2ssender output is connected to the FPGA output pins. If the PMOD modules is plugged into the JA port. The following contraints can be used for the Nexys 4 DDR dev kit.

-

setproperty -dict {PACKAGEPIN C17 IOSTANDARD LVCMOS33} [getports MCLKout] -setproperty -dict {PACKAGEPIN D18 IOSTANDARD LVCMOS33} [getports LRCKout] -setproperty -dict {PACKAGEPIN E18 IOSTANDARD LVCMOS33} [getports SCLKout] -setproperty -dict {PACKAGEPIN G17 IOSTANDARD LVCMOS33} [getports SDINout]

+

For testing the top level component connects a square waveform generator to the i2s_sender. The i2s_sender output is connected to the FPGA output pins. If the PMOD modules is plugged into the JA port. The following contraints can be used for the Nexys 4 DDR dev kit.

+
+
set_property -dict {PACKAGE_PIN C17 IOSTANDARD LVCMOS33} [get_ports MCLK_out]
+set_property -dict {PACKAGE_PIN D18 IOSTANDARD LVCMOS33} [get_ports LRCK_out]
+set_property -dict {PACKAGE_PIN E18 IOSTANDARD LVCMOS33} [get_ports SCLK_out]
+set_property -dict {PACKAGE_PIN G17 IOSTANDARD LVCMOS33} [get_ports SDIN_out]
+

Debugging

-

During simulation it is helpfull to print out all the calculated values to make sure that they are correct. It is also possible to view them in Vivado simulation objects pane. I added the following to i2ssender to print out the values. +

During simulation it is helpfull to print out all the calculated values to make sure that they are correct. It is also possible to view them in Vivado simulation objects pane. I added the following to i2s_sender to print out the values.
debug : process (dummy) is begin --print the dividers when in simulation mode -report "MCLK
FREQ hz " & integer'image(MCLKFREQ); -report "LRCKFREQ hz " & integer'image(LRCKFREQ); -report "SCLKFREQ hz " & integer'image(SCLKFREQ); -report "SAMPLEWIDTH " & integer'image(SAMPLE_WIDTH);

+report "MCLKFREQ hz " & integer'image(MCLKFREQ); +report "LRCKFREQ hz " & integer'image(LRCKFREQ); +report "SCLKFREQ hz " & integer'image(SCLKFREQ); +report "SAMPLEWIDTH " & integer'image(SAMPLEWIDTH);

comment

Comments

arrow_back

Previous

VHDL i2s transmitter

Next

VHDL i2s transmitter
arrow_forward
VHDL sine wave oscillator | Dinne's blog

VHDL sine wave oscillator

In my last article a VHDL I2S transmitter was presented which allows one to playback arbitrary wave data. Eventually the goal is to develop an additive synthesis engine. In this article the goal is being able to generate a sine wave.

+

As a starting point I use this VHDL sine generator sub component. This generator is nicely parametrized. You can specify the number of bits in the output resolution as well as the phase input.

+

The additive synthesis engine which is to be developed needs to be able to control the frequency of the oscillator. I am not sure yet on the required frequency resolution. I will pick a reasonable number and keep the formulas general so that the value can be easily changed later. The challenge in the development of this oscillator is to implement the following features:

+
    +
  • Configurable design parameter 'frequency resolution' which allows specifying how precisely the frequency can be controlled.
  • +
  • Real time configurable parameter 'frequency', value between 1 Hz and half the sample rate.
  • +
  • No floating point
  • +
  • No general divisions
  • +
  • Where possible use bit shifts to do multiplication / division.
  • +
+

Phase step

+

Theory

+

The used sine wave generator sub component has two design parameters:

+
    +
  1. Amplitude resolution: 24 bit
  2. +
  3. Phase space size. This value has to be a power of two and determines the phase resolution as well as frequency resolution. Given a target frequency resolution the minimum required phase space bit width can be determined.
  4. +
  5. Each sample a small step will be made to advance the phase of the sine. This phase step is a rational number and can be represented by a numerator and divisor. The algorithm will calculate the divisor and numerator.
  6. +
+

Step three has to be performed whenever the frequency is changed while the design is 'running'. Step two can be performed design-time. The next steps calculate the static design-time parameters. In the formulas below I use '->' to show its value given a sample rate and target frequency resolution.

+

Design time constants

+
+
Frequency resolution: 
+target_frequency_resolution = 0.01 Hz
+
+Sample Rate:          
+sample_rate       = 48000 Hz
+max_frequency     = sample_rate / 2    
+nax_frequency    -> 24000 Hz
+Phase space size:
+phase_space_size  = sample_rate / target_frequency_resolution 
+phase_space_size -> 4800000
+
+

The sine generator sub component requires the phase space to be a power of two. As 'P' is the minimum required phase space size it is required to round up.

+
+
Power of 2 phase space size: 
+power2_phase_space_bits =  ceiling(log(phase_space_size) / log(2))      
+power2_phase_space_bits -> 23 bits
+power2_phase_space_size -> 2^23 -> 8388608
+
+

This results in a slightly better frequency resolution:

+
+
Desired frequency resolution:
+target_frequency_resolution = 0.01 Hz
+
+Quantized frequency resolution:
+quantized_frequency_resolution =  sample_rate / power2_phase_space_size
+quantized_frequency_resolution -> 0.0057220459
+
+

The reciprocal of the frequency resolution is the phase step. At each played back sample at 48 kHz sample rate the phase is increased by the phase step.

+
+
Phase step:
+phase_step  = 1 / quantized_frequency_resolution
+phase_step -> 174.7626666667
+phase_step_bits = log2(phase_step)
+phase_step_bits = 7.449 bits
+assert: sample_rate * phase_step == power2_phase_space_size
+
+

The phase step needs to be rounded to a power of two so that it can be easily used in integer division and multiplication. It is possible to round down if the resulting frequency resolution is still above the target. If not round up:

+
+
power2_phase_step_bits =  floor(log(phase_step)/log(2))      
+power2_phase_step_bits -> 7 bits
+power2_phase_step      -> 128
+frequency resolution would be: 1/128 -> 0.0078125
+
+power2_phase_step_bits =  ceil(log(phase_step)/log(2))      
+power2_phase_step_bits -> 8 bits
+power2_phase_step      -> 256
+frequency resolution would be: 1/256 -> 0.00390625
+
+

With 7 bits the frequency resolution is still above the target. At run-time the frequency of the oscillator can be set by as an integer value by multiplying the target frequency with the scaling factor. For example to get 440 Hz, the frequency parameter of the oscillator will be set to 440 * 128 = 56320.

+

The combinations of the sample_rate and power2_phase_space_size vales imply a non-integer phase_step value (174.76...). The phase_step value needs to be scaled up to keep accuracy when using it in division. To determine the number of bits in the scaling factor first the determine the maximum error introduced by quantisation.

+
+
scaled_phase_step          = trunc(phase_step * phase_step_scaling_factor)
+quantised_phase_step_error = phase_step - scaled_phase_step / phase_step_scaling_factor 
+maximum_phase_error        = maximum_frequency * quantised_phase_step_error
+
+

This maximum_error must be below 1. So the quantised_phase_step_error must be lower then:

+
+
max_quantised_phase_step_error       = 1 / maximum_frequency
+max_quantised_phase_step_error      -> 0.00004166...
+max_quantised_phase_step_error_bits -> 14.5507... bits
+
+

This implies the required number of bits in the scaled phase step:

+
+
scaled_phase_step_bits          = ceiling( phase_step_bits + max_quantised_phase_step_error_bits)
+scaled_phase_step_bits         -> 22
+
+

For the phase step scaling factor there are two options. Choose the lowest number of bits that still results in an error lower than one.

+
+
phase_step_scaling_factor_bits  = ceiling ( max_quantised_phase_step_error_bits ) 
+phase_step_scaling_factor_bits -> 15
+phase_step_scaling_factor      -> 2^15 -> 32768
+scaled_phase_step               = trunc(phase_step * phase_step_scaling_factor)
+scaled_phase_step              -> 5726623
+
+phase_step_error  = phase_step - scaled_phase_step / phase_step_scaling_factor 
+phase_step_error -> 0.000001871744786
+
+max_error         = maximum_frequency * phase_step_error 
+max_error        -> 0.04492187486 must be <1
+
+

Or

+
+
phase_step_scaling_factor_bits  = floor ( max_quantised_phase_step_error_bits ) 
+phase_step_scaling_factor_bits -> 14
+phase_step_scaling_factor      -> 2^14 -> 16384
+scaled_phase_step               = trunc(phase_step * phase_step_scaling_factor)
+scaled_phase_step              -> 2863311
+
+phase_step_error  = phase_step - scaled_phase_step / phase_step_scaling_factor 
+phase_step_error -> 0.00003238932291
+
+max_error         = maximum_frequency * phase_step_error 
+max_error        -> 0.7773437499 must be <1
+
+

So 14 bits can be used for the phase step scaling factor.

+

Run time parameters

+

Let's say the frequency to generate is 440.0078125 Hz. Then the input scaled frequency would be:

+
+
frequency_scaled = frequency * power2_phase_step
+frequency_scaled -> 56321
+
+

If it would be possible to use floating point arithmetic the phase step would be:

+
+
phase_step_fp  = ( power2_phase_space_size / sample_rate ) * frequency
+
+

or rewritten:

+
+
phase_step_fp -> ( power2_phase_space_size * frequency ) / sample_rate
+phase_step_fp -> 76896.93867
+
+

The integer version of phase_step_fp consists of phase_step_decimal and phase_step_numerator. Phase_step_decimal will give the decimal part (in the example 76895) while the fraction (0.57333...) will be specified as a numerator, divisor pair (a rational number). The decimal part is calculated as follows:

+
+
scaled_phase  = frequency_scaled * scaled_phase_step
+scaled_phase -> 161264538831
+
+decimal_divider_bits  = power2_phase_step_bits + phase_step_scaling_bits
+decimal_divider_bits -> 21
+phase_step_decimal    = shift_right ( scaled_phase, decimal_deivider_bits)
+phase_step_decimal   -> 76896
+
+

Generally the phase_step_decimal will equal the decimal part of the phase_step_fp. In corner cases when the fractional part of phase_step_fp is near zero the decimal part will be off by one. For example with a scaled frequency of 440573 (3441.97 Hz) the actual phase step will be 601529.0027. However the quantised phase step will be floor(601528.8912) = 601528 which is off by one.

+

Now the fractional part is calculated as a rational value. The value consists of a numerator and divisor. Recall the calculation of phase_step_fp:

+
+
phase_step_fp -> ( power2_phase_space_size * frequency ) / sample_rate
+
+

This value can be converted to a rational number:

+
+
phase_step_divisor  = sample_rate
+phase_step_divisor -> 48000
+
+using frequency_scaled (an integer value) instead of the floating point frequency:
+
+phase_step_numerator_incl_decimal  = ( power2_phase_space_size * frequency_scaled ) / power2_phase_step
+phase_step_numerator_incl_decimal  = shift_right ( power2_phase_space_size * frequency_scaled, power2_phase_step_bits)
+phase_step_numerator_incl_decimal -> 3691053056
+
+

The fact that phase_step_fp is larger than one implies that the numerator is larger than the divisor. To get the fractional part without the decimal part the decimal value is subtracted: +
+phasestepnumerator = phasestepnumeratorincldecimal - phasestepdecimal * samplerate +phasestep_numerator -> 45056

+

Assert that the rational number is indeed the fractional part of phase_step_fp:

+
+
phase_step_fp -> 76896.93867
+phase_step_numerator / phase_step_divisor -> 0.93867
+
+

In the earlier described corner cases it could be that the numerator is still larger than the divider after subtraction of the decimal part. It will however always be smaller than 2 * divider. So when the numerator is larger than the divider it is possible to simply subtract the divider once to get the numerator corresponding to the fractional part. In that case the phase_step_decimal value is increased by one.

+

The sine phase step calculations in this section can also be found on Google sheets.

+

VHDL Design

+

In this article I focus on generating a single sine wave. The following will be tested:

+
    +
  • Setting the sine generator to a certain frequency.
  • +
  • Updating the frequency : This should not introduce noticeable audio 'glitches'.
  • +
+

The top level design simply connects an oscillator (the sine_wave component) to the I2S_sender. Two buttons enable toggling sine wave frequency. The sine_wave component takes a frequency as its input and presents the sine wave samples at its output.

+

Interface

+

The sine wave generator has the following interface:

+
+
entity sine_wave is
+    Port ( resetn : std_logic;
+           MCLK_in : in std_logic; -- Master clock of the I2S Sender
+           
+           freq_in_ce: in std_logic; -- if '1' freq_in will be sampled on rising edge
+           freq_in: in frequency_t; -- the scaled frequency of the sine
+
+           wave_out : out sample_t -- the generated output samples
+           );
+end sine_wave;
+
+

Architecture

+

The architecture consists of the sincos generator sub component and three processes:

+
    +
  • +

    Calculating the sample clock. Each tick the sine phase will need to be updated.

    +
  • +
  • +

    Accepting new frequency updates and update the phase step value. Calculating the phase step value is accomplished through a procedure

    +
    +
    procedure Calculate_Phase_Step(
    +    constant frequency_scaled: in frequency_t;
    +    variable phase_step: out phase_step_t) 
    +
    +
  • +
  • +

    Generate sine samples by advancing the phase with the phase step. The phase value is presented to the sincos generator sub component. Updating the phase is again accomplished with a procedure. The implementation will use the decimal phase step and fractional phase step values. Each sample the phase will be increased with the decimal part: phasestepdecimal. Each sample the phasestepnumerator will be added to a counter. When the counter value is above the phasestepdivisor (the sample rate) value the phase will be advanced by one and the counter is decreased by the divisor.

    +
    +
    type phase_step_t is record 
    +    decimal : phase_step_decimal_t;
    +    fraction : phase_step_fraction_t; -- fractional / sample_rate
    +end record;
    +
    +type phase_state_t is record
    +    step : phase_step_t;
    +    -- the decimal part, added each step
    +    current: phase_t; 
    +    -- the fractional part, if it overflows (above sample_rate)
    +    -- then the it is reset and current is increased by one
    +    current_fraction: phase_fraction_t; 
    +end record;
    +        
    +procedure Advance_Phase(
    +    variable phase: inout phase_state_t)
    +
    +
  • +
+

Testing

+

Two testbenches have been setup.

+

Testing phase step calculation.

+

The 'sine_sim' tests the calculation of the design time constants and calculating the phase step decimal and fractional values. This is fairly simple:

+
    +
  1. calculate the real phase step using standard floating point arithmetic.
  2. +
  3. calculate the same value using the phase step calculation algorithm.
  4. +
  5. compare the values: if the difference is too large report an error.
  6. +
+

The phase step will be added to the phase each time a sample is generated. A test is performed to check that the phase is updated correctly:

+
    +
  1. Advance the phase a number of times.
  2. +
  3. Update a version of the phase given the phase step as a floating point value.
  4. +
  5. Update a version of the phase given the phase step as a decimal and fractional part.
  6. +
  7. Each iteration compare if the difference between both both version of the phase is small.
  8. +
+

Testing the sine wave generator

+

The simulation sets up a sine wave generator and configures its frequency to 440 Hz. The output samples are shown in Vivado's wave view. You can configure the way a signal is presented in the wave view. By showing the wave output as an analog signal with radix 'signed decimal' a nice sine wave is readily visible. Two markers were added to check the frequency of the sine wave. The check indeed shows that the sine wave has a frequency of 440 Hz.

+

+ + + + + 440 Hz sine wave + + + + +

+

Final thoughts

+
    +
  • +

    It would be interesting to check if the fixed point value types in VHDL 2008 could simplify things. Getting the fixed point package working in Vivado seemed a hassle.

    +
  • +
  • +

    Using an embedded bit scope (Xilinx ila) helped in finding a bug in the i2s_sender. It was simulating correctly, but synthesized with an bug. One of the steps setting up an ila is marking signals to be debugged with an attribute 'mark_debug'. I was able to enable and disable debugging using a generic variable:

    +
    +
    attribute mark_debug of signal_name : signal is boolean'image(debug_generic_var)
    +
    +
  • +
  • +

    In VHDL setting a constant to a value given a condition is not straight forward. You can use a function to return a value based on a condition and use that function to set the constant:

    +
    +
    function sel(Cond: BOOLEAN; If_True, If_False: real) return real is
    +begin
    +   if (Cond = TRUE) then
    +       return(If_True);
    +   else
    +       return(If_False);
    +   end if;
    +end function sel; 
    +
    +constant X : real := sel( TRUE, 1.0, 2.0); -- will set X to 1.0 
    +
    +
  • +
+

The VHDL code can be found in the i2s_sender repository.

comment

Comments

arrow_back

Previous

VHDL sine wave oscillator

Next

VHDL sine wave oscillator
arrow_forward
\ No newline at end of file