From b2632deb66b42f3b91634906694d50e3f4b631f6 Mon Sep 17 00:00:00 2001 From: pazport <46929183+pazport@users.noreply.github.com> Date: Wed, 20 Jul 2022 01:02:45 +0100 Subject: [PATCH] . --- .dockerignore | 11 - .github/FUNDING.yml | 3 - .github/ISSUE_TEMPLATE/BUG-REPORT.yml | 103 - .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml | 31 - .github/ISSUE_TEMPLATE/config.yml | 8 - .github/dependabot.yml | 15 - .github/label-actions.yml | 48 - .github/pull_request_template.md | 26 - .github/workflows/issues-stale.yml | 48 - .github/workflows/issues.yml | 15 - .github/workflows/publish-docker.yml | 115 - .github/workflows/publish-installers.yml | 189 - .github/workflows/publish-snap.yml | 94 - .github/workflows/pull-requests.yml | 28 - .gitignore | 100 - API.md | 3 - CHANGELOG.md | 2527 ----- CONTRIBUTING.md | 41 - Dockerfile | 28 - LICENSE | 674 -- PlexPy.py | 24 - README.md | 163 - Tautulli.py | 334 - contrib/clean_pyc.bat | 11 - contrib/clean_pyc.sh | 11 - contrib/downgrade.sh | 32 - data/interfaces/default/app_import.html | 201 - data/interfaces/default/base.html | 514 - data/interfaces/default/config_import.html | 138 - .../default/configuration_table.html | 123 - .../default/css/bootstrap-wizard.css | 188 - .../default/css/bootstrap3/bootstrap.css | 6848 ------------- .../default/css/bootstrap3/bootstrap.css.map | 1 - .../default/css/bootstrap3/bootstrap.min.css | 5 - .../default/css/dataTables.bootstrap.min.css | 1 - .../default/css/dataTables.colVis.css | 131 - .../default/css/font-awesome.all.min.css | 5 - .../default/css/font-awesome.v4-shims.min.css | 5 - data/interfaces/default/css/jquery-ui.min.css | 7 - .../default/css/jquery.dataTables.css | 455 - .../default/css/jquery.scrollbar.css | 904 -- data/interfaces/default/css/opensans.min.css | 1 - .../default/css/pnotify.custom.min.css | 1 - .../default/css/selectize.bootstrap3.css | 401 - data/interfaces/default/css/selectize.min.css | 1 - .../default/css/tautulli-dataTables.css | 419 - data/interfaces/default/css/tautulli.css | 4549 --------- .../default/current_activity_header.html | 38 - .../default/current_activity_instance.html | 537 -- data/interfaces/default/edit_library.html | 127 - data/interfaces/default/edit_user.html | 138 - data/interfaces/default/export_modal.html | 289 - .../default/fonts/Open-Sans-600/LICENSE.txt | 202 - .../fonts/Open-Sans-600/Open-Sans-600.eot | Bin 18805 -> 0 bytes .../fonts/Open-Sans-600/Open-Sans-600.svg | 1637 ---- .../fonts/Open-Sans-600/Open-Sans-600.ttf | Bin 35240 -> 0 bytes .../fonts/Open-Sans-600/Open-Sans-600.woff | Bin 14344 -> 0 bytes .../fonts/Open-Sans-600/Open-Sans-600.woff2 | Bin 10328 -> 0 bytes .../fonts/Open-Sans-regular/LICENSE.txt | 202 - .../Open-Sans-regular/Open-Sans-regular.eot | Bin 18233 -> 0 bytes .../Open-Sans-regular/Open-Sans-regular.svg | 1637 ---- .../Open-Sans-regular/Open-Sans-regular.ttf | Bin 34156 -> 0 bytes .../Open-Sans-regular/Open-Sans-regular.woff | Bin 14260 -> 0 bytes .../Open-Sans-regular/Open-Sans-regular.woff2 | Bin 10352 -> 0 bytes .../glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../glyphicons-halflings-regular.svg | 288 - .../glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../fonts/font-awesome/fa-brands-400.eot | Bin 115052 -> 0 bytes .../fonts/font-awesome/fa-brands-400.svg | 1127 --- .../fonts/font-awesome/fa-brands-400.ttf | Bin 114816 -> 0 bytes .../fonts/font-awesome/fa-brands-400.woff | Bin 73920 -> 0 bytes .../fonts/font-awesome/fa-brands-400.woff2 | Bin 63376 -> 0 bytes .../fonts/font-awesome/fa-regular-400.eot | Bin 40744 -> 0 bytes .../fonts/font-awesome/fa-regular-400.svg | 467 - .../fonts/font-awesome/fa-regular-400.ttf | Bin 40516 -> 0 bytes .../fonts/font-awesome/fa-regular-400.woff | Bin 18212 -> 0 bytes .../fonts/font-awesome/fa-regular-400.woff2 | Bin 14952 -> 0 bytes .../fonts/font-awesome/fa-solid-900.eot | Bin 160768 -> 0 bytes .../fonts/font-awesome/fa-solid-900.svg | 2231 ----- .../fonts/font-awesome/fa-solid-900.ttf | Bin 160548 -> 0 bytes .../fonts/font-awesome/fa-solid-900.woff | Bin 76632 -> 0 bytes .../fonts/font-awesome/fa-solid-900.woff2 | Bin 59572 -> 0 bytes data/interfaces/default/graphs.html | 760 -- data/interfaces/default/history.html | 263 - .../default/history_table_modal.html | 87 - data/interfaces/default/home_stats.html | 205 - data/interfaces/default/images/13AD46AC.png | Bin 10152 -> 0 bytes data/interfaces/default/images/13AD46AD.png | Bin 10703 -> 0 bytes data/interfaces/default/images/93124B54.png | Bin 10527 -> 0 bytes data/interfaces/default/images/93124B55.png | Bin 11162 -> 0 bytes .../default/images/app-store-badge.svg | 46 - .../default/images/art-live-full.png | Bin 805293 -> 0 bytes data/interfaces/default/images/art-live.png | Bin 34387 -> 0 bytes data/interfaces/default/images/art.png | Bin 3303 -> 0 bytes data/interfaces/default/images/background.png | Bin 12626 -> 0 bytes .../default/images/become_a_patron_button.png | Bin 3086 -> 0 bytes .../interfaces/default/images/check-solid.ico | Bin 100969 -> 0 bytes data/interfaces/default/images/chevron.png | Bin 1606 -> 0 bytes data/interfaces/default/images/cover.png | Bin 12303 -> 0 bytes .../default/images/default_profile.svg | 22 - .../default/images/discord-overlay.png | Bin 265937 -> 0 bytes .../images/favicon/android-chrome-192x192.png | Bin 15093 -> 0 bytes .../images/favicon/android-chrome-256x256.png | Bin 21558 -> 0 bytes .../images/favicon/apple-touch-icon.png | Bin 4621 -> 0 bytes .../default/images/favicon/browserconfig.xml | 9 - .../default/images/favicon/favicon-16x16.png | Bin 997 -> 0 bytes .../default/images/favicon/favicon-32x32.png | Bin 1716 -> 0 bytes .../default/images/favicon/favicon.ico | Bin 15086 -> 0 bytes .../default/images/favicon/manifest.json | 22 - .../default/images/favicon/mstile-150x150.png | Bin 10291 -> 0 bytes .../images/favicon/safari-pinned-tab.svg | 32 - .../default/images/gold-rect-paypal-34px.png | Bin 2751 -> 0 bytes .../default/images/google-play-badge.svg | 113 - .../default/images/gravatar-default-80x80.png | Bin 2141 -> 0 bytes .../default/images/gravatar-default.png | Bin 3207 -> 0 bytes .../images/icons/most-concurrent-streams.svg | 58 - .../default/images/libraries/artist.png | Bin 2679 -> 0 bytes .../default/images/libraries/artist.svg | 11 - .../default/images/libraries/live.png | Bin 6549 -> 0 bytes .../default/images/libraries/live.svg | 36 - .../default/images/libraries/movie.png | Bin 1780 -> 0 bytes .../default/images/libraries/movie.svg | 17 - .../default/images/libraries/photo.png | Bin 4602 -> 0 bytes .../default/images/libraries/photo.svg | 25 - .../default/images/libraries/playlist.png | Bin 875 -> 0 bytes .../default/images/libraries/playlist.svg | 9 - .../default/images/libraries/show.png | Bin 1374 -> 0 bytes .../default/images/libraries/show.svg | 12 - .../default/images/libraries/video.png | Bin 2712 -> 0 bytes .../default/images/libraries/video.svg | 13 - .../default/images/logo-circle.icns | Bin 28453 -> 0 bytes .../interfaces/default/images/logo-circle.ico | Bin 120528 -> 0 bytes .../interfaces/default/images/logo-circle.png | Bin 29051 -> 0 bytes .../default/images/logo-flat-white.ico | Bin 204862 -> 0 bytes .../default/images/logo-flat-white.png | Bin 15621 -> 0 bytes .../default/images/logo-tautulli-100.png | Bin 6601 -> 0 bytes .../default/images/logo-tautulli-45.png | Bin 2839 -> 0 bytes .../images/logo-tautulli-newsletter.png | Bin 30989 -> 0 bytes .../default/images/logo-tautulli.png | Bin 22439 -> 0 bytes .../default/images/logo-tautulli.svg | 73 - data/interfaces/default/images/logo.png | Bin 17097 -> 0 bytes data/interfaces/default/images/logo.svg | 32 - .../images/media_flags/aspect_ratio/1.33.png | Bin 926 -> 0 bytes .../images/media_flags/aspect_ratio/1.66.png | Bin 1374 -> 0 bytes .../images/media_flags/aspect_ratio/1.78.png | Bin 1281 -> 0 bytes .../images/media_flags/aspect_ratio/1.85.png | Bin 1311 -> 0 bytes .../images/media_flags/aspect_ratio/2.20.png | Bin 1464 -> 0 bytes .../images/media_flags/aspect_ratio/2.25.png | Bin 1475 -> 0 bytes .../images/media_flags/aspect_ratio/2.35.png | Bin 1587 -> 0 bytes .../images/media_flags/audio_channels/1.png | Bin 662 -> 0 bytes .../images/media_flags/audio_channels/2.png | Bin 873 -> 0 bytes .../images/media_flags/audio_channels/5.png | Bin 671 -> 0 bytes .../images/media_flags/audio_channels/6.png | Bin 671 -> 0 bytes .../images/media_flags/audio_channels/7.png | Bin 757 -> 0 bytes .../images/media_flags/audio_channels/8.png | Bin 527 -> 0 bytes .../images/media_flags/audio_codec/aac.png | Bin 2398 -> 0 bytes .../images/media_flags/audio_codec/aif.png | Bin 1584 -> 0 bytes .../images/media_flags/audio_codec/aifc.png | Bin 1720 -> 0 bytes .../images/media_flags/audio_codec/aiff.png | Bin 1644 -> 0 bytes .../images/media_flags/audio_codec/alac.png | Bin 1658 -> 0 bytes .../images/media_flags/audio_codec/ape.png | Bin 523 -> 0 bytes .../images/media_flags/audio_codec/cdda.png | Bin 4092 -> 0 bytes .../images/media_flags/audio_codec/dca-ma.png | Bin 2460 -> 0 bytes .../media_flags/audio_codec/dolby_digital.png | Bin 2608 -> 0 bytes .../media_flags/audio_codec/dolby_truehd.png | Bin 2586 -> 0 bytes .../images/media_flags/audio_codec/dts.png | Bin 2460 -> 0 bytes .../images/media_flags/audio_codec/eac3.png | Bin 2662 -> 0 bytes .../images/media_flags/audio_codec/flac.png | Bin 1998 -> 0 bytes .../images/media_flags/audio_codec/m4a.png | Bin 1721 -> 0 bytes .../images/media_flags/audio_codec/mlp.png | Bin 2236 -> 0 bytes .../images/media_flags/audio_codec/mp2.png | Bin 1871 -> 0 bytes .../images/media_flags/audio_codec/mp3.png | Bin 2582 -> 0 bytes .../images/media_flags/audio_codec/mpc.png | Bin 2877 -> 0 bytes .../images/media_flags/audio_codec/ogg.png | Bin 2000 -> 0 bytes .../images/media_flags/audio_codec/pcm.png | Bin 827 -> 0 bytes .../images/media_flags/audio_codec/ra.png | Bin 2714 -> 0 bytes .../images/media_flags/audio_codec/shn.png | Bin 270 -> 0 bytes .../images/media_flags/audio_codec/wav.png | Bin 1916 -> 0 bytes .../images/media_flags/audio_codec/wave.png | Bin 1916 -> 0 bytes .../images/media_flags/audio_codec/wma.png | Bin 3297 -> 0 bytes .../images/media_flags/audio_codec/wmahd.png | Bin 1507 -> 0 bytes .../images/media_flags/audio_codec/wmapro.png | Bin 778 -> 0 bytes .../images/media_flags/audio_codec/wmav2.png | Bin 1301 -> 0 bytes .../images/media_flags/audio_codec/wv.png | Bin 2305 -> 0 bytes .../images/media_flags/content_rating/G.png | Bin 1054 -> 0 bytes .../media_flags/content_rating/NC-17.png | Bin 2000 -> 0 bytes .../images/media_flags/content_rating/NR.png | Bin 1431 -> 0 bytes .../media_flags/content_rating/Not Rated.png | Bin 1823 -> 0 bytes .../media_flags/content_rating/PG-13.png | Bin 2286 -> 0 bytes .../images/media_flags/content_rating/PG.png | Bin 1541 -> 0 bytes .../images/media_flags/content_rating/R.png | Bin 928 -> 0 bytes .../media_flags/content_rating/TV-14.png | Bin 931 -> 0 bytes .../media_flags/content_rating/TV-G.png | Bin 1017 -> 0 bytes .../media_flags/content_rating/TV-MA.png | Bin 1368 -> 0 bytes .../media_flags/content_rating/TV-PG.png | Bin 1270 -> 0 bytes .../media_flags/content_rating/TV-Y.png | Bin 821 -> 0 bytes .../media_flags/content_rating/TV-Y7-FV.png | Bin 1446 -> 0 bytes .../media_flags/content_rating/TV-Y7.png | Bin 1074 -> 0 bytes .../media_flags/content_rating/Unrated.png | Bin 1720 -> 0 bytes .../images/media_flags/content_rating/X.png | Bin 990 -> 0 bytes .../media_flags/content_rating/au/E.png | Bin 539 -> 0 bytes .../media_flags/content_rating/au/G.png | Bin 1387 -> 0 bytes .../media_flags/content_rating/au/M.png | Bin 1477 -> 0 bytes .../media_flags/content_rating/au/MA15+.png | Bin 2274 -> 0 bytes .../media_flags/content_rating/au/MA15.png | Bin 2274 -> 0 bytes .../media_flags/content_rating/au/PG.png | Bin 1038 -> 0 bytes .../media_flags/content_rating/au/R18+.png | Bin 2302 -> 0 bytes .../media_flags/content_rating/au/R18.png | Bin 2302 -> 0 bytes .../media_flags/content_rating/au/X18+.png | Bin 1782 -> 0 bytes .../media_flags/content_rating/au/X18.png | Bin 1782 -> 0 bytes .../media_flags/content_rating/ca/14A.png | Bin 1740 -> 0 bytes .../media_flags/content_rating/ca/18A.png | Bin 1951 -> 0 bytes .../media_flags/content_rating/ca/E.png | Bin 1949 -> 0 bytes .../media_flags/content_rating/ca/G.png | Bin 1618 -> 0 bytes .../media_flags/content_rating/ca/PG.png | Bin 1508 -> 0 bytes .../media_flags/content_rating/ca/R.png | Bin 1452 -> 0 bytes .../media_flags/content_rating/de/0.png | Bin 1376 -> 0 bytes .../media_flags/content_rating/de/12.png | Bin 1441 -> 0 bytes .../media_flags/content_rating/de/16.png | Bin 1490 -> 0 bytes .../media_flags/content_rating/de/18.png | Bin 1303 -> 0 bytes .../media_flags/content_rating/de/6.png | Bin 1409 -> 0 bytes .../media_flags/content_rating/fr/-10.png | Bin 1529 -> 0 bytes .../media_flags/content_rating/fr/-12.png | Bin 1419 -> 0 bytes .../media_flags/content_rating/fr/-16.png | Bin 1467 -> 0 bytes .../media_flags/content_rating/fr/-18.png | Bin 1559 -> 0 bytes .../content_rating/fr/Tout Public.png | Bin 1140 -> 0 bytes .../media_flags/content_rating/fr/U.png | Bin 1140 -> 0 bytes .../media_flags/content_rating/gb/12.png | Bin 1725 -> 0 bytes .../media_flags/content_rating/gb/12A.png | Bin 1553 -> 0 bytes .../media_flags/content_rating/gb/15.png | Bin 1706 -> 0 bytes .../media_flags/content_rating/gb/18.png | Bin 1366 -> 0 bytes .../media_flags/content_rating/gb/PG.png | Bin 1154 -> 0 bytes .../media_flags/content_rating/gb/R18.png | Bin 1433 -> 0 bytes .../media_flags/content_rating/gb/U.png | Bin 842 -> 0 bytes .../media_flags/content_rating/nl/12.png | Bin 1213 -> 0 bytes .../media_flags/content_rating/nl/16.png | Bin 1164 -> 0 bytes .../media_flags/content_rating/nl/6.png | Bin 1104 -> 0 bytes .../media_flags/content_rating/nl/9.png | Bin 1104 -> 0 bytes .../media_flags/content_rating/nl/AL.png | Bin 1051 -> 0 bytes .../content_rating/nl/Alle Leeftijden.png | Bin 1051 -> 0 bytes .../media_flags/studio/1492_pictures.png | Bin 10981 -> 0 bytes .../media_flags/studio/20th_century_fox.png | Bin 8726 -> 0 bytes .../studio/20th_century_fox_animation.png | Bin 10560 -> 0 bytes .../images/media_flags/studio/2929.png | Bin 7901 -> 0 bytes .../media_flags/studio/360_pictures.png | Bin 7660 -> 0 bytes .../images/media_flags/studio/40_acres.png | Bin 13559 -> 0 bytes .../images/media_flags/studio/57_irving.png | Bin 1211 -> 0 bytes .../media_flags/studio/777_film_corp.png | Bin 12750 -> 0 bytes .../default/images/media_flags/studio/a24.png | Bin 3920 -> 0 bytes .../media_flags/studio/a_1_pictures.png | Bin 14263 -> 0 bytes .../images/media_flags/studio/a_and_e.png | Bin 2349 -> 0 bytes .../images/media_flags/studio/aardman.png | Bin 3860 -> 0 bytes .../images/media_flags/studio/abandon.png | Bin 2877 -> 0 bytes .../default/images/media_flags/studio/abc.png | Bin 5234 -> 0 bytes .../media_flags/studio/abc_australia.png | Bin 3476 -> 0 bytes .../images/media_flags/studio/abc_family.png | Bin 3079 -> 0 bytes .../images/media_flags/studio/actf.png | Bin 4441 -> 0 bytes .../images/media_flags/studio/adult_swim.png | Bin 2349 -> 0 bytes .../default/images/media_flags/studio/afi.png | Bin 4519 -> 0 bytes .../images/media_flags/studio/after_dark.png | Bin 18963 -> 0 bytes .../default/images/media_flags/studio/aic.png | Bin 1465 -> 0 bytes .../studio/alcon_entertainment.png | Bin 15735 -> 0 bytes .../studio/alfred_hitchcock_productions.png | Bin 7137 -> 0 bytes .../images/media_flags/studio/alliance.png | Bin 9080 -> 0 bytes .../images/media_flags/studio/alloy.png | Bin 3736 -> 0 bytes .../images/media_flags/studio/alphaville.png | Bin 1939 -> 0 bytes .../media_flags/studio/amazon_studios.png | Bin 3151 -> 0 bytes .../images/media_flags/studio/ambience.png | Bin 3303 -> 0 bytes .../studio/amblin_entertainment.png | Bin 6373 -> 0 bytes .../default/images/media_flags/studio/amc.png | Bin 3133 -> 0 bytes .../media_flags/studio/american_masters.png | Bin 8019 -> 0 bytes .../media_flags/studio/american_zoetrope.png | Bin 19693 -> 0 bytes .../studio/anchor_bay_entertainment.png | Bin 17672 -> 0 bytes .../media_flags/studio/animal_planet.png | Bin 5064 -> 0 bytes .../images/media_flags/studio/animax.png | Bin 1216 -> 0 bytes .../media_flags/studio/anonymous_content.png | Bin 15076 -> 0 bytes .../images/media_flags/studio/antena_3.png | Bin 4068 -> 0 bytes .../media_flags/studio/apatow_productions.png | Bin 12401 -> 0 bytes .../images/media_flags/studio/apple.png | Bin 2817 -> 0 bytes .../default/images/media_flags/studio/ard.png | Bin 1532 -> 0 bytes .../default/images/media_flags/studio/ark.png | Bin 2078 -> 0 bytes .../images/media_flags/studio/arte.png | Bin 1745 -> 0 bytes .../studio/artisan_entertainment.png | Bin 3755 -> 0 bytes .../media_flags/studio/aspen_film_society.png | Bin 19372 -> 0 bytes .../images/media_flags/studio/atom_films.png | Bin 3473 -> 0 bytes .../media_flags/studio/audience_network.png | Bin 7854 -> 0 bytes .../studio/australian_film_commission.png | Bin 6556 -> 0 bytes .../media_flags/studio/avalanche_studios.png | Bin 15854 -> 0 bytes .../media_flags/studio/avnet_kerner.png | Bin 1803 -> 0 bytes .../images/media_flags/studio/babylonian.png | Bin 3051 -> 0 bytes .../studio/bad_boy_entertainment.png | Bin 39118 -> 0 bytes .../images/media_flags/studio/bad_robot.png | Bin 9037 -> 0 bytes .../media_flags/studio/baltimore_pictures.png | Bin 17988 -> 0 bytes .../images/media_flags/studio/bandai.png | Bin 1786 -> 0 bytes .../media_flags/studio/bandai_visual.png | Bin 2221 -> 0 bytes .../images/media_flags/studio/bandapart.png | Bin 2589 -> 0 bytes .../images/media_flags/studio/batjac.png | Bin 2221 -> 0 bytes .../images/media_flags/studio/bazmark.png | Bin 4840 -> 0 bytes .../default/images/media_flags/studio/bbc.png | Bin 2174 -> 0 bytes .../images/media_flags/studio/bbc_america.png | Bin 4751 -> 0 bytes .../images/media_flags/studio/bbc_films.png | Bin 2625 -> 0 bytes .../images/media_flags/studio/bbc_four.png | Bin 3764 -> 0 bytes .../images/media_flags/studio/bbc_one.png | Bin 6703 -> 0 bytes .../images/media_flags/studio/bbc_prime.png | Bin 2818 -> 0 bytes .../images/media_flags/studio/bbc_three.png | Bin 3897 -> 0 bytes .../images/media_flags/studio/bbc_two.png | Bin 3992 -> 0 bytes .../images/media_flags/studio/beacon.png | Bin 299 -> 0 bytes .../studio/becker_entertainment.png | Bin 10885 -> 0 bytes .../studio/belair_entertainment.png | Bin 5218 -> 0 bytes .../default/images/media_flags/studio/bet.png | Bin 2944 -> 0 bytes .../images/media_flags/studio/bigtalk.png | Bin 927 -> 0 bytes .../media_flags/studio/biography_channel.png | Bin 4129 -> 0 bytes .../studio/black_bear_pictures.png | Bin 13416 -> 0 bytes .../images/media_flags/studio/blackdog.png | Bin 1332 -> 0 bytes .../media_flags/studio/bleecker_street.png | Bin 1328 -> 0 bytes .../studio/blind_ambition_entertainment.png | Bin 6664 -> 0 bytes .../studio/blizzard_entertainment.png | Bin 8619 -> 0 bytes .../images/media_flags/studio/blue_sky.png | Bin 5303 -> 0 bytes .../media_flags/studio/blue_sky_studios.png | Bin 4011 -> 0 bytes .../media_flags/studio/blue_underground.png | Bin 8770 -> 0 bytes .../studio/blumhouse_productions.png | Bin 3964 -> 0 bytes .../default/images/media_flags/studio/bnn.png | Bin 7119 -> 0 bytes .../images/media_flags/studio/bold_films.png | Bin 2904 -> 0 bytes .../images/media_flags/studio/boomerang.png | Bin 6574 -> 0 bytes .../images/media_flags/studio/bravo.png | Bin 2294 -> 0 bytes .../images/media_flags/studio/brightlight.png | Bin 2329 -> 0 bytes .../images/media_flags/studio/bristol_bay.png | Bin 5180 -> 0 bytes .../media_flags/studio/broken_lizard.png | Bin 16880 -> 0 bytes .../media_flags/studio/brooklyn_films.png | Bin 13414 -> 0 bytes .../images/media_flags/studio/buena_vista.png | Bin 19950 -> 0 bytes .../images/media_flags/studio/bulletproof.png | Bin 2880 -> 0 bytes .../images/media_flags/studio/c2_pictures.png | Bin 15114 -> 0 bytes .../images/media_flags/studio/canalplus.png | Bin 2329 -> 0 bytes .../media_flags/studio/cannon_pictures.png | Bin 22993 -> 0 bytes .../images/media_flags/studio/capcom.png | Bin 2546 -> 0 bytes .../media_flags/studio/capitol_films.png | Bin 4818 -> 0 bytes .../media_flags/studio/caravan_pictures.png | Bin 6126 -> 0 bytes .../images/media_flags/studio/carnaby.png | Bin 17039 -> 0 bytes .../images/media_flags/studio/carolco.png | Bin 13714 -> 0 bytes .../media_flags/studio/cartoonnetwork.png | Bin 3301 -> 0 bytes .../media_flags/studio/casablanca_filmes.png | Bin 3870 -> 0 bytes .../media_flags/studio/cascade_film.png | Bin 18540 -> 0 bytes .../studio/casey_silver_productions.png | Bin 7477 -> 0 bytes .../studio/castle_rock_entertainment.png | Bin 10470 -> 0 bytes .../media_flags/studio/cat_in_the_hat.png | Bin 37954 -> 0 bytes .../images/media_flags/studio/cbbc.png | Bin 3162 -> 0 bytes .../default/images/media_flags/studio/cbc.png | Bin 2444 -> 0 bytes .../default/images/media_flags/studio/cbs.png | Bin 3649 -> 0 bytes .../images/media_flags/studio/celador.png | Bin 1579 -> 0 bytes .../studio/centropolis_entertainment.png | Bin 17054 -> 0 bytes .../media_flags/studio/ceska_televize.png | Bin 1406 -> 0 bytes .../images/media_flags/studio/channel4.png | Bin 1958 -> 0 bytes .../images/media_flags/studio/channel5.png | Bin 3381 -> 0 bytes .../media_flags/studio/channel_nine.png | Bin 3121 -> 0 bytes .../media_flags/studio/channel_seven.png | Bin 1233 -> 0 bytes .../images/media_flags/studio/channel_ten.png | Bin 2683 -> 0 bytes .../images/media_flags/studio/cheyenne.png | Bin 913 -> 0 bytes .../images/media_flags/studio/chiller.png | Bin 2720 -> 0 bytes .../images/media_flags/studio/cinemax.png | Bin 3147 -> 0 bytes .../images/media_flags/studio/city.png | Bin 6521 -> 0 bytes .../default/images/media_flags/studio/cmt.png | Bin 18841 -> 0 bytes .../default/images/media_flags/studio/cnc.png | Bin 1315 -> 0 bytes .../media_flags/studio/columbia_pictures.png | Bin 11378 -> 0 bytes .../media_flags/studio/comedy_central.png | Bin 3125 -> 0 bytes .../images/media_flags/studio/concorde.png | Bin 523 -> 0 bytes .../images/media_flags/studio/condemned.png | Bin 3093 -> 0 bytes .../media_flags/studio/constantin_film.png | Bin 3265 -> 0 bytes .../media_flags/studio/constellation.png | Bin 5928 -> 0 bytes .../images/media_flags/studio/cookie_jar.png | Bin 14037 -> 0 bytes .../images/media_flags/studio/cpfilms.png | Bin 2274 -> 0 bytes .../images/media_flags/studio/crackle.png | Bin 3132 -> 0 bytes .../images/media_flags/studio/criterion.png | Bin 1189 -> 0 bytes .../default/images/media_flags/studio/ctv.png | Bin 2915 -> 0 bytes .../default/images/media_flags/studio/cw.png | Bin 1088 -> 0 bytes .../images/media_flags/studio/cw_seed.png | Bin 6375 -> 0 bytes .../images/media_flags/studio/czolowka.png | Bin 2487 -> 0 bytes .../images/media_flags/studio/damselfly.png | Bin 5150 -> 0 bytes .../images/media_flags/studio/danjaq.png | Bin 261 -> 0 bytes .../studio/dark_castle_entertainment.png | Bin 51102 -> 0 bytes .../images/media_flags/studio/dark_horse.png | Bin 21364 -> 0 bytes .../images/media_flags/studio/dave.png | Bin 3221 -> 0 bytes .../studio/davis_entertainment.png | Bin 11443 -> 0 bytes .../default/images/media_flags/studio/dc.png | Bin 5611 -> 0 bytes .../media_flags/studio/de_laurentiis.png | Bin 9746 -> 0 bytes .../images/media_flags/studio/defa.png | Bin 879 -> 0 bytes .../media_flags/studio/destination_films.png | Bin 4192 -> 0 bytes .../default/images/media_flags/studio/dfi.png | Bin 1406 -> 0 bytes .../studio/dickhouse_productions.png | Bin 11219 -> 0 bytes .../media_flags/studio/digital_factory.png | Bin 10252 -> 0 bytes .../media_flags/studio/digital_playground.png | Bin 3901 -> 0 bytes .../media_flags/studio/dimension_films.png | Bin 4210 -> 0 bytes .../media_flags/studio/discovery_channel.png | Bin 4105 -> 0 bytes .../media_flags/studio/disney_channel.png | Bin 5664 -> 0 bytes .../images/media_flags/studio/disney_xd.png | Bin 2372 -> 0 bytes .../media_flags/studio/distant_horizon.png | Bin 4566 -> 0 bytes .../images/media_flags/studio/dmax.png | Bin 1635 -> 0 bytes .../default/images/media_flags/studio/dna.png | Bin 2654 -> 0 bytes .../media_flags/studio/dolores_pictures.png | Bin 13009 -> 0 bytes .../don_simpson_jerry_bruckheimer_films.png | Bin 38510 -> 0 bytes .../images/media_flags/studio/donners.png | Bin 10563 -> 0 bytes .../images/media_flags/studio/dreamworks.png | Bin 4254 -> 0 bytes .../studio/dreamworks_animation.png | Bin 3859 -> 0 bytes .../default/images/media_flags/studio/e4.png | Bin 2804 -> 0 bytes .../images/media_flags/studio/ealing.png | Bin 5742 -> 0 bytes .../images/media_flags/studio/eclectic.png | Bin 2326 -> 0 bytes .../studio/edmonds_entertainment.png | Bin 7931 -> 0 bytes .../media_flags/studio/el_rey_network.png | Bin 4978 -> 0 bytes .../studio/electric_enterteinment.png | Bin 17955 -> 0 bytes .../media_flags/studio/electric_pictures.png | Bin 16471 -> 0 bytes .../media_flags/studio/eleven_eleven.png | Bin 3661 -> 0 bytes .../default/images/media_flags/studio/emi.png | Bin 1143 -> 0 bytes .../images/media_flags/studio/emmedia.png | Bin 1389 -> 0 bytes .../images/media_flags/studio/encore.png | Bin 3952 -> 0 bytes .../studio/endgame_entertainment.png | Bin 11663 -> 0 bytes .../images/media_flags/studio/entara.png | Bin 19236 -> 0 bytes .../media_flags/studio/entertainment_one.png | Bin 7652 -> 0 bytes .../studio/entertainment_television.png | Bin 5618 -> 0 bytes .../media_flags/studio/eon_productions.png | Bin 22889 -> 0 bytes .../images/media_flags/studio/epix.png | Bin 3213 -> 0 bytes .../media_flags/studio/escape_artists.png | Bin 10160 -> 0 bytes .../images/media_flags/studio/espn.png | Bin 1981 -> 0 bytes .../images/media_flags/studio/eurimages.png | Bin 4721 -> 0 bytes .../images/media_flags/studio/europa_corp.png | Bin 8212 -> 0 bytes .../images/media_flags/studio/eurosport.png | Bin 4246 -> 0 bytes .../images/media_flags/studio/excel.png | Bin 2664 -> 0 bytes .../media_flags/studio/eyekiss_films.png | Bin 4944 -> 0 bytes .../images/media_flags/studio/fact.png | Bin 2467 -> 0 bytes .../images/media_flags/studio/figaro.png | Bin 708 -> 0 bytes .../images/media_flags/studio/film_colony.png | Bin 3597 -> 0 bytes .../images/media_flags/studio/film_four.png | Bin 279 -> 0 bytes .../media_flags/studio/film_institut.png | Bin 2698 -> 0 bytes .../images/media_flags/studio/film_media.png | Bin 6248 -> 0 bytes .../images/media_flags/studio/film_polski.png | Bin 1471 -> 0 bytes .../images/media_flags/studio/film_tv.png | Bin 5617 -> 0 bytes .../images/media_flags/studio/filmauro.png | Bin 6922 -> 0 bytes .../media_flags/studio/filmax_animation.png | Bin 7852 -> 0 bytes .../studio/filmforderung_hamburg.png | Bin 3807 -> 0 bytes .../media_flags/studio/filmoteka narodowa.png | Bin 2478 -> 0 bytes .../filmstiftung_nordrhein-westfalen.png | Bin 4142 -> 0 bytes .../images/media_flags/studio/finos_film.png | Bin 7648 -> 0 bytes .../studio/fireworks_entertainment.png | Bin 34079 -> 0 bytes .../studio/first_look_pictures.png | Bin 16116 -> 0 bytes .../images/media_flags/studio/five.png | Bin 2724 -> 0 bytes .../media_flags/studio/flower_films.png | Bin 17149 -> 0 bytes .../media_flags/studio/focus_features.png | Bin 4449 -> 0 bytes .../media_flags/studio/food_network.png | Bin 7655 -> 0 bytes .../media_flags/studio/forte_cinema.png | Bin 15392 -> 0 bytes .../media_flags/studio/fourhands_film.png | Bin 20351 -> 0 bytes .../default/images/media_flags/studio/fox.png | Bin 2763 -> 0 bytes .../images/media_flags/studio/fox_atomic.png | Bin 5291 -> 0 bytes .../images/media_flags/studio/fox_kids.png | Bin 8185 -> 0 bytes .../studio/fox_searchlight_pictures.png | Bin 8533 -> 0 bytes .../images/media_flags/studio/france_2.png | Bin 1725 -> 0 bytes .../images/media_flags/studio/france_3.png | Bin 1751 -> 0 bytes .../images/media_flags/studio/france_4.png | Bin 1512 -> 0 bytes .../media_flags/studio/franchise_pictures.png | Bin 7502 -> 0 bytes .../images/media_flags/studio/freeform.png | Bin 2306 -> 0 bytes .../images/media_flags/studio/fuji_tv.png | Bin 4536 -> 0 bytes .../images/media_flags/studio/future_flix.png | Bin 28494 -> 0 bytes .../default/images/media_flags/studio/fx.png | Bin 2597 -> 0 bytes .../default/images/media_flags/studio/fxx.png | Bin 3581 -> 0 bytes .../default/images/media_flags/studio/g4.png | Bin 4122 -> 0 bytes .../images/media_flags/studio/gaumont.png | Bin 1559 -> 0 bytes .../images/media_flags/studio/geffen.png | Bin 6249 -> 0 bytes .../images/media_flags/studio/ghost_house.png | Bin 5101 -> 0 bytes .../images/media_flags/studio/gk_films.png | Bin 3729 -> 0 bytes .../media_flags/studio/glass_eye_pix.png | Bin 39481 -> 0 bytes .../images/media_flags/studio/global_tv.png | Bin 2805 -> 0 bytes .../studio/glue_works_entertainment.png | Bin 10588 -> 0 bytes .../images/media_flags/studio/gofilms.png | Bin 604 -> 0 bytes .../media_flags/studio/gold_circle_films.png | Bin 12787 -> 0 bytes .../images/media_flags/studio/goldwyn.png | Bin 5376 -> 0 bytes .../media_flags/studio/gracie_films.png | Bin 17998 -> 0 bytes .../media_flags/studio/gramercy_pictures.png | Bin 5949 -> 0 bytes .../images/media_flags/studio/grandhustle.png | Bin 3627 -> 0 bytes .../media_flags/studio/green_street.png | Bin 2959 -> 0 bytes .../media_flags/studio/greentree_pictures.png | Bin 10844 -> 0 bytes .../studio/grub_street_productions.png | Bin 3484 -> 0 bytes .../media_flags/studio/guinea_pig_films.png | Bin 5264 -> 0 bytes .../images/media_flags/studio/gutek.png | Bin 1509 -> 0 bytes .../images/media_flags/studio/halestorm.png | Bin 1108 -> 0 bytes .../media_flags/studio/hallmark_channel.png | Bin 5371 -> 0 bytes .../studio/hallucination_on_film.png | Bin 3439 -> 0 bytes .../media_flags/studio/hand_made_films.png | Bin 17120 -> 0 bytes .../media_flags/studio/happy_madison.png | Bin 8978 -> 0 bytes .../images/media_flags/studio/hasbro.png | Bin 5631 -> 0 bytes .../default/images/media_flags/studio/hbo.png | Bin 2575 -> 0 bytes .../images/media_flags/studio/hbo_films.png | Bin 9944 -> 0 bytes .../media_flags/studio/head_gear_films.png | Bin 16023 -> 0 bytes .../images/media_flags/studio/hemus_film.png | Bin 4580 -> 0 bytes .../media_flags/studio/heyday_films.png | Bin 9599 -> 0 bytes .../images/media_flags/studio/hgtv.png | Bin 2959 -> 0 bytes .../media_flags/studio/history_channel.png | Bin 3484 -> 0 bytes .../media_flags/studio/hollywood_pictures.png | Bin 5382 -> 0 bytes .../media_flags/studio/hopscotch_films.png | Bin 6705 -> 0 bytes .../images/media_flags/studio/hulu.png | Bin 1366 -> 0 bytes .../media_flags/studio/hustler_video.png | Bin 13265 -> 0 bytes .../studio/hyde_park_entertainment.png | Bin 22897 -> 0 bytes .../media_flags/studio/icon_entertainment.png | Bin 12947 -> 0 bytes .../default/images/media_flags/studio/ifc.png | Bin 4237 -> 0 bytes .../studio/illumination_entertainment.png | Bin 6981 -> 0 bytes .../images/media_flags/studio/image.png | Bin 8383 -> 0 bytes .../media_flags/studio/image_movers.png | Bin 21814 -> 0 bytes .../media_flags/studio/imagi_studios.png | Bin 3694 -> 0 bytes .../media_flags/studio/imaginary_forces.png | Bin 8760 -> 0 bytes .../images/media_flags/studio/imagine.png | Bin 10412 -> 0 bytes .../images/media_flags/studio/imax.png | Bin 1756 -> 0 bytes .../studio/imperial_entertainment.png | Bin 24429 -> 0 bytes .../studio/independent_pictures.png | Bin 5762 -> 0 bytes .../studio/industrial_light_and_magic.png | Bin 13843 -> 0 bytes .../images/media_flags/studio/infilm.png | Bin 453 -> 0 bytes .../studio/ingenious_film_partners.png | Bin 2328 -> 0 bytes .../studio/ingenius_entertainment.png | Bin 26990 -> 0 bytes .../media_flags/studio/inside_track.png | Bin 5483 -> 0 bytes .../media_flags/studio/insurge_pictures.png | Bin 6472 -> 0 bytes .../images/media_flags/studio/interactual.png | Bin 4755 -> 0 bytes .../images/media_flags/studio/intermedia.png | Bin 1976 -> 0 bytes .../studio/interscope_shady_aftermath.png | Bin 8208 -> 0 bytes .../media_flags/studio/intrepid_pictures.png | Bin 14472 -> 0 bytes .../media_flags/studio/island_world.png | Bin 12170 -> 0 bytes .../default/images/media_flags/studio/itv.png | Bin 3008 -> 0 bytes .../images/media_flags/studio/janus.png | Bin 18303 -> 0 bytes .../images/media_flags/studio/jarowskij.png | Bin 4015 -> 0 bytes .../images/media_flags/studio/jawa.png | Bin 887 -> 0 bytes .../studio/jerry_bruckheimer_films.png | Bin 7091 -> 0 bytes .../media_flags/studio/jersey_films.png | Bin 6387 -> 0 bytes .../images/media_flags/studio/jim_henson.png | Bin 16681 -> 0 bytes .../images/media_flags/studio/jj_splice.png | Bin 27171 -> 0 bytes .../studio/kaboom_entertainment.png | Bin 7947 -> 0 bytes .../media_flags/studio/kadokawa_pictures.png | Bin 7121 -> 0 bytes .../images/media_flags/studio/kadr.png | Bin 2103 -> 0 bytes .../images/media_flags/studio/kamera.png | Bin 913 -> 0 bytes .../images/media_flags/studio/kanal_5.png | Bin 2835 -> 0 bytes .../media_flags/studio/kennedymarshall.png | Bin 2735 -> 0 bytes .../images/media_flags/studio/kid_rhino.png | Bin 5705 -> 0 bytes .../media_flags/studio/killer_films.png | Bin 9297 -> 0 bytes .../images/media_flags/studio/kinepolis.png | Bin 5861 -> 0 bytes .../images/media_flags/studio/king_world.png | Bin 3864 -> 0 bytes .../images/media_flags/studio/kinowelt.png | Bin 2111 -> 0 bytes .../images/media_flags/studio/konami.png | Bin 3017 -> 0 bytes .../images/media_flags/studio/kopelson.png | Bin 14555 -> 0 bytes .../media_flags/studio/kyoto_animation.png | Bin 9513 -> 0 bytes .../images/media_flags/studio/ladd.png | Bin 6026 -> 0 bytes .../studio/lakeshore_entertainment.png | Bin 6511 -> 0 bytes .../images/media_flags/studio/latham.png | Bin 7637 -> 0 bytes .../studio/lawrence_bender_productions.png | Bin 4555 -> 0 bytes .../studio/league of noble peers.png | Bin 564 -> 0 bytes .../media_flags/studio/legendary_pictures.png | Bin 13069 -> 0 bytes .../images/media_flags/studio/lego.png | Bin 5927 -> 0 bytes .../media_flags/studio/liberty_films.png | Bin 15339 -> 0 bytes .../images/media_flags/studio/lifetime.png | Bin 8159 -> 0 bytes .../images/media_flags/studio/lift.png | Bin 34201 -> 0 bytes .../studio/lightstorm_entertainment.png | Bin 10971 -> 0 bytes .../images/media_flags/studio/lionsgate.png | Bin 4240 -> 0 bytes .../media_flags/studio/little_chicken.png | Bin 39918 -> 0 bytes .../media_flags/studio/london_films.png | Bin 26416 -> 0 bytes .../images/media_flags/studio/lookout.png | Bin 12603 -> 0 bytes .../images/media_flags/studio/lucasfilm.png | Bin 3277 -> 0 bytes .../images/media_flags/studio/lucky_7.png | Bin 39913 -> 0 bytes .../default/images/media_flags/studio/m6.png | Bin 6615 -> 0 bytes .../images/media_flags/studio/madhouse.png | Bin 5134 -> 0 bytes .../images/media_flags/studio/madman.png | Bin 2777 -> 0 bytes .../media_flags/studio/magnolia_pictures.png | Bin 10290 -> 0 bytes .../media_flags/studio/mandalay_pictures.png | Bin 33346 -> 0 bytes .../media_flags/studio/mandate_pictures.png | Bin 26095 -> 0 bytes .../images/media_flags/studio/manga.png | Bin 4025 -> 0 bytes .../images/media_flags/studio/marc_dorcel.png | Bin 14913 -> 0 bytes .../images/media_flags/studio/marvel.png | Bin 3325 -> 0 bytes .../images/media_flags/studio/maverick.png | Bin 10140 -> 0 bytes .../media_flags/studio/maya_entertainment.png | Bin 4338 -> 0 bytes .../default/images/media_flags/studio/mbs.png | Bin 1365 -> 0 bytes .../images/media_flags/studio/media8.png | Bin 680 -> 0 bytes .../images/media_flags/studio/mediapro.png | Bin 2241 -> 0 bytes .../media_flags/studio/meridian_films.png | Bin 26797 -> 0 bytes .../default/images/media_flags/studio/mgm.png | Bin 22181 -> 0 bytes .../images/media_flags/studio/mibac.png | Bin 537 -> 0 bytes .../media_flags/studio/midway_pictures.png | Bin 23928 -> 0 bytes .../studio/mike_zoss_productions.png | Bin 11442 -> 0 bytes .../images/media_flags/studio/milkshake.png | Bin 1919 -> 0 bytes .../media_flags/studio/millennium_films.png | Bin 6580 -> 0 bytes .../studio/minds_eye_entertainment.png | Bin 14372 -> 0 bytes .../images/media_flags/studio/mirage.png | Bin 3233 -> 0 bytes .../images/media_flags/studio/miramax.png | Bin 2620 -> 0 bytes .../media_flags/studio/momentum_pictures.png | Bin 8039 -> 0 bytes .../media_flags/studio/monarch_pictures.png | Bin 13235 -> 0 bytes .../images/media_flags/studio/monolith.png | Bin 22033 -> 0 bytes .../studio/montecito_picture_company.png | Bin 64587 -> 0 bytes .../media_flags/studio/morgan_creek.png | Bin 9236 -> 0 bytes .../media_flags/studio/mosaic_media.png | Bin 25797 -> 0 bytes .../images/media_flags/studio/mosfilm.png | Bin 3163 -> 0 bytes .../images/media_flags/studio/mpca.png | Bin 7901 -> 0 bytes .../images/media_flags/studio/msnbc.png | Bin 3772 -> 0 bytes .../default/images/media_flags/studio/mtv.png | Bin 3596 -> 0 bytes .../images/media_flags/studio/mtv3.png | Bin 6351 -> 0 bytes .../media_flags/studio/musashi_films.png | Bin 19903 -> 0 bytes .../studio/mutual_film_company.png | Bin 3222 -> 0 bytes .../images/media_flags/studio/myriad.png | Bin 1287 -> 0 bytes .../images/media_flags/studio/mytv.png | Bin 276 -> 0 bytes .../images/media_flags/studio/nala.png | Bin 1238 -> 0 bytes .../media_flags/studio/nat_geo_wild.png | Bin 3257 -> 0 bytes .../studio/national_general_pictures.png | Bin 6310 -> 0 bytes .../default/images/media_flags/studio/nbc.png | Bin 3424 -> 0 bytes .../media_flags/studio/nbc_universal.png | Bin 3592 -> 0 bytes .../images/media_flags/studio/nelvana.png | Bin 8430 -> 0 bytes .../images/media_flags/studio/netflix.png | Bin 4494 -> 0 bytes .../studio/new_deal_entertainment.png | Bin 11039 -> 0 bytes .../media_flags/studio/new_line_cinema.png | Bin 9673 -> 0 bytes .../studio/new_zealand_film_commission.png | Bin 10907 -> 0 bytes .../images/media_flags/studio/newmarket.png | Bin 6738 -> 0 bytes .../default/images/media_flags/studio/ngc.png | Bin 5526 -> 0 bytes .../media_flags/studio/nick_at_nite.png | Bin 2846 -> 0 bytes .../images/media_flags/studio/nick_jr.png | Bin 2600 -> 0 bytes .../images/media_flags/studio/nickelodeon.png | Bin 2805 -> 0 bytes .../images/media_flags/studio/nicktoons.png | Bin 2579 -> 0 bytes .../media_flags/studio/nine network.png | Bin 3121 -> 0 bytes .../images/media_flags/studio/nord_ouest.png | Bin 13223 -> 0 bytes .../media_flags/studio/nordisk film.png | Bin 4917 -> 0 bytes .../studio/northern_lights_entertainment.png | Bin 15833 -> 0 bytes .../images/media_flags/studio/nothing.png | Bin 1730 -> 0 bytes .../images/media_flags/studio/nrk1.png | Bin 2531 -> 0 bytes .../images/media_flags/studio/nuimage.png | Bin 1181 -> 0 bytes .../images/media_flags/studio/o2_filmes.png | Bin 9582 -> 0 bytes .../images/media_flags/studio/oddlot.png | Bin 6259 -> 0 bytes .../default/images/media_flags/studio/oko.png | Bin 2873 -> 0 bytes .../images/media_flags/studio/only_vegas.png | Bin 6694 -> 0 bytes .../studio/oprah_winfrey_network.png | Bin 5593 -> 0 bytes .../default/images/media_flags/studio/orf.png | Bin 1746 -> 0 bytes .../images/media_flags/studio/orion.png | Bin 2922 -> 0 bytes .../media_flags/studio/overturefilms.png | Bin 6070 -> 0 bytes .../images/media_flags/studio/pa_works.png | Bin 34362 -> 0 bytes .../images/media_flags/studio/pan_vision.png | Bin 2835 -> 0 bytes .../media_flags/studio/pandora_film.png | Bin 2368 -> 0 bytes .../media_flags/studio/paramount_classics.png | Bin 45427 -> 0 bytes .../media_flags/studio/paramount_pictures.png | Bin 9772 -> 0 bytes .../media_flags/studio/paramount_vantage.png | Bin 5322 -> 0 bytes .../images/media_flags/studio/participant.png | Bin 2980 -> 0 bytes .../images/media_flags/studio/pathe.png | Bin 2353 -> 0 bytes .../default/images/media_flags/studio/pbs.png | Bin 3349 -> 0 bytes .../images/media_flags/studio/peacearch.png | Bin 7996 -> 0 bytes .../images/media_flags/studio/pecf.png | Bin 432 -> 0 bytes .../studio/peters_entertainment2.png | Bin 11834 -> 0 bytes .../media_flags/studio/phase_4_films.png | Bin 5621 -> 0 bytes .../images/media_flags/studio/pheonix.png | Bin 9006 -> 0 bytes .../media_flags/studio/picturehouse.png | Bin 6843 -> 0 bytes .../images/media_flags/studio/pisf.png | Bin 1314 -> 0 bytes .../images/media_flags/studio/pixar.png | Bin 1319 -> 0 bytes .../images/media_flags/studio/plan_b.png | Bin 1981 -> 0 bytes .../images/media_flags/studio/platige.png | Bin 285 -> 0 bytes .../media_flags/studio/platinum_dunes.png | Bin 6030 -> 0 bytes .../images/media_flags/studio/play_uk.png | Bin 2741 -> 0 bytes .../studio/playstation_network.png | Bin 12527 -> 0 bytes .../images/media_flags/studio/playtone.png | Bin 420 -> 0 bytes .../images/media_flags/studio/polsat.png | Bin 4386 -> 0 bytes .../images/media_flags/studio/polygram.png | Bin 5951 -> 0 bytes .../default/images/media_flags/studio/pop.png | Bin 2939 -> 0 bytes .../images/media_flags/studio/porchlight.png | Bin 15816 -> 0 bytes .../media_flags/studio/portman_film.png | Bin 4697 -> 0 bytes .../media_flags/studio/premiere direkt.png | Bin 1388 -> 0 bytes .../images/media_flags/studio/premiere.png | Bin 341 -> 0 bytes .../media_flags/studio/private_pictures.png | Bin 15616 -> 0 bytes .../images/media_flags/studio/pro7.png | Bin 616 -> 0 bytes .../media_flags/studio/production_i_g.png | Bin 13239 -> 0 bytes .../studio/profilm_productions.png | Bin 9366 -> 0 bytes .../media_flags/studio/promotion_pictures.png | Bin 3458 -> 0 bytes .../images/media_flags/studio/prosieben.png | Bin 616 -> 0 bytes .../media_flags/studio/radical_media.png | Bin 2379 -> 0 bytes .../images/media_flags/studio/rai_cinema.png | Bin 6163 -> 0 bytes .../images/media_flags/studio/rankin.png | Bin 530 -> 0 bytes .../studio/ratpac_dune_entertainment.png | Bin 18127 -> 0 bytes .../studio/ratpac_entertainment.png | Bin 8864 -> 0 bytes .../images/media_flags/studio/red_hour.png | Bin 10435 -> 0 bytes .../studio/red_wagon_entertainment.png | Bin 19947 -> 0 bytes .../images/media_flags/studio/redrum.png | Bin 4832 -> 0 bytes .../studio/reel_dog_productions.png | Bin 20123 -> 0 bytes .../images/media_flags/studio/regency.png | Bin 1376 -> 0 bytes .../media_flags/studio/relativity_media.png | Bin 9658 -> 0 bytes .../media_flags/studio/renaissance_films.png | Bin 4384 -> 0 bytes .../media_flags/studio/republic_pictures.png | Bin 28534 -> 0 bytes .../media_flags/studio/resident_evil.png | Bin 3554 -> 0 bytes .../media_flags/studio/revere_pictures.png | Bin 4884 -> 0 bytes .../images/media_flags/studio/revision3.png | Bin 4189 -> 0 bytes .../media_flags/studio/revolution_studios.png | Bin 16156 -> 0 bytes .../images/media_flags/studio/rhombus.png | Bin 457 -> 0 bytes .../images/media_flags/studio/rick_mill.png | Bin 11998 -> 0 bytes .../studio/rickety_shack_films.png | Bin 12193 -> 0 bytes .../studio/river_road_entertainment.png | Bin 14403 -> 0 bytes .../media_flags/studio/rko_radio_pictures.png | Bin 27085 -> 0 bytes .../studio/roadside_attractions.png | Bin 24468 -> 0 bytes .../media_flags/studio/rogue_pictures.png | Bin 2963 -> 0 bytes .../images/media_flags/studio/romar.png | Bin 4421 -> 0 bytes .../images/media_flags/studio/rte_one.png | Bin 2732 -> 0 bytes .../default/images/media_flags/studio/rtl.png | Bin 1103 -> 0 bytes .../images/media_flags/studio/rtl4.png | Bin 3319 -> 0 bytes .../images/media_flags/studio/rtl5.png | Bin 7631 -> 0 bytes .../images/media_flags/studio/rtl7.png | Bin 2024 -> 0 bytes .../images/media_flags/studio/rtl8.png | Bin 7891 -> 0 bytes .../images/media_flags/studio/rtl_ii.png | Bin 1626 -> 0 bytes .../studio/rysher_entertainment.png | Bin 10216 -> 0 bytes .../images/media_flags/studio/saban.png | Bin 4231 -> 0 bytes .../studio/salter_street_films.png | Bin 4438 -> 0 bytes .../images/media_flags/studio/sandrew.png | Bin 3365 -> 0 bytes .../images/media_flags/studio/sat1.png | Bin 4018 -> 0 bytes .../media_flags/studio/saturn_films.png | Bin 4390 -> 0 bytes .../images/media_flags/studio/saul_zaentz.png | Bin 1572 -> 0 bytes .../default/images/media_flags/studio/sbs.png | Bin 4233 -> 0 bytes .../images/media_flags/studio/scholastic.png | Bin 1773 -> 0 bytes .../images/media_flags/studio/scifi.png | Bin 5874 -> 0 bytes .../images/media_flags/studio/scott_free.png | Bin 5089 -> 0 bytes .../media_flags/studio/screen_australia.png | Bin 3996 -> 0 bytes .../images/media_flags/studio/screen_gems.png | Bin 8889 -> 0 bytes .../images/media_flags/studio/seeso.png | Bin 4752 -> 0 bytes .../media_flags/studio/selznick_pictures.png | Bin 14418 -> 0 bytes .../images/media_flags/studio/semafor.png | Bin 1807 -> 0 bytes .../media_flags/studio/seven network.png | Bin 1233 -> 0 bytes .../default/images/media_flags/studio/sfi.png | Bin 2425 -> 0 bytes .../studio/shady_acres_entertainment.png | Bin 21057 -> 0 bytes .../images/media_flags/studio/shaft.png | Bin 13693 -> 0 bytes .../studio/shangri-la_entertainment.png | Bin 20886 -> 0 bytes .../media_flags/studio/shout_factory.png | Bin 6686 -> 0 bytes .../images/media_flags/studio/showcase.png | Bin 6600 -> 0 bytes .../images/media_flags/studio/showcase_au.png | Bin 3024 -> 0 bytes .../images/media_flags/studio/showtime.png | Bin 4087 -> 0 bytes .../media_flags/studio/sidney_kimmel.png | Bin 36298 -> 0 bytes .../media_flags/studio/silver_pictures.png | Bin 8104 -> 0 bytes .../default/images/media_flags/studio/sky.png | Bin 2767 -> 0 bytes .../images/media_flags/studio/sky_1.png | Bin 2242 -> 0 bytes .../studio/skydance_productions.png | Bin 5070 -> 0 bytes .../images/media_flags/studio/slim_films.png | Bin 18795 -> 0 bytes .../default/images/media_flags/studio/smc.png | Bin 1925 -> 0 bytes .../images/media_flags/studio/snl_studios.png | Bin 6066 -> 0 bytes .../media_flags/studio/sobini_films.png | Bin 10832 -> 0 bytes .../images/media_flags/studio/sony.png | Bin 5193 -> 0 bytes .../media_flags/studio/sony_pictures.png | Bin 5193 -> 0 bytes .../studio/sony_pictures_animation.png | Bin 10659 -> 0 bytes .../images/media_flags/studio/space.png | Bin 5344 -> 0 bytes .../media_flags/studio/spelling_films.png | Bin 16056 -> 0 bytes .../images/media_flags/studio/spike.png | Bin 3486 -> 0 bytes .../media_flags/studio/spitfire_pictures.png | Bin 9130 -> 0 bytes .../images/media_flags/studio/splendid.png | Bin 7474 -> 0 bytes .../studio/spyglass_entertainment.png | Bin 14721 -> 0 bytes .../images/media_flags/studio/squareenix.png | Bin 1880 -> 0 bytes .../images/media_flags/studio/stage6.png | Bin 4291 -> 0 bytes .../images/media_flags/studio/stan.png | Bin 5286 -> 0 bytes .../studio/starbucks_entertainment.png | Bin 9836 -> 0 bytes .../images/media_flags/studio/starz.png | Bin 2689 -> 0 bytes .../images/media_flags/studio/steele.png | Bin 3992 -> 0 bytes .../images/media_flags/studio/storyline.png | Bin 2528 -> 0 bytes .../media_flags/studio/studio_canal.png | Bin 7199 -> 0 bytes .../media_flags/studio/studio_ghibli.png | Bin 6449 -> 0 bytes .../images/media_flags/studio/summit.png | Bin 4288 -> 0 bytes .../images/media_flags/studio/sundancetv.png | Bin 6410 -> 0 bytes .../images/media_flags/studio/sunrise.png | Bin 6895 -> 0 bytes .../media_flags/studio/super_channel.png | Bin 4300 -> 0 bytes .../studio/svensk_filmindustri.png | Bin 23211 -> 0 bytes .../default/images/media_flags/studio/svt.png | Bin 14320 -> 0 bytes .../images/media_flags/studio/svt1.png | Bin 1735 -> 0 bytes .../images/media_flags/studio/svt2.png | Bin 2227 -> 0 bytes .../images/media_flags/studio/syfy.png | Bin 2748 -> 0 bytes .../images/media_flags/studio/syncopy.png | Bin 5345 -> 0 bytes .../images/media_flags/studio/syrena.png | Bin 4998 -> 0 bytes .../images/media_flags/studio/tandem.png | Bin 7108 -> 0 bytes .../images/media_flags/studio/taurus_film.png | Bin 8252 -> 0 bytes .../default/images/media_flags/studio/tbs.png | Bin 2461 -> 0 bytes .../images/media_flags/studio/telecinco.png | Bin 2074 -> 0 bytes .../images/media_flags/studio/telemundo.png | Bin 7579 -> 0 bytes .../images/media_flags/studio/teletoon.png | Bin 4234 -> 0 bytes .../images/media_flags/studio/telos.png | Bin 2872 -> 0 bytes .../default/images/media_flags/studio/tf1.png | Bin 447 -> 0 bytes .../images/media_flags/studio/the_cw.png | Bin 1088 -> 0 bytes .../studio/the_entertainment_group.png | Bin 6463 -> 0 bytes .../media_flags/studio/the_film_foundry.png | Bin 17854 -> 0 bytes .../images/media_flags/studio/the_hub.png | Bin 6567 -> 0 bytes .../studio/the_independent_film_channel.png | Bin 7832 -> 0 bytes .../images/media_flags/studio/the_wb.png | Bin 2981 -> 0 bytes .../studio/the_wb_television_network.png | Bin 13172 -> 0 bytes .../media_flags/studio/thierry_mugler.png | Bin 4148 -> 0 bytes .../images/media_flags/studio/think_film.png | Bin 3157 -> 0 bytes .../media_flags/studio/this_is_that.png | Bin 10947 -> 0 bytes .../default/images/media_flags/studio/tlc.png | Bin 1482 -> 0 bytes .../default/images/media_flags/studio/tnt.png | Bin 2649 -> 0 bytes .../images/media_flags/studio/toho.png | Bin 2020 -> 0 bytes .../default/images/media_flags/studio/tor.png | Bin 2349 -> 0 bytes .../images/media_flags/studio/touchstone.png | Bin 4936 -> 0 bytes .../media_flags/studio/tristar_pictures.png | Bin 20735 -> 0 bytes .../images/media_flags/studio/trutv.png | Bin 4059 -> 0 bytes .../images/media_flags/studio/turner.png | Bin 972 -> 0 bytes .../default/images/media_flags/studio/tv2.png | Bin 1126 -> 0 bytes .../default/images/media_flags/studio/tv3.png | Bin 1318 -> 0 bytes .../default/images/media_flags/studio/tv4.png | Bin 1617 -> 0 bytes .../images/media_flags/studio/tv_2.png | Bin 1753 -> 0 bytes .../images/media_flags/studio/tv_land.png | Bin 16190 -> 0 bytes .../images/media_flags/studio/tv_tokyo.png | Bin 3284 -> 0 bytes .../default/images/media_flags/studio/tvn.png | Bin 1676 -> 0 bytes .../images/media_flags/studio/tvnz.png | Bin 1784 -> 0 bytes .../default/images/media_flags/studio/tvp.png | Bin 949 -> 0 bytes .../media_flags/studio/twisted_pictures.png | Bin 6355 -> 0 bytes .../images/media_flags/studio/twit.png | Bin 6829 -> 0 bytes .../default/images/media_flags/studio/ugc.png | Bin 2553 -> 0 bytes .../media_flags/studio/uk_film_council.png | Bin 11718 -> 0 bytes .../media_flags/studio/united_artists.png | Bin 3086 -> 0 bytes .../images/media_flags/studio/universal.png | Bin 2063 -> 0 bytes .../images/media_flags/studio/univision.png | Bin 2848 -> 0 bytes .../images/media_flags/studio/up_tv.png | Bin 11383 -> 0 bytes .../default/images/media_flags/studio/upn.png | Bin 4152 -> 0 bytes .../images/media_flags/studio/usa_network.png | Bin 2457 -> 0 bytes .../images/media_flags/studio/vara.png | Bin 3185 -> 0 bytes .../images/media_flags/studio/versus.png | Bin 3277 -> 0 bytes .../images/media_flags/studio/vertigo.png | Bin 7482 -> 0 bytes .../default/images/media_flags/studio/vh1.png | Bin 2100 -> 0 bytes .../images/media_flags/studio/viacom.png | Bin 2937 -> 0 bytes .../images/media_flags/studio/view_askew.png | Bin 59117 -> 0 bytes .../studio/village_roadshow_pictures.png | Bin 19011 -> 0 bytes .../images/media_flags/studio/vimeo.png | Bin 3488 -> 0 bytes .../media_flags/studio/virtual_studios.png | Bin 3380 -> 0 bytes .../media_flags/studio/vital_film_works.png | Bin 9951 -> 0 bytes .../default/images/media_flags/studio/viz.png | Bin 5290 -> 0 bytes .../studio/vortex_entertainment.png | Bin 16919 -> 0 bytes .../default/images/media_flags/studio/vox.png | Bin 2181 -> 0 bytes .../images/media_flags/studio/vpro.png | Bin 4946 -> 0 bytes .../default/images/media_flags/studio/vtm.png | Bin 1334 -> 0 bytes .../media_flags/studio/walden_media.png | Bin 15603 -> 0 bytes .../studio/walt_disney_pictures.png | Bin 9301 -> 0 bytes .../images/media_flags/studio/warner_bros.png | Bin 14656 -> 0 bytes .../studio/warner_bros_animation.png | Bin 11057 -> 0 bytes .../studio/warner_independent_pictures.png | Bin 4267 -> 0 bytes .../studio/water_walk_productions.png | Bin 25207 -> 0 bytes .../default/images/media_flags/studio/wdr.png | Bin 1433 -> 0 bytes .../images/media_flags/studio/we_tv.png | Bin 7944 -> 0 bytes .../media_flags/studio/weinstein_company.png | Bin 10907 -> 0 bytes .../images/media_flags/studio/wfdif.png | Bin 1563 -> 0 bytes .../default/images/media_flags/studio/wgn.png | Bin 7606 -> 0 bytes .../images/media_flags/studio/wild_bunch.png | Bin 4390 -> 0 bytes .../images/media_flags/studio/wild_side.png | Bin 11173 -> 0 bytes .../studio/working_title_films.png | Bin 2530 -> 0 bytes .../images/media_flags/studio/xfilme.png | Bin 2626 -> 0 bytes .../media_flags/studio/xxx_productions.png | Bin 3266 -> 0 bytes .../media_flags/studio/yahoo_screen.png | Bin 7636 -> 0 bytes .../media_flags/studio/yari_film_group.png | Bin 11399 -> 0 bytes .../images/media_flags/studio/youtube.png | Bin 2959 -> 0 bytes .../default/images/media_flags/studio/ytv.png | Bin 13285 -> 0 bytes .../media_flags/studio/zaloom_mayfield.png | Bin 36271 -> 0 bytes .../default/images/media_flags/studio/zdf.png | Bin 2667 -> 0 bytes .../images/media_flags/studio/zebra.png | Bin 1847 -> 0 bytes .../images/media_flags/studio/zentropa.png | Bin 1219 -> 0 bytes .../images/media_flags/studio/zomba.png | Bin 5587 -> 0 bytes .../images/media_flags/video_codec/h264.png | Bin 764 -> 0 bytes .../images/media_flags/video_codec/hevc.png | Bin 850 -> 0 bytes .../media_flags/video_codec/mpeg1video.png | Bin 586 -> 0 bytes .../media_flags/video_codec/mpeg2video.png | Bin 645 -> 0 bytes .../images/media_flags/video_codec/mpeg4.png | Bin 1030 -> 0 bytes .../images/media_flags/video_codec/vc1.png | Bin 1042 -> 0 bytes .../images/media_flags/video_codec/wmv.png | Bin 1139 -> 0 bytes .../images/media_flags/video_codec/wmvhd.png | Bin 1696 -> 0 bytes .../media_flags/video_framerate/24p.png | Bin 894 -> 0 bytes .../media_flags/video_framerate/25p.png | Bin 1030 -> 0 bytes .../media_flags/video_framerate/50p.png | Bin 1053 -> 0 bytes .../media_flags/video_framerate/60p.png | Bin 1120 -> 0 bytes .../media_flags/video_framerate/NTSC.png | Bin 1297 -> 0 bytes .../media_flags/video_framerate/PAL.png | Bin 814 -> 0 bytes .../media_flags/video_resolution/1080.png | Bin 1625 -> 0 bytes .../media_flags/video_resolution/1080i.png | Bin 1537 -> 0 bytes .../media_flags/video_resolution/270.png | Bin 1357 -> 0 bytes .../media_flags/video_resolution/360.png | Bin 1567 -> 0 bytes .../media_flags/video_resolution/432.png | Bin 1348 -> 0 bytes .../media_flags/video_resolution/468.png | Bin 1639 -> 0 bytes .../media_flags/video_resolution/480.png | Bin 1442 -> 0 bytes .../media_flags/video_resolution/480i.png | Bin 1368 -> 0 bytes .../media_flags/video_resolution/4k.png | Bin 456 -> 0 bytes .../media_flags/video_resolution/540.png | Bin 1406 -> 0 bytes .../media_flags/video_resolution/544.png | Bin 1087 -> 0 bytes .../media_flags/video_resolution/576.png | Bin 1423 -> 0 bytes .../media_flags/video_resolution/576i.png | Bin 1325 -> 0 bytes .../media_flags/video_resolution/720.png | Bin 1331 -> 0 bytes .../media_flags/video_resolution/8k.png | Bin 584 -> 0 bytes .../media_flags/video_resolution/hdtv.png | Bin 1070 -> 0 bytes .../media_flags/video_resolution/sd.png | Bin 901 -> 0 bytes .../images/newsletter/newsletter-header.png | Bin 33998 -> 0 bytes .../images/newsletter/view-on-plex-cover.png | Bin 4954 -> 0 bytes .../images/newsletter/view-on-plex-flat.png | Bin 5535 -> 0 bytes .../images/newsletter/view-on-plex-poster.png | Bin 5206 -> 0 bytes .../default/images/platforms/alexa.svg | 5 - .../default/images/platforms/android.svg | 5 - .../default/images/platforms/atv.svg | 8 - .../default/images/platforms/chrome.svg | 8 - .../default/images/platforms/chromecast.svg | 8 - .../default/images/platforms/cloudsync.svg | 6 - .../default/images/platforms/default.svg | 5 - .../default/images/platforms/dlna.svg | 5 - .../default/images/platforms/firefox.svg | 5 - .../default/images/platforms/gtv.svg | 14 - .../default/images/platforms/ie.svg | 5 - .../default/images/platforms/ios.svg | 10 - .../default/images/platforms/kodi.svg | 8 - .../default/images/platforms/lg.svg | 7 - .../default/images/platforms/linux.svg | 8 - .../default/images/platforms/macos.svg | 6 - .../default/images/platforms/msedge.svg | 7 - .../default/images/platforms/opera.svg | 6 - .../default/images/platforms/playstation.svg | 7 - .../default/images/platforms/plex.svg | 5 - .../default/images/platforms/plexamp.svg | 5 - .../default/images/platforms/roku.svg | 7 - .../default/images/platforms/safari.svg | 66 - .../default/images/platforms/samsung.svg | 5 - .../default/images/platforms/synclounge.svg | 9 - .../default/images/platforms/tivo.svg | 5 - .../default/images/platforms/wiiu.svg | 6 - .../default/images/platforms/windows.svg | 8 - .../default/images/platforms/xbox.svg | 8 - .../default/images/plex-logo-light-small.png | Bin 1441 -> 0 bytes .../default/images/plex-logo-light.svg | 26 - .../interfaces/default/images/poster-live.png | Bin 37808 -> 0 bytes data/interfaces/default/images/poster.png | Bin 62184 -> 0 bytes .../interfaces/default/images/rating/imdb.svg | 1 - .../default/images/rating/popcorn-spilled.svg | 8 - .../default/images/rating/popcorn-upright.svg | 1 - .../default/images/rating/themoviedb.svg | 1 - .../default/images/rating/thetvdb.svg | 1 - .../default/images/rating/tomato-ripe.svg | 1 - .../default/images/rating/tomato-rotten.svg | 1 - data/interfaces/default/images/tautulli.png | Bin 9132 -> 0 bytes data/interfaces/default/images/tautulli.svg | 44 - data/interfaces/default/index.html | 1078 --- data/interfaces/default/info.html | 1190 --- .../default/info_children_list.html | 268 - .../default/info_collection_list.html | 93 - .../default/info_search_results_list.html | 273 - data/interfaces/default/ip_address_modal.html | 166 - data/interfaces/default/js/Sortable.min.js | 2 - .../default/js/ajaxNotifications.js | 38 - .../default/js/blurhash_pure_js_port.min.js | 1 - .../js/bootstrap-hover-dropdown.min.js | 12 - .../default/js/bootstrap-wizard.min.js | 1 - data/interfaces/default/js/bootstrap.min.js | 6 - .../default/js/dataTables.bootstrap.min.js | 14 - .../js/dataTables.bootstrap.pagination.js | 117 - .../default/js/dataTables.colVis.js | 1139 --- data/interfaces/default/js/filterer.jquery.js | 9 - .../default/js/graphs/plays_by_day.js | 71 - .../default/js/graphs/plays_by_dayofweek.js | 73 - .../default/js/graphs/plays_by_hourofday.js | 73 - .../default/js/graphs/plays_by_month.js | 73 - .../default/js/graphs/plays_by_platform.js | 73 - .../plays_by_platform_by_stream_type.js | 73 - .../js/graphs/plays_by_source_resolution.js | 73 - .../js/graphs/plays_by_stream_resolution.js | 73 - .../default/js/graphs/plays_by_stream_type.js | 71 - .../default/js/graphs/plays_by_user.js | 73 - .../js/graphs/plays_by_user_by_stream_type.js | 73 - data/interfaces/default/js/highcharts.min.js | 596 -- data/interfaces/default/js/ipaddr.min.js | 1 - .../interfaces/default/js/jquery-3.6.0.min.js | 2 - data/interfaces/default/js/jquery-cron-min.js | 1 - data/interfaces/default/js/jquery-ui.min.js | 13 - .../default/js/jquery.dataTables.min.js | 187 - .../default/js/jquery.inputaffix.min.js | 1 - .../default/js/jquery.mousewheel.min.js | 8 - .../default/js/jquery.rateit.min.js | 2 - .../default/js/jquery.scrollbar.min.js | 16 - .../default/js/jquery.tripleclick.min.js | 1 - data/interfaces/default/js/kjua.min.js | 2 - .../default/js/moment-duration-format.min.js | 11 - .../default/js/moment-with-locales.min.js | 2 - data/interfaces/default/js/parsley.min.js | 9 - data/interfaces/default/js/platform.min.js | 7 - .../default/js/pnotify.custom.min.js | 49 - data/interfaces/default/js/script.js | 931 -- data/interfaces/default/js/selectize.min.js | 3 - .../js/selectize.plugin.disable-options.js | 87 - .../default/js/tables/collections_table.js | 125 - .../default/js/tables/export_table.js | 255 - .../default/js/tables/history_table.js | 617 -- .../default/js/tables/history_table_modal.js | 182 - .../interfaces/default/js/tables/libraries.js | 322 - .../default/js/tables/login_logs.js | 170 - data/interfaces/default/js/tables/logs.js | 50 - .../default/js/tables/media_info_table.js | 509 - .../default/js/tables/newsletter_logs.js | 151 - .../default/js/tables/notification_logs.js | 121 - .../default/js/tables/playlists_table.js | 105 - .../interfaces/default/js/tables/plex_logs.js | 50 - .../default/js/tables/sync_table.js | 181 - data/interfaces/default/js/tables/user_ips.js | 226 - data/interfaces/default/js/tables/users.js | 403 - data/interfaces/default/libraries.html | 209 - data/interfaces/default/library.html | 978 -- .../default/library_recently_added.html | 124 - data/interfaces/default/library_stats.html | 96 - .../default/library_user_stats.html | 50 - data/interfaces/default/login.html | 190 - data/interfaces/default/logs.html | 555 -- .../default/mobile_device_config.html | 154 - .../default/mobile_devices_table.html | 168 - data/interfaces/default/newsletter_auth.html | 49 - .../interfaces/default/newsletter_config.html | 817 -- .../default/newsletter_preview.html | 51 - .../interfaces/default/newsletters_table.html | 51 - data/interfaces/default/notifier_config.html | 944 -- .../default/notifier_text_preview.html | 32 - data/interfaces/default/notifiers_table.html | 42 - data/interfaces/default/queue_modal.html | 67 - data/interfaces/default/recently_added.html | 192 - data/interfaces/default/scheduler_table.html | 86 - data/interfaces/default/search.html | 52 - data/interfaces/default/settings.html | 3240 ------- data/interfaces/default/shutdown.html | 87 - data/interfaces/default/stream_data.html | 256 - data/interfaces/default/support.html | 68 - data/interfaces/default/sync.html | 199 - data/interfaces/default/update_metadata.html | 257 - data/interfaces/default/user.html | 969 -- .../interfaces/default/user_player_stats.html | 43 - .../default/user_recently_watched.html | 169 - .../default/user_watch_time_stats.html | 48 - data/interfaces/default/users.html | 216 - data/interfaces/default/welcome.html | 560 -- data/interfaces/default/xml_shortcut.html | 65 - .../newsletters/recently_added.html | 1090 --- .../newsletters/recently_added.internal.html | 1090 --- init-scripts/init.freebsd | 82 - init-scripts/init.freenas | 1 - init-scripts/init.osx | 18 - init-scripts/init.systemd | 64 - lib/IPy.py | 1660 ---- lib/UniversalAnalytics/HTTPLog.py | 121 - lib/UniversalAnalytics/Tracker.py | 424 - lib/UniversalAnalytics/__init__.py | 1 - lib/appdirs.py | 608 -- lib/apscheduler/__init__.py | 10 - lib/apscheduler/events.py | 94 - lib/apscheduler/executors/__init__.py | 0 lib/apscheduler/executors/asyncio.py | 59 - lib/apscheduler/executors/base.py | 146 - lib/apscheduler/executors/base_py3.py | 43 - lib/apscheduler/executors/debug.py | 20 - lib/apscheduler/executors/gevent.py | 30 - lib/apscheduler/executors/pool.py | 71 - lib/apscheduler/executors/tornado.py | 54 - lib/apscheduler/executors/twisted.py | 25 - lib/apscheduler/job.py | 302 - lib/apscheduler/jobstores/__init__.py | 0 lib/apscheduler/jobstores/base.py | 143 - lib/apscheduler/jobstores/memory.py | 108 - lib/apscheduler/jobstores/mongodb.py | 141 - lib/apscheduler/jobstores/redis.py | 150 - lib/apscheduler/jobstores/rethinkdb.py | 155 - lib/apscheduler/jobstores/sqlalchemy.py | 154 - lib/apscheduler/jobstores/zookeeper.py | 178 - lib/apscheduler/schedulers/__init__.py | 12 - lib/apscheduler/schedulers/asyncio.py | 74 - lib/apscheduler/schedulers/background.py | 43 - lib/apscheduler/schedulers/base.py | 1026 -- lib/apscheduler/schedulers/blocking.py | 35 - lib/apscheduler/schedulers/gevent.py | 35 - lib/apscheduler/schedulers/qt.py | 50 - lib/apscheduler/schedulers/tornado.py | 63 - lib/apscheduler/schedulers/twisted.py | 62 - lib/apscheduler/triggers/__init__.py | 0 lib/apscheduler/triggers/base.py | 37 - lib/apscheduler/triggers/combining.py | 95 - lib/apscheduler/triggers/cron/__init__.py | 239 - lib/apscheduler/triggers/cron/expressions.py | 251 - lib/apscheduler/triggers/cron/fields.py | 111 - lib/apscheduler/triggers/date.py | 51 - lib/apscheduler/triggers/interval.py | 108 - lib/apscheduler/util.py | 438 - lib/arrow/__init__.py | 39 - lib/arrow/_version.py | 1 - lib/arrow/api.py | 126 - lib/arrow/arrow.py | 1886 ---- lib/arrow/constants.py | 167 - lib/arrow/factory.py | 348 - lib/arrow/formatter.py | 152 - lib/arrow/locales.py | 6012 ------------ lib/arrow/parser.py | 779 -- lib/arrow/py.typed | 0 lib/arrow/util.py | 117 - lib/backports/__init__.py | 5 - lib/backports/csv.py | 979 -- lib/backports/functools_lru_cache.py | 196 - lib/backports/zoneinfo/__init__.py | 49 - lib/backports/zoneinfo/__init__.pyi | 45 - lib/backports/zoneinfo/_common.py | 171 - lib/backports/zoneinfo/_tzpath.py | 207 - lib/backports/zoneinfo/_version.py | 1 - lib/backports/zoneinfo/_zoneinfo.py | 754 -- lib/backports/zoneinfo/py.typed | 0 lib/bleach/__init__.py | 125 - lib/bleach/_vendor/README.rst | 61 - lib/bleach/_vendor/__init__.py | 0 .../html5lib-1.1.dist-info/AUTHORS.rst | 66 - .../_vendor/html5lib-1.1.dist-info/INSTALLER | 1 - .../_vendor/html5lib-1.1.dist-info/LICENSE | 20 - .../_vendor/html5lib-1.1.dist-info/METADATA | 552 -- .../_vendor/html5lib-1.1.dist-info/RECORD | 41 - .../_vendor/html5lib-1.1.dist-info/REQUESTED | 0 .../_vendor/html5lib-1.1.dist-info/WHEEL | 6 - .../html5lib-1.1.dist-info/top_level.txt | 1 - lib/bleach/_vendor/html5lib/__init__.py | 35 - lib/bleach/_vendor/html5lib/_ihatexml.py | 289 - lib/bleach/_vendor/html5lib/_inputstream.py | 918 -- lib/bleach/_vendor/html5lib/_tokenizer.py | 1735 ---- lib/bleach/_vendor/html5lib/_trie/__init__.py | 5 - lib/bleach/_vendor/html5lib/_trie/_base.py | 40 - lib/bleach/_vendor/html5lib/_trie/py.py | 67 - lib/bleach/_vendor/html5lib/_utils.py | 159 - lib/bleach/_vendor/html5lib/constants.py | 2946 ------ .../_vendor/html5lib/filters/__init__.py | 0 .../filters/alphabeticalattributes.py | 29 - lib/bleach/_vendor/html5lib/filters/base.py | 12 - .../html5lib/filters/inject_meta_charset.py | 73 - lib/bleach/_vendor/html5lib/filters/lint.py | 93 - .../_vendor/html5lib/filters/optionaltags.py | 207 - .../_vendor/html5lib/filters/sanitizer.py | 916 -- .../_vendor/html5lib/filters/whitespace.py | 38 - lib/bleach/_vendor/html5lib/html5parser.py | 2795 ------ lib/bleach/_vendor/html5lib/serializer.py | 409 - .../_vendor/html5lib/treeadapters/__init__.py | 30 - .../_vendor/html5lib/treeadapters/genshi.py | 54 - .../_vendor/html5lib/treeadapters/sax.py | 50 - .../_vendor/html5lib/treebuilders/__init__.py | 88 - .../_vendor/html5lib/treebuilders/base.py | 417 - .../_vendor/html5lib/treebuilders/dom.py | 239 - .../_vendor/html5lib/treebuilders/etree.py | 343 - .../html5lib/treebuilders/etree_lxml.py | 392 - .../_vendor/html5lib/treewalkers/__init__.py | 154 - .../_vendor/html5lib/treewalkers/base.py | 252 - .../_vendor/html5lib/treewalkers/dom.py | 43 - .../_vendor/html5lib/treewalkers/etree.py | 131 - .../html5lib/treewalkers/etree_lxml.py | 215 - .../_vendor/html5lib/treewalkers/genshi.py | 69 - lib/bleach/_vendor/parse.py | 1078 --- lib/bleach/_vendor/parse.py.SHA256SUM | 1 - lib/bleach/_vendor/vendor.txt | 3 - lib/bleach/_vendor/vendor_install.sh | 14 - lib/bleach/callbacks.py | 32 - lib/bleach/css_sanitizer.py | 104 - lib/bleach/html5lib_shim.py | 724 -- lib/bleach/linkifier.py | 566 -- lib/bleach/sanitizer.py | 609 -- lib/bs4/__init__.py | 812 -- lib/bs4/builder/__init__.py | 631 -- lib/bs4/builder/_html5lib.py | 473 - lib/bs4/builder/_htmlparser.py | 499 - lib/bs4/builder/_lxml.py | 386 - lib/bs4/dammit.py | 1095 --- lib/bs4/diagnose.py | 248 - lib/bs4/element.py | 2291 ----- lib/bs4/formatter.py | 185 - lib/bs4/tests/__init__.py | 1191 --- lib/bs4/tests/test_builder.py | 29 - lib/bs4/tests/test_builder_registry.py | 136 - lib/bs4/tests/test_dammit.py | 371 - lib/bs4/tests/test_docs.py | 38 - lib/bs4/tests/test_element.py | 74 - lib/bs4/tests/test_formatter.py | 113 - lib/bs4/tests/test_html5lib.py | 223 - lib/bs4/tests/test_htmlparser.py | 136 - lib/bs4/tests/test_lxml.py | 199 - lib/bs4/tests/test_navigablestring.py | 144 - lib/bs4/tests/test_pageelement.py | 751 -- lib/bs4/tests/test_soup.py | 462 - lib/bs4/tests/test_tag.py | 221 - lib/bs4/tests/test_tree.py | 1290 --- lib/certgen.py | 106 - lib/certifi/__init__.py | 4 - lib/certifi/__main__.py | 12 - lib/certifi/cacert.pem | 4530 --------- lib/certifi/core.py | 68 - lib/certifi/py.typed | 0 lib/charset_normalizer/__init__.py | 56 - lib/charset_normalizer/api.py | 608 -- lib/charset_normalizer/assets/__init__.py | 1244 --- lib/charset_normalizer/cd.py | 340 - lib/charset_normalizer/cli/__init__.py | 0 lib/charset_normalizer/cli/normalizer.py | 290 - lib/charset_normalizer/constant.py | 503 - lib/charset_normalizer/legacy.py | 95 - lib/charset_normalizer/md.py | 559 -- lib/charset_normalizer/models.py | 392 - lib/charset_normalizer/py.typed | 0 lib/charset_normalizer/utils.py | 342 - lib/charset_normalizer/version.py | 6 - lib/cheroot/__init__.py | 15 - lib/cheroot/__init__.pyi | 1 - lib/cheroot/__main__.py | 6 - lib/cheroot/_compat.py | 148 - lib/cheroot/cli.py | 247 - lib/cheroot/cli.pyi | 32 - lib/cheroot/connections.py | 397 - lib/cheroot/connections.pyi | 23 - lib/cheroot/errors.py | 88 - lib/cheroot/errors.pyi | 13 - lib/cheroot/makefile.py | 447 - lib/cheroot/makefile.pyi | 32 - lib/cheroot/py.typed | 0 lib/cheroot/server.py | 2204 ----- lib/cheroot/server.pyi | 172 - lib/cheroot/ssl/__init__.py | 52 - lib/cheroot/ssl/__init__.pyi | 19 - lib/cheroot/ssl/builtin.py | 485 - lib/cheroot/ssl/builtin.pyi | 18 - lib/cheroot/ssl/pyopenssl.py | 382 - lib/cheroot/ssl/pyopenssl.pyi | 30 - lib/cheroot/test/__init__.py | 1 - lib/cheroot/test/_pytest_plugin.py | 50 - lib/cheroot/test/conftest.py | 71 - lib/cheroot/test/helper.py | 174 - lib/cheroot/test/test__compat.py | 66 - lib/cheroot/test/test_cli.py | 98 - lib/cheroot/test/test_conn.py | 1303 --- lib/cheroot/test/test_core.py | 454 - lib/cheroot/test/test_dispatch.py | 55 - lib/cheroot/test/test_errors.py | 30 - lib/cheroot/test/test_makefile.py | 52 - lib/cheroot/test/test_server.py | 431 - lib/cheroot/test/test_ssl.py | 763 -- lib/cheroot/test/test_wsgi.py | 83 - lib/cheroot/test/webtest.py | 613 -- lib/cheroot/testing.py | 153 - lib/cheroot/testing.pyi | 17 - lib/cheroot/workers/__init__.py | 1 - lib/cheroot/workers/__init__.pyi | 0 lib/cheroot/workers/threadpool.py | 330 - lib/cheroot/workers/threadpool.pyi | 37 - lib/cheroot/wsgi.py | 435 - lib/cheroot/wsgi.pyi | 42 - lib/cherrypy/__init__.py | 370 - lib/cherrypy/__main__.py | 5 - lib/cherrypy/_cpchecker.py | 323 - lib/cherrypy/_cpcompat.py | 59 - lib/cherrypy/_cpconfig.py | 296 - lib/cherrypy/_cpdispatch.py | 686 -- lib/cherrypy/_cperror.py | 619 -- lib/cherrypy/_cplogging.py | 457 - lib/cherrypy/_cpmodpy.py | 354 - lib/cherrypy/_cpnative_server.py | 168 - lib/cherrypy/_cpreqbody.py | 993 -- lib/cherrypy/_cprequest.py | 932 -- lib/cherrypy/_cpserver.py | 241 - lib/cherrypy/_cptools.py | 502 - lib/cherrypy/_cptree.py | 302 - lib/cherrypy/_cpwsgi.py | 451 - lib/cherrypy/_cpwsgi_server.py | 110 - lib/cherrypy/_helper.py | 348 - lib/cherrypy/_json.py | 25 - lib/cherrypy/daemon.py | 107 - lib/cherrypy/favicon.ico | Bin 1406 -> 0 bytes lib/cherrypy/lib/__init__.py | 101 - lib/cherrypy/lib/auth_basic.py | 120 - lib/cherrypy/lib/auth_digest.py | 463 - lib/cherrypy/lib/caching.py | 478 - lib/cherrypy/lib/covercp.py | 390 - lib/cherrypy/lib/cpstats.py | 694 -- lib/cherrypy/lib/cptools.py | 637 -- lib/cherrypy/lib/encoding.py | 454 - lib/cherrypy/lib/gctools.py | 218 - lib/cherrypy/lib/httputil.py | 518 - lib/cherrypy/lib/jsontools.py | 89 - lib/cherrypy/lib/locking.py | 47 - lib/cherrypy/lib/profiler.py | 221 - lib/cherrypy/lib/reprconf.py | 397 - lib/cherrypy/lib/sessions.py | 910 -- lib/cherrypy/lib/static.py | 416 - lib/cherrypy/lib/xmlrpcutil.py | 60 - lib/cherrypy/process/__init__.py | 17 - lib/cherrypy/process/plugins.py | 754 -- lib/cherrypy/process/servers.py | 416 - lib/cherrypy/process/win32.py | 183 - lib/cherrypy/process/wspbus.py | 587 -- lib/cherrypy/scaffold/__init__.py | 63 - lib/cherrypy/scaffold/apache-fcgi.conf | 22 - lib/cherrypy/scaffold/example.conf | 3 - lib/cherrypy/scaffold/site.conf | 14 - .../static/made_with_cherrypy_small.png | Bin 6347 -> 0 bytes lib/cherrypy/test/__init__.py | 24 - lib/cherrypy/test/_test_decorators.py | 39 - lib/cherrypy/test/_test_states_demo.py | 69 - lib/cherrypy/test/benchmark.py | 425 - lib/cherrypy/test/checkerdemo.py | 49 - lib/cherrypy/test/fastcgi.conf | 18 - lib/cherrypy/test/fcgi.conf | 14 - lib/cherrypy/test/helper.py | 519 - lib/cherrypy/test/logtest.py | 231 - lib/cherrypy/test/modfastcgi.py | 136 - lib/cherrypy/test/modfcgid.py | 124 - lib/cherrypy/test/modpy.py | 164 - lib/cherrypy/test/modwsgi.py | 154 - lib/cherrypy/test/sessiondemo.py | 159 - lib/cherrypy/test/static/404.html | 5 - lib/cherrypy/test/static/dirback.jpg | Bin 16585 -> 0 bytes lib/cherrypy/test/static/index.html | 1 - lib/cherrypy/test/style.css | 1 - lib/cherrypy/test/test.pem | 38 - lib/cherrypy/test/test_auth_basic.py | 135 - lib/cherrypy/test/test_auth_digest.py | 131 - lib/cherrypy/test/test_bus.py | 327 - lib/cherrypy/test/test_caching.py | 390 - lib/cherrypy/test/test_config.py | 291 - lib/cherrypy/test/test_config_server.py | 126 - lib/cherrypy/test/test_conn.py | 864 -- lib/cherrypy/test/test_core.py | 826 -- .../test/test_dynamicobjectmapping.py | 422 - lib/cherrypy/test/test_encoding.py | 432 - lib/cherrypy/test/test_etags.py | 84 - lib/cherrypy/test/test_http.py | 305 - lib/cherrypy/test/test_httputil.py | 81 - lib/cherrypy/test/test_iterator.py | 194 - lib/cherrypy/test/test_json.py | 101 - lib/cherrypy/test/test_logging.py | 288 - lib/cherrypy/test/test_mime.py | 134 - lib/cherrypy/test/test_misc_tools.py | 210 - lib/cherrypy/test/test_native.py | 38 - lib/cherrypy/test/test_objectmapping.py | 430 - lib/cherrypy/test/test_params.py | 61 - lib/cherrypy/test/test_plugins.py | 14 - lib/cherrypy/test/test_proxy.py | 154 - lib/cherrypy/test/test_refleaks.py | 65 - lib/cherrypy/test/test_request_obj.py | 930 -- lib/cherrypy/test/test_routes.py | 80 - lib/cherrypy/test/test_session.py | 547 -- lib/cherrypy/test/test_sessionauthenticate.py | 61 - lib/cherrypy/test/test_states.py | 471 - lib/cherrypy/test/test_static.py | 464 - lib/cherrypy/test/test_tools.py | 475 - lib/cherrypy/test/test_tutorials.py | 204 - lib/cherrypy/test/test_virtualhost.py | 113 - lib/cherrypy/test/test_wsgi_ns.py | 93 - lib/cherrypy/test/test_wsgi_unix_socket.py | 92 - lib/cherrypy/test/test_wsgi_vhost.py | 35 - lib/cherrypy/test/test_wsgiapps.py | 120 - lib/cherrypy/test/test_xmlrpc.py | 149 - lib/cherrypy/test/webtest.py | 11 - lib/cherrypy/tutorial/README.rst | 16 - lib/cherrypy/tutorial/__init__.py | 3 - lib/cherrypy/tutorial/custom_error.html | 14 - lib/cherrypy/tutorial/pdf_file.pdf | Bin 85698 -> 0 bytes lib/cherrypy/tutorial/tut01_helloworld.py | 34 - lib/cherrypy/tutorial/tut02_expose_methods.py | 32 - lib/cherrypy/tutorial/tut03_get_and_post.py | 51 - lib/cherrypy/tutorial/tut04_complex_site.py | 103 - .../tutorial/tut05_derived_objects.py | 80 - lib/cherrypy/tutorial/tut06_default_method.py | 61 - lib/cherrypy/tutorial/tut07_sessions.py | 41 - .../tutorial/tut08_generators_and_yield.py | 44 - lib/cherrypy/tutorial/tut09_files.py | 105 - lib/cherrypy/tutorial/tut10_http_errors.py | 84 - lib/cherrypy/tutorial/tutorial.conf | 4 - lib/cloudinary/__init__.py | 834 -- lib/cloudinary/api.py | 673 -- lib/cloudinary/api_client/__init__.py | 0 lib/cloudinary/api_client/call_account_api.py | 35 - lib/cloudinary/api_client/call_api.py | 70 - lib/cloudinary/api_client/execute_request.py | 86 - .../api_client/tcp_keep_alive_manager.py | 119 - lib/cloudinary/auth_token.py | 52 - lib/cloudinary/cache/__init__.py | 0 lib/cloudinary/cache/adapter/__init__.py | 0 lib/cloudinary/cache/adapter/cache_adapter.py | 63 - .../cache/adapter/key_value_cache_adapter.py | 61 - .../cache/responsive_breakpoints_cache.py | 124 - lib/cloudinary/cache/storage/__init__.py | 0 .../storage/file_system_key_value_storage.py | 79 - .../cache/storage/key_value_storage.py | 51 - lib/cloudinary/compat.py | 35 - lib/cloudinary/exceptions.py | 33 - lib/cloudinary/forms.py | 142 - lib/cloudinary/http_client.py | 43 - lib/cloudinary/models.py | 135 - lib/cloudinary/poster/__init__.py | 31 - lib/cloudinary/poster/encode.py | 456 - lib/cloudinary/poster/streaminghttp.py | 209 - lib/cloudinary/provisioning/__init__.py | 5 - lib/cloudinary/provisioning/account.py | 361 - lib/cloudinary/provisioning/account_config.py | 42 - lib/cloudinary/search.py | 74 - .../static/html/cloudinary_cors.html | 43 - .../static/js/canvas-to-blob.min.js | 1 - lib/cloudinary/static/js/jquery.cloudinary.js | 4777 --------- .../static/js/jquery.fileupload-image.js | 326 - .../static/js/jquery.fileupload-process.js | 178 - .../static/js/jquery.fileupload-validate.js | 125 - lib/cloudinary/static/js/jquery.fileupload.js | 1502 --- .../static/js/jquery.iframe-transport.js | 224 - lib/cloudinary/static/js/jquery.ui.widget.js | 752 -- .../static/js/load-image.all.min.js | 1 - .../templates/cloudinary_direct_upload.html | 12 - .../templates/cloudinary_includes.html | 14 - .../templates/cloudinary_js_config.html | 3 - lib/cloudinary/templatetags/__init__.py | 1 - lib/cloudinary/templatetags/cloudinary.py | 86 - lib/cloudinary/uploader.py | 554 -- lib/cloudinary/utils.py | 1577 --- lib/configobj/__init__.py | 2453 ----- lib/configobj/_version.py | 2 - lib/configobj/validate.py | 1474 --- lib/dateutil/__init__.py | 8 - lib/dateutil/_common.py | 43 - lib/dateutil/_version.py | 5 - lib/dateutil/easter.py | 89 - lib/dateutil/parser/__init__.py | 61 - lib/dateutil/parser/_parser.py | 1613 ---- lib/dateutil/parser/isoparser.py | 416 - lib/dateutil/relativedelta.py | 599 -- lib/dateutil/rrule.py | 1737 ---- lib/dateutil/tz/__init__.py | 12 - lib/dateutil/tz/_common.py | 419 - lib/dateutil/tz/_factories.py | 80 - lib/dateutil/tz/tz.py | 1849 ---- lib/dateutil/tz/win.py | 370 - lib/dateutil/tzwin.py | 2 - lib/dateutil/utils.py | 71 - lib/dateutil/zoneinfo/__init__.py | 167 - .../zoneinfo/dateutil-zoneinfo.tar.gz | Bin 174394 -> 0 bytes lib/dateutil/zoneinfo/rebuild.py | 75 - lib/distro.py | 1386 --- lib/distro/__init__.py | 54 - lib/distro/__main__.py | 4 - lib/distro/distro.py | 1374 --- lib/distro/py.typed | 0 lib/dns/__init__.py | 66 - lib/dns/_asyncbackend.py | 69 - lib/dns/_asyncio_backend.py | 149 - lib/dns/_curio_backend.py | 108 - lib/dns/_immutable_attr.py | 84 - lib/dns/_immutable_ctx.py | 75 - lib/dns/_trio_backend.py | 121 - lib/dns/asyncbackend.py | 101 - lib/dns/asyncbackend.pyi | 13 - lib/dns/asyncquery.py | 523 - lib/dns/asyncquery.pyi | 43 - lib/dns/asyncresolver.py | 232 - lib/dns/asyncresolver.pyi | 26 - lib/dns/dnssec.py | 594 -- lib/dns/dnssec.pyi | 21 - lib/dns/e164.py | 104 - lib/dns/e164.pyi | 10 - lib/dns/edns.py | 464 - lib/dns/entropy.py | 129 - lib/dns/entropy.pyi | 10 - lib/dns/enum.py | 90 - lib/dns/exception.py | 142 - lib/dns/exception.pyi | 12 - lib/dns/flags.py | 119 - lib/dns/grange.py | 69 - lib/dns/immutable.py | 70 - lib/dns/inet.py | 170 - lib/dns/inet.pyi | 4 - lib/dns/ipv4.py | 60 - lib/dns/ipv6.py | 197 - lib/dns/message.py | 1558 --- lib/dns/message.pyi | 47 - lib/dns/name.py | 1018 -- lib/dns/name.pyi | 40 - lib/dns/namedict.py | 108 - lib/dns/node.py | 320 - lib/dns/node.pyi | 17 - lib/dns/opcode.py | 115 - lib/dns/py.typed | 0 lib/dns/query.py | 1154 --- lib/dns/query.pyi | 64 - lib/dns/rcode.py | 164 - lib/dns/rdata.py | 782 -- lib/dns/rdata.pyi | 19 - lib/dns/rdataclass.py | 115 - lib/dns/rdataset.py | 456 - lib/dns/rdataset.pyi | 58 - lib/dns/rdatatype.py | 313 - lib/dns/rdtypes/ANY/AFSDB.py | 46 - lib/dns/rdtypes/ANY/AMTRELAY.py | 86 - lib/dns/rdtypes/ANY/AVC.py | 27 - lib/dns/rdtypes/ANY/CAA.py | 69 - lib/dns/rdtypes/ANY/CDNSKEY.py | 28 - lib/dns/rdtypes/ANY/CDS.py | 30 - lib/dns/rdtypes/ANY/CERT.py | 113 - lib/dns/rdtypes/ANY/CNAME.py | 29 - lib/dns/rdtypes/ANY/CSYNC.py | 68 - lib/dns/rdtypes/ANY/DLV.py | 25 - lib/dns/rdtypes/ANY/DNAME.py | 28 - lib/dns/rdtypes/ANY/DNSKEY.py | 28 - lib/dns/rdtypes/ANY/DS.py | 25 - lib/dns/rdtypes/ANY/EUI48.py | 31 - lib/dns/rdtypes/ANY/EUI64.py | 31 - lib/dns/rdtypes/ANY/GPOS.py | 128 - lib/dns/rdtypes/ANY/HINFO.py | 65 - lib/dns/rdtypes/ANY/HIP.py | 85 - lib/dns/rdtypes/ANY/ISDN.py | 76 - lib/dns/rdtypes/ANY/L32.py | 40 - lib/dns/rdtypes/ANY/L64.py | 48 - lib/dns/rdtypes/ANY/LOC.py | 326 - lib/dns/rdtypes/ANY/LP.py | 41 - lib/dns/rdtypes/ANY/MX.py | 25 - lib/dns/rdtypes/ANY/NID.py | 47 - lib/dns/rdtypes/ANY/NINFO.py | 27 - lib/dns/rdtypes/ANY/NS.py | 25 - lib/dns/rdtypes/ANY/NSEC.py | 67 - lib/dns/rdtypes/ANY/NSEC3.py | 111 - lib/dns/rdtypes/ANY/NSEC3PARAM.py | 71 - lib/dns/rdtypes/ANY/OPENPGPKEY.py | 52 - lib/dns/rdtypes/ANY/OPT.py | 76 - lib/dns/rdtypes/ANY/PTR.py | 25 - lib/dns/rdtypes/ANY/RP.py | 58 - lib/dns/rdtypes/ANY/RRSIG.py | 124 - lib/dns/rdtypes/ANY/RT.py | 25 - lib/dns/rdtypes/ANY/SMIMEA.py | 9 - lib/dns/rdtypes/ANY/SOA.py | 78 - lib/dns/rdtypes/ANY/SPF.py | 27 - lib/dns/rdtypes/ANY/SSHFP.py | 69 - lib/dns/rdtypes/ANY/TKEY.py | 118 - lib/dns/rdtypes/ANY/TLSA.py | 10 - lib/dns/rdtypes/ANY/TSIG.py | 120 - lib/dns/rdtypes/ANY/TXT.py | 25 - lib/dns/rdtypes/ANY/URI.py | 80 - lib/dns/rdtypes/ANY/X25.py | 57 - lib/dns/rdtypes/ANY/ZONEMD.py | 65 - lib/dns/rdtypes/ANY/__init__.py | 68 - lib/dns/rdtypes/CH/A.py | 58 - lib/dns/rdtypes/CH/__init__.py | 22 - lib/dns/rdtypes/IN/A.py | 51 - lib/dns/rdtypes/IN/AAAA.py | 51 - lib/dns/rdtypes/IN/APL.py | 151 - lib/dns/rdtypes/IN/DHCID.py | 53 - lib/dns/rdtypes/IN/HTTPS.py | 8 - lib/dns/rdtypes/IN/IPSECKEY.py | 83 - lib/dns/rdtypes/IN/KX.py | 25 - lib/dns/rdtypes/IN/NAPTR.py | 99 - lib/dns/rdtypes/IN/NSAP.py | 60 - lib/dns/rdtypes/IN/NSAP_PTR.py | 25 - lib/dns/rdtypes/IN/PX.py | 73 - lib/dns/rdtypes/IN/SRV.py | 76 - lib/dns/rdtypes/IN/SVCB.py | 8 - lib/dns/rdtypes/IN/WKS.py | 99 - lib/dns/rdtypes/IN/__init__.py | 35 - lib/dns/rdtypes/__init__.py | 33 - lib/dns/rdtypes/dnskeybase.py | 82 - lib/dns/rdtypes/dnskeybase.pyi | 38 - lib/dns/rdtypes/dsbase.py | 86 - lib/dns/rdtypes/euibase.py | 69 - lib/dns/rdtypes/mxbase.py | 89 - lib/dns/rdtypes/nsbase.py | 64 - lib/dns/rdtypes/svcbbase.py | 555 -- lib/dns/rdtypes/tlsabase.py | 72 - lib/dns/rdtypes/txtbase.py | 87 - lib/dns/rdtypes/txtbase.pyi | 12 - lib/dns/rdtypes/util.py | 244 - lib/dns/renderer.py | 250 - lib/dns/resolver.py | 1575 --- lib/dns/resolver.pyi | 66 - lib/dns/reversename.py | 100 - lib/dns/reversename.pyi | 6 - lib/dns/rrset.py | 229 - lib/dns/rrset.pyi | 10 - lib/dns/serial.py | 117 - lib/dns/set.py | 278 - lib/dns/tokenizer.py | 680 -- lib/dns/transaction.py | 596 -- lib/dns/tsig.py | 346 - lib/dns/tsigkeyring.py | 65 - lib/dns/tsigkeyring.pyi | 7 - lib/dns/ttl.py | 90 - lib/dns/update.py | 319 - lib/dns/update.pyi | 21 - lib/dns/version.py | 46 - lib/dns/versioned.py | 274 - lib/dns/win32util.py | 235 - lib/dns/wire.py | 85 - lib/dns/xfr.py | 313 - lib/dns/zone.py | 1225 --- lib/dns/zone.pyi | 55 - lib/dns/zonefile.py | 624 -- lib/facebook/__init__.py | 510 - lib/facebook/version.py | 17 - lib/future/__init__.py | 93 - lib/future/backports/__init__.py | 26 - lib/future/backports/_markupbase.py | 422 - lib/future/backports/datetime.py | 2152 ----- lib/future/backports/email/__init__.py | 78 - lib/future/backports/email/_encoded_words.py | 232 - .../backports/email/_header_value_parser.py | 2965 ------ lib/future/backports/email/_parseaddr.py | 546 -- lib/future/backports/email/_policybase.py | 365 - lib/future/backports/email/base64mime.py | 120 - lib/future/backports/email/charset.py | 409 - lib/future/backports/email/encoders.py | 90 - lib/future/backports/email/errors.py | 111 - lib/future/backports/email/feedparser.py | 525 - lib/future/backports/email/generator.py | 498 - lib/future/backports/email/header.py | 581 -- lib/future/backports/email/headerregistry.py | 592 -- lib/future/backports/email/iterators.py | 74 - lib/future/backports/email/message.py | 882 -- lib/future/backports/email/mime/__init__.py | 0 .../backports/email/mime/application.py | 39 - lib/future/backports/email/mime/audio.py | 74 - lib/future/backports/email/mime/base.py | 25 - lib/future/backports/email/mime/image.py | 48 - lib/future/backports/email/mime/message.py | 36 - lib/future/backports/email/mime/multipart.py | 49 - .../backports/email/mime/nonmultipart.py | 24 - lib/future/backports/email/mime/text.py | 44 - lib/future/backports/email/parser.py | 135 - lib/future/backports/email/policy.py | 193 - lib/future/backports/email/quoprimime.py | 326 - lib/future/backports/email/utils.py | 400 - lib/future/backports/html/__init__.py | 27 - lib/future/backports/html/entities.py | 2514 ----- lib/future/backports/html/parser.py | 536 -- lib/future/backports/http/__init__.py | 0 lib/future/backports/http/client.py | 1346 --- lib/future/backports/http/cookiejar.py | 2110 ---- lib/future/backports/http/cookies.py | 598 -- lib/future/backports/http/server.py | 1226 --- lib/future/backports/misc.py | 944 -- lib/future/backports/socket.py | 454 - lib/future/backports/socketserver.py | 747 -- lib/future/backports/test/__init__.py | 9 - lib/future/backports/test/badcert.pem | 36 - lib/future/backports/test/badkey.pem | 40 - lib/future/backports/test/dh512.pem | 9 - .../test/https_svn_python_org_root.pem | 41 - lib/future/backports/test/keycert.passwd.pem | 33 - lib/future/backports/test/keycert.pem | 31 - lib/future/backports/test/keycert2.pem | 31 - lib/future/backports/test/nokia.pem | 31 - lib/future/backports/test/nullbytecert.pem | 90 - lib/future/backports/test/nullcert.pem | 0 lib/future/backports/test/pystone.py | 272 - lib/future/backports/test/sha256.pem | 128 - lib/future/backports/test/ssl_cert.pem | 15 - lib/future/backports/test/ssl_key.passwd.pem | 18 - lib/future/backports/test/ssl_key.pem | 16 - lib/future/backports/test/ssl_servers.py | 207 - lib/future/backports/test/support.py | 2048 ---- lib/future/backports/total_ordering.py | 38 - lib/future/backports/urllib/__init__.py | 0 lib/future/backports/urllib/error.py | 75 - lib/future/backports/urllib/parse.py | 991 -- lib/future/backports/urllib/request.py | 2647 ----- lib/future/backports/urllib/response.py | 103 - lib/future/backports/urllib/robotparser.py | 211 - lib/future/backports/xmlrpc/__init__.py | 1 - lib/future/backports/xmlrpc/client.py | 1496 --- lib/future/backports/xmlrpc/server.py | 999 -- lib/future/builtins/__init__.py | 51 - lib/future/builtins/disabled.py | 66 - lib/future/builtins/iterators.py | 52 - lib/future/builtins/misc.py | 135 - lib/future/builtins/new_min_max.py | 59 - lib/future/builtins/newnext.py | 70 - lib/future/builtins/newround.py | 102 - lib/future/builtins/newsuper.py | 114 - lib/future/moves/__init__.py | 8 - lib/future/moves/_dummy_thread.py | 8 - lib/future/moves/_markupbase.py | 8 - lib/future/moves/_thread.py | 8 - lib/future/moves/builtins.py | 10 - lib/future/moves/collections.py | 18 - lib/future/moves/configparser.py | 8 - lib/future/moves/copyreg.py | 12 - lib/future/moves/dbm/__init__.py | 20 - lib/future/moves/dbm/dumb.py | 9 - lib/future/moves/dbm/gnu.py | 9 - lib/future/moves/dbm/ndbm.py | 9 - lib/future/moves/html/__init__.py | 31 - lib/future/moves/html/entities.py | 8 - lib/future/moves/html/parser.py | 8 - lib/future/moves/http/__init__.py | 4 - lib/future/moves/http/client.py | 8 - lib/future/moves/http/cookiejar.py | 8 - lib/future/moves/http/cookies.py | 9 - lib/future/moves/http/server.py | 20 - lib/future/moves/itertools.py | 8 - lib/future/moves/pickle.py | 11 - lib/future/moves/queue.py | 8 - lib/future/moves/reprlib.py | 8 - lib/future/moves/socketserver.py | 8 - lib/future/moves/subprocess.py | 11 - lib/future/moves/sys.py | 8 - lib/future/moves/test/__init__.py | 5 - lib/future/moves/test/support.py | 10 - lib/future/moves/tkinter/__init__.py | 27 - lib/future/moves/tkinter/colorchooser.py | 12 - lib/future/moves/tkinter/commondialog.py | 12 - lib/future/moves/tkinter/constants.py | 12 - lib/future/moves/tkinter/dialog.py | 12 - lib/future/moves/tkinter/dnd.py | 12 - lib/future/moves/tkinter/filedialog.py | 12 - lib/future/moves/tkinter/font.py | 12 - lib/future/moves/tkinter/messagebox.py | 12 - lib/future/moves/tkinter/scrolledtext.py | 12 - lib/future/moves/tkinter/simpledialog.py | 12 - lib/future/moves/tkinter/tix.py | 12 - lib/future/moves/tkinter/ttk.py | 12 - lib/future/moves/urllib/__init__.py | 5 - lib/future/moves/urllib/error.py | 16 - lib/future/moves/urllib/parse.py | 28 - lib/future/moves/urllib/request.py | 94 - lib/future/moves/urllib/response.py | 12 - lib/future/moves/urllib/robotparser.py | 8 - lib/future/moves/winreg.py | 8 - lib/future/moves/xmlrpc/__init__.py | 0 lib/future/moves/xmlrpc/client.py | 7 - lib/future/moves/xmlrpc/server.py | 7 - lib/future/standard_library/__init__.py | 815 -- lib/future/tests/__init__.py | 0 lib/future/tests/base.py | 539 -- lib/future/types/__init__.py | 257 - lib/future/types/newbytes.py | 460 - lib/future/types/newdict.py | 111 - lib/future/types/newint.py | 381 - lib/future/types/newlist.py | 95 - lib/future/types/newmemoryview.py | 29 - lib/future/types/newobject.py | 117 - lib/future/types/newopen.py | 32 - lib/future/types/newrange.py | 170 - lib/future/types/newstr.py | 426 - lib/future/utils/__init__.py | 767 -- lib/future/utils/surrogateescape.py | 198 - lib/gntp/__init__.py | 0 lib/gntp/cli.py | 141 - lib/gntp/config.py | 77 - lib/gntp/core.py | 518 - lib/gntp/errors.py | 25 - lib/gntp/notifier.py | 266 - lib/gntp/shim.py | 46 - lib/gntp/version.py | 4 - lib/hashing_passwords.py | 57 - lib/html5lib/__init__.py | 35 - lib/html5lib/_ihatexml.py | 289 - lib/html5lib/_inputstream.py | 918 -- lib/html5lib/_tokenizer.py | 1735 ---- lib/html5lib/_trie/__init__.py | 5 - lib/html5lib/_trie/_base.py | 40 - lib/html5lib/_trie/py.py | 67 - lib/html5lib/_utils.py | 159 - lib/html5lib/constants.py | 2946 ------ lib/html5lib/filters/__init__.py | 0 .../filters/alphabeticalattributes.py | 29 - lib/html5lib/filters/base.py | 12 - lib/html5lib/filters/inject_meta_charset.py | 73 - lib/html5lib/filters/lint.py | 93 - lib/html5lib/filters/optionaltags.py | 207 - lib/html5lib/filters/sanitizer.py | 916 -- lib/html5lib/filters/whitespace.py | 38 - lib/html5lib/html5parser.py | 2795 ------ lib/html5lib/serializer.py | 409 - lib/html5lib/treeadapters/__init__.py | 30 - lib/html5lib/treeadapters/genshi.py | 54 - lib/html5lib/treeadapters/sax.py | 50 - lib/html5lib/treebuilders/__init__.py | 88 - lib/html5lib/treebuilders/base.py | 417 - lib/html5lib/treebuilders/dom.py | 239 - lib/html5lib/treebuilders/etree.py | 343 - lib/html5lib/treebuilders/etree_lxml.py | 392 - lib/html5lib/treewalkers/__init__.py | 154 - lib/html5lib/treewalkers/base.py | 252 - lib/html5lib/treewalkers/dom.py | 43 - lib/html5lib/treewalkers/etree.py | 131 - lib/html5lib/treewalkers/etree_lxml.py | 215 - lib/html5lib/treewalkers/genshi.py | 69 - lib/httpagentparser/__init__.py | 721 -- lib/httpagentparser/more.py | 29 - lib/idna/__init__.py | 44 - lib/idna/codec.py | 112 - lib/idna/compat.py | 13 - lib/idna/core.py | 397 - lib/idna/idnadata.py | 2137 ----- lib/idna/intranges.py | 54 - lib/idna/package_data.py | 2 - lib/idna/py.typed | 0 lib/idna/uts46data.py | 8512 ----------------- lib/importlib_metadata/__init__.py | 1095 --- lib/importlib_metadata/_adapters.py | 68 - lib/importlib_metadata/_collections.py | 30 - lib/importlib_metadata/_compat.py | 71 - lib/importlib_metadata/_functools.py | 104 - lib/importlib_metadata/_itertools.py | 73 - lib/importlib_metadata/_meta.py | 48 - lib/importlib_metadata/_text.py | 99 - lib/importlib_metadata/py.typed | 0 lib/importlib_resources/__init__.py | 36 - lib/importlib_resources/_adapters.py | 170 - lib/importlib_resources/_common.py | 104 - lib/importlib_resources/_compat.py | 108 - lib/importlib_resources/_itertools.py | 35 - lib/importlib_resources/_legacy.py | 121 - lib/importlib_resources/abc.py | 148 - lib/importlib_resources/py.typed | 0 lib/importlib_resources/readers.py | 122 - lib/importlib_resources/simple.py | 125 - lib/importlib_resources/tests/__init__.py | 0 lib/importlib_resources/tests/_compat.py | 19 - .../tests/data01/__init__.py | 0 .../tests/data01/binary.file | Bin 4 -> 0 bytes .../tests/data01/subdirectory/__init__.py | 0 .../tests/data01/subdirectory/binary.file | Bin 4 -> 0 bytes .../tests/data01/utf-16.file | Bin 44 -> 0 bytes .../tests/data01/utf-8.file | 1 - .../tests/data02/__init__.py | 0 .../tests/data02/one/__init__.py | 0 .../tests/data02/one/resource1.txt | 1 - .../tests/data02/two/__init__.py | 0 .../tests/data02/two/resource2.txt | 1 - .../tests/namespacedata01/binary.file | Bin 4 -> 0 bytes .../tests/namespacedata01/utf-16.file | Bin 44 -> 0 bytes .../tests/namespacedata01/utf-8.file | 1 - .../tests/test_compatibilty_files.py | 102 - .../tests/test_contents.py | 43 - lib/importlib_resources/tests/test_files.py | 46 - lib/importlib_resources/tests/test_open.py | 81 - lib/importlib_resources/tests/test_path.py | 64 - lib/importlib_resources/tests/test_read.py | 76 - lib/importlib_resources/tests/test_reader.py | 128 - .../tests/test_resource.py | 252 - lib/importlib_resources/tests/update-zips.py | 53 - lib/importlib_resources/tests/util.py | 178 - .../tests/zipdata01/__init__.py | 0 .../tests/zipdata01/ziptestdata.zip | Bin 876 -> 0 bytes .../tests/zipdata02/__init__.py | 0 .../tests/zipdata02/ziptestdata.zip | Bin 698 -> 0 bytes lib/infi/__init__.py | 1 - lib/infi/systray/__init__.py | 2 - lib/infi/systray/traybar.py | 323 - lib/infi/systray/win32_adapter.py | 199 - lib/ipwhois/__init__.py | 29 - lib/ipwhois/asn.py | 879 -- lib/ipwhois/data/iso_3166-1.csv | 252 - lib/ipwhois/data/iso_3166-1_list_en.xml | 1003 -- lib/ipwhois/exceptions.py | 127 - lib/ipwhois/experimental.py | 464 - lib/ipwhois/hr.py | 509 - lib/ipwhois/ipwhois.py | 337 - lib/ipwhois/net.py | 912 -- lib/ipwhois/nir.py | 655 -- lib/ipwhois/rdap.py | 962 -- lib/ipwhois/utils.py | 635 -- lib/ipwhois/whois.py | 769 -- lib/jaraco/classes/__init__.py | 0 lib/jaraco/classes/ancestry.py | 68 - lib/jaraco/classes/meta.py | 66 - lib/jaraco/classes/properties.py | 171 - lib/jaraco/collections.py | 1056 -- lib/jaraco/context.py | 213 - lib/jaraco/functools.py | 525 - lib/jaraco/text/Lorem ipsum.txt | 2 - lib/jaraco/text/__init__.py | 600 -- lib/jwt/__init__.py | 70 - lib/jwt/algorithms.py | 677 -- lib/jwt/api_jwk.py | 103 - lib/jwt/api_jws.py | 289 - lib/jwt/api_jwt.py | 231 - lib/jwt/exceptions.py | 66 - lib/jwt/help.py | 60 - lib/jwt/jwks_client.py | 59 - lib/jwt/py.typed | 0 lib/jwt/utils.py | 160 - lib/libfuturize/__init__.py | 1 - lib/libfuturize/fixer_util.py | 520 - lib/libfuturize/fixes/__init__.py | 97 - lib/libfuturize/fixes/fix_UserDict.py | 102 - lib/libfuturize/fixes/fix_absolute_import.py | 91 - ...future__imports_except_unicode_literals.py | 26 - lib/libfuturize/fixes/fix_basestring.py | 17 - lib/libfuturize/fixes/fix_bytes.py | 24 - lib/libfuturize/fixes/fix_cmp.py | 33 - lib/libfuturize/fixes/fix_division.py | 12 - lib/libfuturize/fixes/fix_division_safe.py | 104 - lib/libfuturize/fixes/fix_execfile.py | 37 - lib/libfuturize/fixes/fix_future_builtins.py | 59 - .../fixes/fix_future_standard_library.py | 24 - .../fix_future_standard_library_urllib.py | 28 - lib/libfuturize/fixes/fix_input.py | 32 - lib/libfuturize/fixes/fix_metaclass.py | 262 - lib/libfuturize/fixes/fix_next_call.py | 104 - lib/libfuturize/fixes/fix_object.py | 17 - lib/libfuturize/fixes/fix_oldstr_wrap.py | 39 - .../fixes/fix_order___future__imports.py | 36 - lib/libfuturize/fixes/fix_print.py | 94 - .../fixes/fix_print_with_import.py | 22 - lib/libfuturize/fixes/fix_raise.py | 107 - .../fixes/fix_remove_old__future__imports.py | 26 - lib/libfuturize/fixes/fix_unicode_keep_u.py | 24 - .../fixes/fix_unicode_literals_import.py | 18 - .../fixes/fix_xrange_with_import.py | 20 - lib/libfuturize/main.py | 322 - lib/libpasteurize/__init__.py | 1 - lib/libpasteurize/fixes/__init__.py | 54 - lib/libpasteurize/fixes/feature_base.py | 57 - .../fixes/fix_add_all__future__imports.py | 24 - .../fixes/fix_add_all_future_builtins.py | 37 - .../fix_add_future_standard_library_import.py | 23 - lib/libpasteurize/fixes/fix_annotations.py | 48 - lib/libpasteurize/fixes/fix_division.py | 28 - lib/libpasteurize/fixes/fix_features.py | 86 - lib/libpasteurize/fixes/fix_fullargspec.py | 16 - .../fixes/fix_future_builtins.py | 46 - lib/libpasteurize/fixes/fix_getcwd.py | 26 - lib/libpasteurize/fixes/fix_imports.py | 112 - lib/libpasteurize/fixes/fix_imports2.py | 174 - lib/libpasteurize/fixes/fix_kwargs.py | 147 - lib/libpasteurize/fixes/fix_memoryview.py | 21 - lib/libpasteurize/fixes/fix_metaclass.py | 78 - lib/libpasteurize/fixes/fix_newstyle.py | 33 - lib/libpasteurize/fixes/fix_next.py | 43 - lib/libpasteurize/fixes/fix_printfunction.py | 17 - lib/libpasteurize/fixes/fix_raise.py | 25 - lib/libpasteurize/fixes/fix_raise_.py | 35 - lib/libpasteurize/fixes/fix_throw.py | 23 - lib/libpasteurize/fixes/fix_unpacking.py | 120 - lib/libpasteurize/main.py | 204 - lib/mako/__init__.py | 8 - lib/mako/_ast_util.py | 713 -- lib/mako/ast.py | 202 - lib/mako/cache.py | 239 - lib/mako/cmd.py | 100 - lib/mako/codegen.py | 1304 --- lib/mako/compat.py | 76 - lib/mako/exceptions.py | 417 - lib/mako/ext/__init__.py | 0 lib/mako/ext/autohandler.py | 70 - lib/mako/ext/babelplugin.py | 57 - lib/mako/ext/beaker_cache.py | 82 - lib/mako/ext/extract.py | 129 - lib/mako/ext/linguaplugin.py | 57 - lib/mako/ext/preprocessors.py | 20 - lib/mako/ext/pygmentplugin.py | 150 - lib/mako/ext/turbogears.py | 61 - lib/mako/filters.py | 163 - lib/mako/lexer.py | 466 - lib/mako/lookup.py | 362 - lib/mako/parsetree.py | 656 -- lib/mako/pygen.py | 299 - lib/mako/pyparser.py | 220 - lib/mako/runtime.py | 968 -- lib/mako/template.py | 716 -- lib/mako/testing/__init__.py | 0 lib/mako/testing/_config.py | 128 - lib/mako/testing/assertions.py | 167 - lib/mako/testing/config.py | 17 - lib/mako/testing/exclusions.py | 80 - lib/mako/testing/fixtures.py | 109 - lib/mako/testing/helpers.py | 67 - lib/mako/util.py | 388 - lib/markupsafe/__init__.py | 295 - lib/markupsafe/_native.py | 63 - lib/markupsafe/_speedups.c | 320 - lib/markupsafe/_speedups.pyi | 9 - lib/markupsafe/py.typed | 0 lib/more_itertools/__init__.py | 4 - lib/more_itertools/__init__.pyi | 2 - lib/more_itertools/more.py | 4317 --------- lib/more_itertools/more.pyi | 664 -- lib/more_itertools/py.typed | 0 lib/more_itertools/recipes.py | 698 -- lib/more_itertools/recipes.pyi | 112 - lib/musicbrainzngs/__init__.py | 2 - lib/musicbrainzngs/caa.py | 187 - lib/musicbrainzngs/compat.py | 61 - lib/musicbrainzngs/mbxml.py | 817 -- lib/musicbrainzngs/musicbrainz.py | 1312 --- lib/musicbrainzngs/util.py | 44 - lib/oauthlib/__init__.py | 34 - lib/oauthlib/common.py | 434 - lib/oauthlib/oauth1/__init__.py | 28 - lib/oauthlib/oauth1/rfc5849/__init__.py | 365 - .../oauth1/rfc5849/endpoints/__init__.py | 8 - .../oauth1/rfc5849/endpoints/access_token.py | 215 - .../oauth1/rfc5849/endpoints/authorization.py | 158 - lib/oauthlib/oauth1/rfc5849/endpoints/base.py | 245 - .../rfc5849/endpoints/pre_configured.py | 14 - .../oauth1/rfc5849/endpoints/request_token.py | 209 - .../oauth1/rfc5849/endpoints/resource.py | 163 - .../rfc5849/endpoints/signature_only.py | 82 - lib/oauthlib/oauth1/rfc5849/errors.py | 76 - lib/oauthlib/oauth1/rfc5849/parameters.py | 133 - .../oauth1/rfc5849/request_validator.py | 849 -- lib/oauthlib/oauth1/rfc5849/signature.py | 843 -- lib/oauthlib/oauth1/rfc5849/utils.py | 83 - lib/oauthlib/oauth2/__init__.py | 36 - lib/oauthlib/oauth2/rfc6749/__init__.py | 16 - .../oauth2/rfc6749/clients/__init__.py | 14 - .../rfc6749/clients/backend_application.py | 74 - lib/oauthlib/oauth2/rfc6749/clients/base.py | 629 -- .../rfc6749/clients/legacy_application.py | 84 - .../rfc6749/clients/mobile_application.py | 174 - .../rfc6749/clients/service_application.py | 189 - .../oauth2/rfc6749/clients/web_application.py | 222 - .../oauth2/rfc6749/endpoints/__init__.py | 17 - .../oauth2/rfc6749/endpoints/authorization.py | 114 - lib/oauthlib/oauth2/rfc6749/endpoints/base.py | 113 - .../oauth2/rfc6749/endpoints/introspect.py | 122 - .../oauth2/rfc6749/endpoints/metadata.py | 238 - .../rfc6749/endpoints/pre_configured.py | 216 - .../oauth2/rfc6749/endpoints/resource.py | 84 - .../oauth2/rfc6749/endpoints/revocation.py | 126 - .../oauth2/rfc6749/endpoints/token.py | 119 - lib/oauthlib/oauth2/rfc6749/errors.py | 400 - .../oauth2/rfc6749/grant_types/__init__.py | 11 - .../rfc6749/grant_types/authorization_code.py | 566 -- .../oauth2/rfc6749/grant_types/base.py | 250 - .../rfc6749/grant_types/client_credentials.py | 123 - .../oauth2/rfc6749/grant_types/implicit.py | 376 - .../rfc6749/grant_types/refresh_token.py | 135 - .../resource_owner_password_credentials.py | 199 - lib/oauthlib/oauth2/rfc6749/parameters.py | 471 - .../oauth2/rfc6749/request_validator.py | 676 -- lib/oauthlib/oauth2/rfc6749/tokens.py | 355 - lib/oauthlib/oauth2/rfc6749/utils.py | 83 - lib/oauthlib/oauth2/rfc8628/__init__.py | 10 - .../oauth2/rfc8628/clients/__init__.py | 8 - lib/oauthlib/oauth2/rfc8628/clients/device.py | 94 - lib/oauthlib/openid/__init__.py | 7 - lib/oauthlib/openid/connect/__init__.py | 0 lib/oauthlib/openid/connect/core/__init__.py | 0 .../openid/connect/core/endpoints/__init__.py | 9 - .../connect/core/endpoints/pre_configured.py | 97 - .../openid/connect/core/endpoints/userinfo.py | 99 - .../openid/connect/core/exceptions.py | 149 - .../connect/core/grant_types/__init__.py | 13 - .../core/grant_types/authorization_code.py | 43 - .../openid/connect/core/grant_types/base.py | 327 - .../connect/core/grant_types/dispatchers.py | 101 - .../openid/connect/core/grant_types/hybrid.py | 63 - .../connect/core/grant_types/implicit.py | 51 - .../connect/core/grant_types/refresh_token.py | 34 - .../openid/connect/core/request_validator.py | 320 - lib/oauthlib/openid/connect/core/tokens.py | 46 - lib/oauthlib/signals.py | 40 - lib/oauthlib/uri_validate.py | 190 - lib/osxnotify/__init__.py | 0 lib/osxnotify/appIcon.icns | Bin 860162 -> 0 bytes lib/osxnotify/registerapp.py | 133 - lib/packaging/__about__.py | 26 - lib/packaging/__init__.py | 25 - lib/packaging/_manylinux.py | 301 - lib/packaging/_musllinux.py | 136 - lib/packaging/_structures.py | 61 - lib/packaging/markers.py | 304 - lib/packaging/py.typed | 0 lib/packaging/requirements.py | 146 - lib/packaging/specifiers.py | 802 -- lib/packaging/tags.py | 487 - lib/packaging/utils.py | 136 - lib/packaging/version.py | 504 - lib/paho/__init__.py | 0 lib/paho/mqtt/__init__.py | 5 - lib/paho/mqtt/client.py | 3989 -------- lib/paho/mqtt/matcher.py | 78 - lib/paho/mqtt/packettypes.py | 43 - lib/paho/mqtt/properties.py | 438 - lib/paho/mqtt/publish.py | 241 - lib/paho/mqtt/reasoncodes.py | 192 - lib/paho/mqtt/subscribe.py | 274 - lib/paho/mqtt/subscribeoptions.py | 110 - lib/past/__init__.py | 90 - lib/past/builtins/__init__.py | 72 - lib/past/builtins/misc.py | 94 - lib/past/builtins/noniterators.py | 272 - lib/past/translation/__init__.py | 485 - lib/past/types/__init__.py | 29 - lib/past/types/basestring.py | 39 - lib/past/types/olddict.py | 96 - lib/past/types/oldstr.py | 135 - lib/past/utils/__init__.py | 97 - lib/plexapi/__init__.py | 52 - lib/plexapi/alert.py | 96 - lib/plexapi/audio.py | 464 - lib/plexapi/base.py | 845 -- lib/plexapi/client.py | 632 -- lib/plexapi/collection.py | 564 -- lib/plexapi/config.py | 66 - lib/plexapi/const.py | 9 - lib/plexapi/exceptions.py | 31 - lib/plexapi/gdm.py | 151 - lib/plexapi/library.py | 2652 ----- lib/plexapi/media.py | 1152 --- lib/plexapi/mixins.py | 1048 -- lib/plexapi/myplex.py | 1618 ---- lib/plexapi/photo.py | 293 - lib/plexapi/playlist.py | 484 - lib/plexapi/playqueue.py | 328 - lib/plexapi/server.py | 1217 --- lib/plexapi/settings.py | 179 - lib/plexapi/sonos.py | 116 - lib/plexapi/sync.py | 312 - lib/plexapi/utils.py | 487 - lib/plexapi/video.py | 982 -- lib/portend.py | 240 - lib/profilehooks.py | 852 -- lib/pyparsing/__init__.py | 331 - lib/pyparsing/actions.py | 207 - lib/pyparsing/common.py | 424 - lib/pyparsing/core.py | 5814 ----------- lib/pyparsing/diagram/__init__.py | 642 -- lib/pyparsing/exceptions.py | 267 - lib/pyparsing/helpers.py | 1088 --- lib/pyparsing/py.typed | 0 lib/pyparsing/results.py | 760 -- lib/pyparsing/testing.py | 331 - lib/pyparsing/unicode.py | 352 - lib/pyparsing/util.py | 235 - lib/pytz/__init__.py | 1559 --- lib/pytz/exceptions.py | 59 - lib/pytz/lazy.py | 172 - lib/pytz/reference.py | 140 - lib/pytz/tzfile.py | 133 - lib/pytz/tzinfo.py | 577 -- lib/pytz/zoneinfo/Africa/Abidjan | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Accra | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Addis_Ababa | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Algiers | Bin 735 -> 0 bytes lib/pytz/zoneinfo/Africa/Asmara | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Asmera | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Bamako | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Bangui | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Banjul | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Bissau | Bin 194 -> 0 bytes lib/pytz/zoneinfo/Africa/Blantyre | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Brazzaville | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Bujumbura | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Cairo | Bin 1955 -> 0 bytes lib/pytz/zoneinfo/Africa/Casablanca | Bin 2429 -> 0 bytes lib/pytz/zoneinfo/Africa/Ceuta | Bin 2036 -> 0 bytes lib/pytz/zoneinfo/Africa/Conakry | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Dakar | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Dar_es_Salaam | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Djibouti | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Douala | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/El_Aaiun | Bin 2295 -> 0 bytes lib/pytz/zoneinfo/Africa/Freetown | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Gaborone | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Harare | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Johannesburg | Bin 246 -> 0 bytes lib/pytz/zoneinfo/Africa/Juba | Bin 679 -> 0 bytes lib/pytz/zoneinfo/Africa/Kampala | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Khartoum | Bin 679 -> 0 bytes lib/pytz/zoneinfo/Africa/Kigali | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Kinshasa | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Lagos | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Libreville | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Lome | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Luanda | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Lubumbashi | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Lusaka | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Malabo | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Maputo | Bin 149 -> 0 bytes lib/pytz/zoneinfo/Africa/Maseru | Bin 246 -> 0 bytes lib/pytz/zoneinfo/Africa/Mbabane | Bin 246 -> 0 bytes lib/pytz/zoneinfo/Africa/Mogadishu | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Monrovia | Bin 208 -> 0 bytes lib/pytz/zoneinfo/Africa/Nairobi | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Africa/Ndjamena | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Africa/Niamey | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Nouakchott | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Ouagadougou | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Porto-Novo | Bin 235 -> 0 bytes lib/pytz/zoneinfo/Africa/Sao_Tome | Bin 254 -> 0 bytes lib/pytz/zoneinfo/Africa/Timbuktu | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Africa/Tripoli | Bin 625 -> 0 bytes lib/pytz/zoneinfo/Africa/Tunis | Bin 689 -> 0 bytes lib/pytz/zoneinfo/Africa/Windhoek | Bin 955 -> 0 bytes lib/pytz/zoneinfo/America/Adak | Bin 2356 -> 0 bytes lib/pytz/zoneinfo/America/Anchorage | Bin 2371 -> 0 bytes lib/pytz/zoneinfo/America/Anguilla | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Antigua | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Araguaina | Bin 884 -> 0 bytes .../zoneinfo/America/Argentina/Buenos_Aires | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Catamarca | Bin 1076 -> 0 bytes .../zoneinfo/America/Argentina/ComodRivadavia | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Cordoba | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Jujuy | Bin 1048 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/La_Rioja | Bin 1090 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Mendoza | Bin 1076 -> 0 bytes .../zoneinfo/America/Argentina/Rio_Gallegos | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Salta | Bin 1048 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/San_Juan | Bin 1090 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/San_Luis | Bin 1102 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Tucuman | Bin 1104 -> 0 bytes lib/pytz/zoneinfo/America/Argentina/Ushuaia | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Aruba | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Asuncion | Bin 2044 -> 0 bytes lib/pytz/zoneinfo/America/Atikokan | Bin 182 -> 0 bytes lib/pytz/zoneinfo/America/Atka | Bin 2356 -> 0 bytes lib/pytz/zoneinfo/America/Bahia | Bin 1024 -> 0 bytes lib/pytz/zoneinfo/America/Bahia_Banderas | Bin 1546 -> 0 bytes lib/pytz/zoneinfo/America/Barbados | Bin 436 -> 0 bytes lib/pytz/zoneinfo/America/Belem | Bin 576 -> 0 bytes lib/pytz/zoneinfo/America/Belize | Bin 1614 -> 0 bytes lib/pytz/zoneinfo/America/Blanc-Sablon | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Boa_Vista | Bin 632 -> 0 bytes lib/pytz/zoneinfo/America/Bogota | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Boise | Bin 2394 -> 0 bytes lib/pytz/zoneinfo/America/Buenos_Aires | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Cambridge_Bay | Bin 2084 -> 0 bytes lib/pytz/zoneinfo/America/Campo_Grande | Bin 1444 -> 0 bytes lib/pytz/zoneinfo/America/Cancun | Bin 782 -> 0 bytes lib/pytz/zoneinfo/America/Caracas | Bin 264 -> 0 bytes lib/pytz/zoneinfo/America/Catamarca | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Cayenne | Bin 198 -> 0 bytes lib/pytz/zoneinfo/America/Cayman | Bin 182 -> 0 bytes lib/pytz/zoneinfo/America/Chicago | Bin 3576 -> 0 bytes lib/pytz/zoneinfo/America/Chihuahua | Bin 1484 -> 0 bytes lib/pytz/zoneinfo/America/Coral_Harbour | Bin 182 -> 0 bytes lib/pytz/zoneinfo/America/Cordoba | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Costa_Rica | Bin 316 -> 0 bytes lib/pytz/zoneinfo/America/Creston | Bin 328 -> 0 bytes lib/pytz/zoneinfo/America/Cuiaba | Bin 1416 -> 0 bytes lib/pytz/zoneinfo/America/Curacao | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Danmarkshavn | Bin 698 -> 0 bytes lib/pytz/zoneinfo/America/Dawson | Bin 1614 -> 0 bytes lib/pytz/zoneinfo/America/Dawson_Creek | Bin 1050 -> 0 bytes lib/pytz/zoneinfo/America/Denver | Bin 2444 -> 0 bytes lib/pytz/zoneinfo/America/Detroit | Bin 2230 -> 0 bytes lib/pytz/zoneinfo/America/Dominica | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Edmonton | Bin 2332 -> 0 bytes lib/pytz/zoneinfo/America/Eirunepe | Bin 656 -> 0 bytes lib/pytz/zoneinfo/America/El_Salvador | Bin 224 -> 0 bytes lib/pytz/zoneinfo/America/Ensenada | Bin 2342 -> 0 bytes lib/pytz/zoneinfo/America/Fort_Nelson | Bin 2240 -> 0 bytes lib/pytz/zoneinfo/America/Fort_Wayne | Bin 1666 -> 0 bytes lib/pytz/zoneinfo/America/Fortaleza | Bin 716 -> 0 bytes lib/pytz/zoneinfo/America/Glace_Bay | Bin 2192 -> 0 bytes lib/pytz/zoneinfo/America/Godthab | Bin 1878 -> 0 bytes lib/pytz/zoneinfo/America/Goose_Bay | Bin 3210 -> 0 bytes lib/pytz/zoneinfo/America/Grand_Turk | Bin 1834 -> 0 bytes lib/pytz/zoneinfo/America/Grenada | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Guadeloupe | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Guatemala | Bin 280 -> 0 bytes lib/pytz/zoneinfo/America/Guayaquil | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Guyana | Bin 262 -> 0 bytes lib/pytz/zoneinfo/America/Halifax | Bin 3424 -> 0 bytes lib/pytz/zoneinfo/America/Havana | Bin 2416 -> 0 bytes lib/pytz/zoneinfo/America/Hermosillo | Bin 416 -> 0 bytes .../zoneinfo/America/Indiana/Indianapolis | Bin 1666 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Knox | Bin 2428 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Marengo | Bin 1722 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Petersburg | Bin 1904 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Tell_City | Bin 1684 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Vevay | Bin 1414 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Vincennes | Bin 1694 -> 0 bytes lib/pytz/zoneinfo/America/Indiana/Winamac | Bin 1778 -> 0 bytes lib/pytz/zoneinfo/America/Indianapolis | Bin 1666 -> 0 bytes lib/pytz/zoneinfo/America/Inuvik | Bin 1894 -> 0 bytes lib/pytz/zoneinfo/America/Iqaluit | Bin 2032 -> 0 bytes lib/pytz/zoneinfo/America/Jamaica | Bin 482 -> 0 bytes lib/pytz/zoneinfo/America/Jujuy | Bin 1048 -> 0 bytes lib/pytz/zoneinfo/America/Juneau | Bin 2353 -> 0 bytes lib/pytz/zoneinfo/America/Kentucky/Louisville | Bin 2772 -> 0 bytes lib/pytz/zoneinfo/America/Kentucky/Monticello | Bin 2352 -> 0 bytes lib/pytz/zoneinfo/America/Knox_IN | Bin 2428 -> 0 bytes lib/pytz/zoneinfo/America/Kralendijk | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/La_Paz | Bin 232 -> 0 bytes lib/pytz/zoneinfo/America/Lima | Bin 406 -> 0 bytes lib/pytz/zoneinfo/America/Los_Angeles | Bin 2836 -> 0 bytes lib/pytz/zoneinfo/America/Louisville | Bin 2772 -> 0 bytes lib/pytz/zoneinfo/America/Lower_Princes | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Maceio | Bin 744 -> 0 bytes lib/pytz/zoneinfo/America/Managua | Bin 430 -> 0 bytes lib/pytz/zoneinfo/America/Manaus | Bin 604 -> 0 bytes lib/pytz/zoneinfo/America/Marigot | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Martinique | Bin 232 -> 0 bytes lib/pytz/zoneinfo/America/Matamoros | Bin 1390 -> 0 bytes lib/pytz/zoneinfo/America/Mazatlan | Bin 1526 -> 0 bytes lib/pytz/zoneinfo/America/Mendoza | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Menominee | Bin 2274 -> 0 bytes lib/pytz/zoneinfo/America/Merida | Bin 1422 -> 0 bytes lib/pytz/zoneinfo/America/Metlakatla | Bin 1423 -> 0 bytes lib/pytz/zoneinfo/America/Mexico_City | Bin 1584 -> 0 bytes lib/pytz/zoneinfo/America/Miquelon | Bin 1666 -> 0 bytes lib/pytz/zoneinfo/America/Moncton | Bin 3154 -> 0 bytes lib/pytz/zoneinfo/America/Monterrey | Bin 1390 -> 0 bytes lib/pytz/zoneinfo/America/Montevideo | Bin 1510 -> 0 bytes lib/pytz/zoneinfo/America/Montreal | Bin 3494 -> 0 bytes lib/pytz/zoneinfo/America/Montserrat | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Nassau | Bin 3494 -> 0 bytes lib/pytz/zoneinfo/America/New_York | Bin 3536 -> 0 bytes lib/pytz/zoneinfo/America/Nipigon | Bin 2122 -> 0 bytes lib/pytz/zoneinfo/America/Nome | Bin 2367 -> 0 bytes lib/pytz/zoneinfo/America/Noronha | Bin 716 -> 0 bytes lib/pytz/zoneinfo/America/North_Dakota/Beulah | Bin 2380 -> 0 bytes lib/pytz/zoneinfo/America/North_Dakota/Center | Bin 2380 -> 0 bytes .../zoneinfo/America/North_Dakota/New_Salem | Bin 2380 -> 0 bytes lib/pytz/zoneinfo/America/Nuuk | Bin 1878 -> 0 bytes lib/pytz/zoneinfo/America/Ojinaga | Bin 1484 -> 0 bytes lib/pytz/zoneinfo/America/Panama | Bin 182 -> 0 bytes lib/pytz/zoneinfo/America/Pangnirtung | Bin 2094 -> 0 bytes lib/pytz/zoneinfo/America/Paramaribo | Bin 262 -> 0 bytes lib/pytz/zoneinfo/America/Phoenix | Bin 328 -> 0 bytes lib/pytz/zoneinfo/America/Port-au-Prince | Bin 1434 -> 0 bytes lib/pytz/zoneinfo/America/Port_of_Spain | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Porto_Acre | Bin 628 -> 0 bytes lib/pytz/zoneinfo/America/Porto_Velho | Bin 576 -> 0 bytes lib/pytz/zoneinfo/America/Puerto_Rico | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Punta_Arenas | Bin 1902 -> 0 bytes lib/pytz/zoneinfo/America/Rainy_River | Bin 2122 -> 0 bytes lib/pytz/zoneinfo/America/Rankin_Inlet | Bin 1892 -> 0 bytes lib/pytz/zoneinfo/America/Recife | Bin 716 -> 0 bytes lib/pytz/zoneinfo/America/Regina | Bin 980 -> 0 bytes lib/pytz/zoneinfo/America/Resolute | Bin 1892 -> 0 bytes lib/pytz/zoneinfo/America/Rio_Branco | Bin 628 -> 0 bytes lib/pytz/zoneinfo/America/Rosario | Bin 1076 -> 0 bytes lib/pytz/zoneinfo/America/Santa_Isabel | Bin 2342 -> 0 bytes lib/pytz/zoneinfo/America/Santarem | Bin 602 -> 0 bytes lib/pytz/zoneinfo/America/Santiago | Bin 2529 -> 0 bytes lib/pytz/zoneinfo/America/Santo_Domingo | Bin 458 -> 0 bytes lib/pytz/zoneinfo/America/Sao_Paulo | Bin 1444 -> 0 bytes lib/pytz/zoneinfo/America/Scoresbysund | Bin 1916 -> 0 bytes lib/pytz/zoneinfo/America/Shiprock | Bin 2444 -> 0 bytes lib/pytz/zoneinfo/America/Sitka | Bin 2329 -> 0 bytes lib/pytz/zoneinfo/America/St_Barthelemy | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/St_Johns | Bin 3655 -> 0 bytes lib/pytz/zoneinfo/America/St_Kitts | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/St_Lucia | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/St_Thomas | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/St_Vincent | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Swift_Current | Bin 560 -> 0 bytes lib/pytz/zoneinfo/America/Tegucigalpa | Bin 252 -> 0 bytes lib/pytz/zoneinfo/America/Thule | Bin 1502 -> 0 bytes lib/pytz/zoneinfo/America/Thunder_Bay | Bin 2202 -> 0 bytes lib/pytz/zoneinfo/America/Tijuana | Bin 2342 -> 0 bytes lib/pytz/zoneinfo/America/Toronto | Bin 3494 -> 0 bytes lib/pytz/zoneinfo/America/Tortola | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Vancouver | Bin 2892 -> 0 bytes lib/pytz/zoneinfo/America/Virgin | Bin 246 -> 0 bytes lib/pytz/zoneinfo/America/Whitehorse | Bin 1614 -> 0 bytes lib/pytz/zoneinfo/America/Winnipeg | Bin 2868 -> 0 bytes lib/pytz/zoneinfo/America/Yakutat | Bin 2305 -> 0 bytes lib/pytz/zoneinfo/America/Yellowknife | Bin 1966 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Casey | Bin 384 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Davis | Bin 297 -> 0 bytes lib/pytz/zoneinfo/Antarctica/DumontDUrville | Bin 186 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Macquarie | Bin 2260 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Mawson | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Antarctica/McMurdo | Bin 2437 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Palmer | Bin 1418 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Rothera | Bin 164 -> 0 bytes lib/pytz/zoneinfo/Antarctica/South_Pole | Bin 2437 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Syowa | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Troll | Bin 1162 -> 0 bytes lib/pytz/zoneinfo/Antarctica/Vostok | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Arctic/Longyearbyen | Bin 2228 -> 0 bytes lib/pytz/zoneinfo/Asia/Aden | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Almaty | Bin 997 -> 0 bytes lib/pytz/zoneinfo/Asia/Amman | Bin 1853 -> 0 bytes lib/pytz/zoneinfo/Asia/Anadyr | Bin 1188 -> 0 bytes lib/pytz/zoneinfo/Asia/Aqtau | Bin 983 -> 0 bytes lib/pytz/zoneinfo/Asia/Aqtobe | Bin 1011 -> 0 bytes lib/pytz/zoneinfo/Asia/Ashgabat | Bin 619 -> 0 bytes lib/pytz/zoneinfo/Asia/Ashkhabad | Bin 619 -> 0 bytes lib/pytz/zoneinfo/Asia/Atyrau | Bin 991 -> 0 bytes lib/pytz/zoneinfo/Asia/Baghdad | Bin 983 -> 0 bytes lib/pytz/zoneinfo/Asia/Bahrain | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Asia/Baku | Bin 1227 -> 0 bytes lib/pytz/zoneinfo/Asia/Bangkok | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Asia/Barnaul | Bin 1221 -> 0 bytes lib/pytz/zoneinfo/Asia/Beirut | Bin 2154 -> 0 bytes lib/pytz/zoneinfo/Asia/Bishkek | Bin 983 -> 0 bytes lib/pytz/zoneinfo/Asia/Brunei | Bin 203 -> 0 bytes lib/pytz/zoneinfo/Asia/Calcutta | Bin 285 -> 0 bytes lib/pytz/zoneinfo/Asia/Chita | Bin 1221 -> 0 bytes lib/pytz/zoneinfo/Asia/Choibalsan | Bin 949 -> 0 bytes lib/pytz/zoneinfo/Asia/Chongqing | Bin 561 -> 0 bytes lib/pytz/zoneinfo/Asia/Chungking | Bin 561 -> 0 bytes lib/pytz/zoneinfo/Asia/Colombo | Bin 372 -> 0 bytes lib/pytz/zoneinfo/Asia/Dacca | Bin 337 -> 0 bytes lib/pytz/zoneinfo/Asia/Damascus | Bin 2294 -> 0 bytes lib/pytz/zoneinfo/Asia/Dhaka | Bin 337 -> 0 bytes lib/pytz/zoneinfo/Asia/Dili | Bin 227 -> 0 bytes lib/pytz/zoneinfo/Asia/Dubai | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Dushanbe | Bin 591 -> 0 bytes lib/pytz/zoneinfo/Asia/Famagusta | Bin 2028 -> 0 bytes lib/pytz/zoneinfo/Asia/Gaza | Bin 2422 -> 0 bytes lib/pytz/zoneinfo/Asia/Harbin | Bin 561 -> 0 bytes lib/pytz/zoneinfo/Asia/Hebron | Bin 2450 -> 0 bytes lib/pytz/zoneinfo/Asia/Ho_Chi_Minh | Bin 351 -> 0 bytes lib/pytz/zoneinfo/Asia/Hong_Kong | Bin 1203 -> 0 bytes lib/pytz/zoneinfo/Asia/Hovd | Bin 891 -> 0 bytes lib/pytz/zoneinfo/Asia/Irkutsk | Bin 1243 -> 0 bytes lib/pytz/zoneinfo/Asia/Istanbul | Bin 1947 -> 0 bytes lib/pytz/zoneinfo/Asia/Jakarta | Bin 355 -> 0 bytes lib/pytz/zoneinfo/Asia/Jayapura | Bin 221 -> 0 bytes lib/pytz/zoneinfo/Asia/Jerusalem | Bin 2388 -> 0 bytes lib/pytz/zoneinfo/Asia/Kabul | Bin 208 -> 0 bytes lib/pytz/zoneinfo/Asia/Kamchatka | Bin 1166 -> 0 bytes lib/pytz/zoneinfo/Asia/Karachi | Bin 379 -> 0 bytes lib/pytz/zoneinfo/Asia/Kashgar | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Kathmandu | Bin 212 -> 0 bytes lib/pytz/zoneinfo/Asia/Katmandu | Bin 212 -> 0 bytes lib/pytz/zoneinfo/Asia/Khandyga | Bin 1271 -> 0 bytes lib/pytz/zoneinfo/Asia/Kolkata | Bin 285 -> 0 bytes lib/pytz/zoneinfo/Asia/Krasnoyarsk | Bin 1207 -> 0 bytes lib/pytz/zoneinfo/Asia/Kuala_Lumpur | Bin 383 -> 0 bytes lib/pytz/zoneinfo/Asia/Kuching | Bin 483 -> 0 bytes lib/pytz/zoneinfo/Asia/Kuwait | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Macao | Bin 1227 -> 0 bytes lib/pytz/zoneinfo/Asia/Macau | Bin 1227 -> 0 bytes lib/pytz/zoneinfo/Asia/Magadan | Bin 1222 -> 0 bytes lib/pytz/zoneinfo/Asia/Makassar | Bin 254 -> 0 bytes lib/pytz/zoneinfo/Asia/Manila | Bin 328 -> 0 bytes lib/pytz/zoneinfo/Asia/Muscat | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Nicosia | Bin 2002 -> 0 bytes lib/pytz/zoneinfo/Asia/Novokuznetsk | Bin 1165 -> 0 bytes lib/pytz/zoneinfo/Asia/Novosibirsk | Bin 1221 -> 0 bytes lib/pytz/zoneinfo/Asia/Omsk | Bin 1207 -> 0 bytes lib/pytz/zoneinfo/Asia/Oral | Bin 1005 -> 0 bytes lib/pytz/zoneinfo/Asia/Phnom_Penh | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Asia/Pontianak | Bin 353 -> 0 bytes lib/pytz/zoneinfo/Asia/Pyongyang | Bin 237 -> 0 bytes lib/pytz/zoneinfo/Asia/Qatar | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Asia/Qostanay | Bin 1011 -> 0 bytes lib/pytz/zoneinfo/Asia/Qyzylorda | Bin 1025 -> 0 bytes lib/pytz/zoneinfo/Asia/Rangoon | Bin 268 -> 0 bytes lib/pytz/zoneinfo/Asia/Riyadh | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Saigon | Bin 351 -> 0 bytes lib/pytz/zoneinfo/Asia/Sakhalin | Bin 1202 -> 0 bytes lib/pytz/zoneinfo/Asia/Samarkand | Bin 577 -> 0 bytes lib/pytz/zoneinfo/Asia/Seoul | Bin 617 -> 0 bytes lib/pytz/zoneinfo/Asia/Shanghai | Bin 561 -> 0 bytes lib/pytz/zoneinfo/Asia/Singapore | Bin 383 -> 0 bytes lib/pytz/zoneinfo/Asia/Srednekolymsk | Bin 1208 -> 0 bytes lib/pytz/zoneinfo/Asia/Taipei | Bin 761 -> 0 bytes lib/pytz/zoneinfo/Asia/Tashkent | Bin 591 -> 0 bytes lib/pytz/zoneinfo/Asia/Tbilisi | Bin 1035 -> 0 bytes lib/pytz/zoneinfo/Asia/Tehran | Bin 2582 -> 0 bytes lib/pytz/zoneinfo/Asia/Tel_Aviv | Bin 2388 -> 0 bytes lib/pytz/zoneinfo/Asia/Thimbu | Bin 203 -> 0 bytes lib/pytz/zoneinfo/Asia/Thimphu | Bin 203 -> 0 bytes lib/pytz/zoneinfo/Asia/Tokyo | Bin 309 -> 0 bytes lib/pytz/zoneinfo/Asia/Tomsk | Bin 1221 -> 0 bytes lib/pytz/zoneinfo/Asia/Ujung_Pandang | Bin 254 -> 0 bytes lib/pytz/zoneinfo/Asia/Ulaanbaatar | Bin 891 -> 0 bytes lib/pytz/zoneinfo/Asia/Ulan_Bator | Bin 891 -> 0 bytes lib/pytz/zoneinfo/Asia/Urumqi | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Asia/Ust-Nera | Bin 1252 -> 0 bytes lib/pytz/zoneinfo/Asia/Vientiane | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Asia/Vladivostok | Bin 1208 -> 0 bytes lib/pytz/zoneinfo/Asia/Yakutsk | Bin 1207 -> 0 bytes lib/pytz/zoneinfo/Asia/Yangon | Bin 268 -> 0 bytes lib/pytz/zoneinfo/Asia/Yekaterinburg | Bin 1243 -> 0 bytes lib/pytz/zoneinfo/Asia/Yerevan | Bin 1151 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Azores | Bin 3512 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Bermuda | Bin 2396 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Canary | Bin 1897 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Cape_Verde | Bin 270 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Faeroe | Bin 1815 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Faroe | Bin 1815 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Jan_Mayen | Bin 2228 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Madeira | Bin 3503 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Reykjavik | Bin 1162 -> 0 bytes lib/pytz/zoneinfo/Atlantic/South_Georgia | Bin 164 -> 0 bytes lib/pytz/zoneinfo/Atlantic/St_Helena | Bin 148 -> 0 bytes lib/pytz/zoneinfo/Atlantic/Stanley | Bin 1214 -> 0 bytes lib/pytz/zoneinfo/Australia/ACT | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/Adelaide | Bin 2208 -> 0 bytes lib/pytz/zoneinfo/Australia/Brisbane | Bin 419 -> 0 bytes lib/pytz/zoneinfo/Australia/Broken_Hill | Bin 2229 -> 0 bytes lib/pytz/zoneinfo/Australia/Canberra | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/Currie | Bin 2358 -> 0 bytes lib/pytz/zoneinfo/Australia/Darwin | Bin 325 -> 0 bytes lib/pytz/zoneinfo/Australia/Eucla | Bin 470 -> 0 bytes lib/pytz/zoneinfo/Australia/Hobart | Bin 2358 -> 0 bytes lib/pytz/zoneinfo/Australia/LHI | Bin 1860 -> 0 bytes lib/pytz/zoneinfo/Australia/Lindeman | Bin 475 -> 0 bytes lib/pytz/zoneinfo/Australia/Lord_Howe | Bin 1860 -> 0 bytes lib/pytz/zoneinfo/Australia/Melbourne | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/NSW | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/North | Bin 325 -> 0 bytes lib/pytz/zoneinfo/Australia/Perth | Bin 446 -> 0 bytes lib/pytz/zoneinfo/Australia/Queensland | Bin 419 -> 0 bytes lib/pytz/zoneinfo/Australia/South | Bin 2208 -> 0 bytes lib/pytz/zoneinfo/Australia/Sydney | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/Tasmania | Bin 2358 -> 0 bytes lib/pytz/zoneinfo/Australia/Victoria | Bin 2190 -> 0 bytes lib/pytz/zoneinfo/Australia/West | Bin 446 -> 0 bytes lib/pytz/zoneinfo/Australia/Yancowinna | Bin 2229 -> 0 bytes lib/pytz/zoneinfo/Brazil/Acre | Bin 628 -> 0 bytes lib/pytz/zoneinfo/Brazil/DeNoronha | Bin 716 -> 0 bytes lib/pytz/zoneinfo/Brazil/East | Bin 1444 -> 0 bytes lib/pytz/zoneinfo/Brazil/West | Bin 604 -> 0 bytes lib/pytz/zoneinfo/CET | Bin 2094 -> 0 bytes lib/pytz/zoneinfo/CST6CDT | Bin 2310 -> 0 bytes lib/pytz/zoneinfo/Canada/Atlantic | Bin 3424 -> 0 bytes lib/pytz/zoneinfo/Canada/Central | Bin 2868 -> 0 bytes lib/pytz/zoneinfo/Canada/Eastern | Bin 3494 -> 0 bytes lib/pytz/zoneinfo/Canada/Mountain | Bin 2332 -> 0 bytes lib/pytz/zoneinfo/Canada/Newfoundland | Bin 3655 -> 0 bytes lib/pytz/zoneinfo/Canada/Pacific | Bin 2892 -> 0 bytes lib/pytz/zoneinfo/Canada/Saskatchewan | Bin 980 -> 0 bytes lib/pytz/zoneinfo/Canada/Yukon | Bin 1614 -> 0 bytes lib/pytz/zoneinfo/Chile/Continental | Bin 2529 -> 0 bytes lib/pytz/zoneinfo/Chile/EasterIsland | Bin 2233 -> 0 bytes lib/pytz/zoneinfo/Cuba | Bin 2416 -> 0 bytes lib/pytz/zoneinfo/EET | Bin 1908 -> 0 bytes lib/pytz/zoneinfo/EST | Bin 114 -> 0 bytes lib/pytz/zoneinfo/EST5EDT | Bin 2310 -> 0 bytes lib/pytz/zoneinfo/Egypt | Bin 1955 -> 0 bytes lib/pytz/zoneinfo/Eire | Bin 3492 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+1 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+10 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+11 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+12 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+2 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+3 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+4 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+5 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+6 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+7 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+8 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT+9 | Bin 116 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-1 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-10 | Bin 118 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-11 | Bin 118 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-12 | Bin 118 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-13 | Bin 118 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-14 | Bin 118 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-2 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-3 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-4 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-5 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-6 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-7 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-8 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT-9 | Bin 117 -> 0 bytes lib/pytz/zoneinfo/Etc/GMT0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/Greenwich | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/UCT | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/UTC | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/Universal | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Etc/Zulu | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Europe/Amsterdam | Bin 2910 -> 0 bytes lib/pytz/zoneinfo/Europe/Andorra | Bin 1742 -> 0 bytes lib/pytz/zoneinfo/Europe/Astrakhan | Bin 1165 -> 0 bytes lib/pytz/zoneinfo/Europe/Athens | Bin 2262 -> 0 bytes lib/pytz/zoneinfo/Europe/Belfast | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/Europe/Belgrade | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/Berlin | Bin 2298 -> 0 bytes lib/pytz/zoneinfo/Europe/Bratislava | Bin 2301 -> 0 bytes lib/pytz/zoneinfo/Europe/Brussels | Bin 2933 -> 0 bytes lib/pytz/zoneinfo/Europe/Bucharest | Bin 2184 -> 0 bytes lib/pytz/zoneinfo/Europe/Budapest | Bin 2368 -> 0 bytes lib/pytz/zoneinfo/Europe/Busingen | Bin 1909 -> 0 bytes lib/pytz/zoneinfo/Europe/Chisinau | Bin 2390 -> 0 bytes lib/pytz/zoneinfo/Europe/Copenhagen | Bin 2137 -> 0 bytes lib/pytz/zoneinfo/Europe/Dublin | Bin 3492 -> 0 bytes lib/pytz/zoneinfo/Europe/Gibraltar | Bin 3052 -> 0 bytes lib/pytz/zoneinfo/Europe/Guernsey | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/Europe/Helsinki | Bin 1900 -> 0 bytes lib/pytz/zoneinfo/Europe/Isle_of_Man | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/Europe/Istanbul | Bin 1947 -> 0 bytes lib/pytz/zoneinfo/Europe/Jersey | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/Europe/Kaliningrad | Bin 1493 -> 0 bytes lib/pytz/zoneinfo/Europe/Kiev | Bin 2120 -> 0 bytes lib/pytz/zoneinfo/Europe/Kirov | Bin 1153 -> 0 bytes lib/pytz/zoneinfo/Europe/Lisbon | Bin 3497 -> 0 bytes lib/pytz/zoneinfo/Europe/Ljubljana | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/London | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/Europe/Luxembourg | Bin 2946 -> 0 bytes lib/pytz/zoneinfo/Europe/Madrid | Bin 2614 -> 0 bytes lib/pytz/zoneinfo/Europe/Malta | Bin 2620 -> 0 bytes lib/pytz/zoneinfo/Europe/Mariehamn | Bin 1900 -> 0 bytes lib/pytz/zoneinfo/Europe/Minsk | Bin 1321 -> 0 bytes lib/pytz/zoneinfo/Europe/Monaco | Bin 2944 -> 0 bytes lib/pytz/zoneinfo/Europe/Moscow | Bin 1535 -> 0 bytes lib/pytz/zoneinfo/Europe/Nicosia | Bin 2002 -> 0 bytes lib/pytz/zoneinfo/Europe/Oslo | Bin 2228 -> 0 bytes lib/pytz/zoneinfo/Europe/Paris | Bin 2962 -> 0 bytes lib/pytz/zoneinfo/Europe/Podgorica | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/Prague | Bin 2301 -> 0 bytes lib/pytz/zoneinfo/Europe/Riga | Bin 2198 -> 0 bytes lib/pytz/zoneinfo/Europe/Rome | Bin 2641 -> 0 bytes lib/pytz/zoneinfo/Europe/Samara | Bin 1215 -> 0 bytes lib/pytz/zoneinfo/Europe/San_Marino | Bin 2641 -> 0 bytes lib/pytz/zoneinfo/Europe/Sarajevo | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/Saratov | Bin 1183 -> 0 bytes lib/pytz/zoneinfo/Europe/Simferopol | Bin 1469 -> 0 bytes lib/pytz/zoneinfo/Europe/Skopje | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/Sofia | Bin 2077 -> 0 bytes lib/pytz/zoneinfo/Europe/Stockholm | Bin 1909 -> 0 bytes lib/pytz/zoneinfo/Europe/Tallinn | Bin 2148 -> 0 bytes lib/pytz/zoneinfo/Europe/Tirane | Bin 2084 -> 0 bytes lib/pytz/zoneinfo/Europe/Tiraspol | Bin 2390 -> 0 bytes lib/pytz/zoneinfo/Europe/Ulyanovsk | Bin 1267 -> 0 bytes lib/pytz/zoneinfo/Europe/Uzhgorod | Bin 2066 -> 0 bytes lib/pytz/zoneinfo/Europe/Vaduz | Bin 1909 -> 0 bytes lib/pytz/zoneinfo/Europe/Vatican | Bin 2641 -> 0 bytes lib/pytz/zoneinfo/Europe/Vienna | Bin 2200 -> 0 bytes lib/pytz/zoneinfo/Europe/Vilnius | Bin 2162 -> 0 bytes lib/pytz/zoneinfo/Europe/Volgograd | Bin 1165 -> 0 bytes lib/pytz/zoneinfo/Europe/Warsaw | Bin 2654 -> 0 bytes lib/pytz/zoneinfo/Europe/Zagreb | Bin 1920 -> 0 bytes lib/pytz/zoneinfo/Europe/Zaporozhye | Bin 2138 -> 0 bytes lib/pytz/zoneinfo/Europe/Zurich | Bin 1909 -> 0 bytes lib/pytz/zoneinfo/Factory | Bin 116 -> 0 bytes lib/pytz/zoneinfo/GB | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/GB-Eire | Bin 3648 -> 0 bytes lib/pytz/zoneinfo/GMT | Bin 114 -> 0 bytes lib/pytz/zoneinfo/GMT+0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/GMT-0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/GMT0 | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Greenwich | Bin 114 -> 0 bytes lib/pytz/zoneinfo/HST | Bin 115 -> 0 bytes lib/pytz/zoneinfo/Hongkong | Bin 1203 -> 0 bytes lib/pytz/zoneinfo/Iceland | Bin 1162 -> 0 bytes lib/pytz/zoneinfo/Indian/Antananarivo | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Indian/Chagos | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Indian/Christmas | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Indian/Cocos | Bin 174 -> 0 bytes lib/pytz/zoneinfo/Indian/Comoro | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Indian/Kerguelen | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Indian/Mahe | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Indian/Maldives | Bin 199 -> 0 bytes lib/pytz/zoneinfo/Indian/Mauritius | Bin 241 -> 0 bytes lib/pytz/zoneinfo/Indian/Mayotte | Bin 265 -> 0 bytes lib/pytz/zoneinfo/Indian/Reunion | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Iran | Bin 2582 -> 0 bytes lib/pytz/zoneinfo/Israel | Bin 2388 -> 0 bytes lib/pytz/zoneinfo/Jamaica | Bin 482 -> 0 bytes lib/pytz/zoneinfo/Japan | Bin 309 -> 0 bytes lib/pytz/zoneinfo/Kwajalein | Bin 316 -> 0 bytes lib/pytz/zoneinfo/Libya | Bin 625 -> 0 bytes lib/pytz/zoneinfo/MET | Bin 2094 -> 0 bytes lib/pytz/zoneinfo/MST | Bin 114 -> 0 bytes lib/pytz/zoneinfo/MST7MDT | Bin 2310 -> 0 bytes lib/pytz/zoneinfo/Mexico/BajaNorte | Bin 2342 -> 0 bytes lib/pytz/zoneinfo/Mexico/BajaSur | Bin 1526 -> 0 bytes lib/pytz/zoneinfo/Mexico/General | Bin 1584 -> 0 bytes lib/pytz/zoneinfo/NZ | Bin 2437 -> 0 bytes lib/pytz/zoneinfo/NZ-CHAT | Bin 2068 -> 0 bytes lib/pytz/zoneinfo/Navajo | Bin 2444 -> 0 bytes lib/pytz/zoneinfo/PRC | Bin 561 -> 0 bytes lib/pytz/zoneinfo/PST8PDT | Bin 2310 -> 0 bytes lib/pytz/zoneinfo/Pacific/Apia | Bin 612 -> 0 bytes lib/pytz/zoneinfo/Pacific/Auckland | Bin 2437 -> 0 bytes lib/pytz/zoneinfo/Pacific/Bougainville | Bin 268 -> 0 bytes lib/pytz/zoneinfo/Pacific/Chatham | Bin 2068 -> 0 bytes lib/pytz/zoneinfo/Pacific/Chuuk | Bin 269 -> 0 bytes lib/pytz/zoneinfo/Pacific/Easter | Bin 2233 -> 0 bytes lib/pytz/zoneinfo/Pacific/Efate | Bin 538 -> 0 bytes lib/pytz/zoneinfo/Pacific/Enderbury | Bin 234 -> 0 bytes lib/pytz/zoneinfo/Pacific/Fakaofo | Bin 200 -> 0 bytes lib/pytz/zoneinfo/Pacific/Fiji | Bin 1049 -> 0 bytes lib/pytz/zoneinfo/Pacific/Funafuti | Bin 166 -> 0 bytes lib/pytz/zoneinfo/Pacific/Galapagos | Bin 238 -> 0 bytes lib/pytz/zoneinfo/Pacific/Gambier | Bin 164 -> 0 bytes lib/pytz/zoneinfo/Pacific/Guadalcanal | Bin 166 -> 0 bytes lib/pytz/zoneinfo/Pacific/Guam | Bin 494 -> 0 bytes lib/pytz/zoneinfo/Pacific/Honolulu | Bin 329 -> 0 bytes lib/pytz/zoneinfo/Pacific/Johnston | Bin 329 -> 0 bytes lib/pytz/zoneinfo/Pacific/Kanton | Bin 234 -> 0 bytes lib/pytz/zoneinfo/Pacific/Kiritimati | Bin 238 -> 0 bytes lib/pytz/zoneinfo/Pacific/Kosrae | Bin 351 -> 0 bytes lib/pytz/zoneinfo/Pacific/Kwajalein | Bin 316 -> 0 bytes lib/pytz/zoneinfo/Pacific/Majuro | Bin 310 -> 0 bytes lib/pytz/zoneinfo/Pacific/Marquesas | Bin 173 -> 0 bytes lib/pytz/zoneinfo/Pacific/Midway | Bin 175 -> 0 bytes lib/pytz/zoneinfo/Pacific/Nauru | Bin 252 -> 0 bytes lib/pytz/zoneinfo/Pacific/Niue | Bin 203 -> 0 bytes lib/pytz/zoneinfo/Pacific/Norfolk | Bin 880 -> 0 bytes lib/pytz/zoneinfo/Pacific/Noumea | Bin 304 -> 0 bytes lib/pytz/zoneinfo/Pacific/Pago_Pago | Bin 175 -> 0 bytes lib/pytz/zoneinfo/Pacific/Palau | Bin 180 -> 0 bytes lib/pytz/zoneinfo/Pacific/Pitcairn | Bin 202 -> 0 bytes lib/pytz/zoneinfo/Pacific/Pohnpei | Bin 303 -> 0 bytes lib/pytz/zoneinfo/Pacific/Ponape | Bin 303 -> 0 bytes lib/pytz/zoneinfo/Pacific/Port_Moresby | Bin 186 -> 0 bytes lib/pytz/zoneinfo/Pacific/Rarotonga | Bin 603 -> 0 bytes lib/pytz/zoneinfo/Pacific/Saipan | Bin 494 -> 0 bytes lib/pytz/zoneinfo/Pacific/Samoa | Bin 175 -> 0 bytes lib/pytz/zoneinfo/Pacific/Tahiti | Bin 165 -> 0 bytes lib/pytz/zoneinfo/Pacific/Tarawa | Bin 166 -> 0 bytes lib/pytz/zoneinfo/Pacific/Tongatapu | Bin 372 -> 0 bytes lib/pytz/zoneinfo/Pacific/Truk | Bin 269 -> 0 bytes lib/pytz/zoneinfo/Pacific/Wake | Bin 166 -> 0 bytes lib/pytz/zoneinfo/Pacific/Wallis | Bin 166 -> 0 bytes lib/pytz/zoneinfo/Pacific/Yap | Bin 269 -> 0 bytes lib/pytz/zoneinfo/Poland | Bin 2654 -> 0 bytes lib/pytz/zoneinfo/Portugal | Bin 3497 -> 0 bytes lib/pytz/zoneinfo/ROC | Bin 761 -> 0 bytes lib/pytz/zoneinfo/ROK | Bin 617 -> 0 bytes lib/pytz/zoneinfo/Singapore | Bin 383 -> 0 bytes lib/pytz/zoneinfo/Turkey | Bin 1947 -> 0 bytes lib/pytz/zoneinfo/UCT | Bin 114 -> 0 bytes lib/pytz/zoneinfo/US/Alaska | Bin 2371 -> 0 bytes lib/pytz/zoneinfo/US/Aleutian | Bin 2356 -> 0 bytes lib/pytz/zoneinfo/US/Arizona | Bin 328 -> 0 bytes lib/pytz/zoneinfo/US/Central | Bin 3576 -> 0 bytes lib/pytz/zoneinfo/US/East-Indiana | Bin 1666 -> 0 bytes lib/pytz/zoneinfo/US/Eastern | Bin 3536 -> 0 bytes lib/pytz/zoneinfo/US/Hawaii | Bin 329 -> 0 bytes lib/pytz/zoneinfo/US/Indiana-Starke | Bin 2428 -> 0 bytes lib/pytz/zoneinfo/US/Michigan | Bin 2230 -> 0 bytes lib/pytz/zoneinfo/US/Mountain | Bin 2444 -> 0 bytes lib/pytz/zoneinfo/US/Pacific | Bin 2836 -> 0 bytes lib/pytz/zoneinfo/US/Samoa | Bin 175 -> 0 bytes lib/pytz/zoneinfo/UTC | Bin 114 -> 0 bytes lib/pytz/zoneinfo/Universal | Bin 114 -> 0 bytes lib/pytz/zoneinfo/W-SU | Bin 1535 -> 0 bytes lib/pytz/zoneinfo/WET | Bin 1905 -> 0 bytes lib/pytz/zoneinfo/Zulu | Bin 114 -> 0 bytes lib/pytz/zoneinfo/iso3166.tab | 274 - lib/pytz/zoneinfo/leapseconds | 82 - lib/pytz/zoneinfo/tzdata.zi | 4437 --------- lib/pytz/zoneinfo/zone.tab | 454 - lib/pytz/zoneinfo/zone1970.tab | 374 - lib/pytz_deprecation_shim/__init__.py | 34 - lib/pytz_deprecation_shim/_common.py | 13 - lib/pytz_deprecation_shim/_compat.py | 15 - lib/pytz_deprecation_shim/_compat_py2.py | 43 - lib/pytz_deprecation_shim/_compat_py3.py | 58 - lib/pytz_deprecation_shim/_exceptions.py | 75 - lib/pytz_deprecation_shim/_impl.py | 296 - lib/pytz_deprecation_shim/helpers.py | 90 - lib/requests/__init__.py | 152 - lib/requests/__version__.py | 14 - lib/requests/_internal_utils.py | 42 - lib/requests/adapters.py | 538 -- lib/requests/api.py | 159 - lib/requests/auth.py | 305 - lib/requests/certs.py | 18 - lib/requests/compat.py | 81 - lib/requests/cookies.py | 549 -- lib/requests/exceptions.py | 133 - lib/requests/help.py | 135 - lib/requests/hooks.py | 34 - lib/requests/models.py | 973 -- lib/requests/packages.py | 26 - lib/requests/sessions.py | 771 -- lib/requests/status_codes.py | 123 - lib/requests/structures.py | 105 - lib/requests/utils.py | 1060 -- lib/requests_oauthlib/__init__.py | 19 - .../compliance_fixes/__init__.py | 10 - .../compliance_fixes/douban.py | 17 - .../compliance_fixes/ebay.py | 23 - .../compliance_fixes/facebook.py | 33 - .../compliance_fixes/fitbit.py | 25 - .../compliance_fixes/instagram.py | 26 - .../compliance_fixes/mailchimp.py | 23 - .../compliance_fixes/plentymarkets.py | 29 - .../compliance_fixes/slack.py | 37 - .../compliance_fixes/weibo.py | 15 - lib/requests_oauthlib/oauth1_auth.py | 117 - lib/requests_oauthlib/oauth1_session.py | 400 - lib/requests_oauthlib/oauth2_auth.py | 37 - lib/requests_oauthlib/oauth2_session.py | 540 -- lib/rumps/__init__.py | 26 - lib/rumps/compat.py | 17 - lib/rumps/notifications.py | 10 - lib/rumps/packages/__init__.py | 0 lib/rumps/packages/ordereddict.py | 262 - lib/rumps/rumps.py | 1329 --- lib/rumps/utils.py | 27 - lib/simplejson/__init__.py | 584 -- lib/simplejson/compat.py | 34 - lib/simplejson/decoder.py | 400 - lib/simplejson/encoder.py | 730 -- lib/simplejson/errors.py | 53 - lib/simplejson/ordered_dict.py | 103 - lib/simplejson/raw_json.py | 9 - lib/simplejson/scanner.py | 85 - lib/simplejson/tests/__init__.py | 91 - lib/simplejson/tests/_cibw_runner.py | 7 - lib/simplejson/tests/test_bigint_as_string.py | 67 - .../tests/test_bitsize_int_as_string.py | 73 - lib/simplejson/tests/test_check_circular.py | 30 - lib/simplejson/tests/test_decimal.py | 71 - lib/simplejson/tests/test_decode.py | 119 - lib/simplejson/tests/test_default.py | 9 - lib/simplejson/tests/test_dump.py | 249 - .../tests/test_encode_basestring_ascii.py | 47 - lib/simplejson/tests/test_encode_for_html.py | 38 - lib/simplejson/tests/test_errors.py | 68 - lib/simplejson/tests/test_fail.py | 176 - lib/simplejson/tests/test_float.py | 35 - lib/simplejson/tests/test_for_json.py | 97 - lib/simplejson/tests/test_indent.py | 86 - lib/simplejson/tests/test_item_sort_key.py | 27 - lib/simplejson/tests/test_iterable.py | 31 - lib/simplejson/tests/test_namedtuple.py | 149 - lib/simplejson/tests/test_pass1.py | 71 - lib/simplejson/tests/test_pass2.py | 14 - lib/simplejson/tests/test_pass3.py | 20 - lib/simplejson/tests/test_raw_json.py | 47 - lib/simplejson/tests/test_recursion.py | 67 - lib/simplejson/tests/test_scanstring.py | 196 - lib/simplejson/tests/test_separators.py | 42 - lib/simplejson/tests/test_speedups.py | 114 - lib/simplejson/tests/test_str_subclass.py | 21 - lib/simplejson/tests/test_subclass.py | 37 - lib/simplejson/tests/test_tool.py | 114 - lib/simplejson/tests/test_tuple.py | 47 - lib/simplejson/tests/test_unicode.py | 154 - lib/simplejson/tool.py | 42 - lib/six.py | 998 -- lib/soupsieve/__init__.py | 166 - lib/soupsieve/__meta__.py | 196 - lib/soupsieve/css_match.py | 1584 --- lib/soupsieve/css_parser.py | 1310 --- lib/soupsieve/css_types.py | 407 - lib/soupsieve/pretty.py | 137 - lib/soupsieve/py.typed | 0 lib/soupsieve/util.py | 116 - lib/tempora/__init__.py | 604 -- lib/tempora/schedule.py | 227 - lib/tempora/tests/test_schedule.py | 149 - lib/tempora/tests/test_timing.py | 50 - lib/tempora/timing.py | 266 - lib/tempora/utc.py | 36 - lib/tokenize_rt.py | 213 - lib/twitter/__init__.py | 55 - lib/twitter/_file_cache.py | 102 - lib/twitter/api.py | 5037 ---------- lib/twitter/debug.py | 65 - lib/twitter/error.py | 25 - lib/twitter/models.py | 531 - lib/twitter/parse_tweet.py | 100 - lib/twitter/ratelimit.py | 191 - lib/twitter/twitter_utils.py | 321 - lib/typing_extensions.py | 2296 ----- lib/tzdata/__init__.py | 6 - lib/tzdata/zoneinfo/Africa/Abidjan | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Accra | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Addis_Ababa | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Algiers | Bin 470 -> 0 bytes lib/tzdata/zoneinfo/Africa/Asmara | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Asmera | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Bamako | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Bangui | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Banjul | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Bissau | Bin 149 -> 0 bytes lib/tzdata/zoneinfo/Africa/Blantyre | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Brazzaville | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Bujumbura | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Cairo | Bin 1276 -> 0 bytes lib/tzdata/zoneinfo/Africa/Casablanca | Bin 1919 -> 0 bytes lib/tzdata/zoneinfo/Africa/Ceuta | Bin 562 -> 0 bytes lib/tzdata/zoneinfo/Africa/Conakry | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Dakar | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Dar_es_Salaam | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Djibouti | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Douala | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/El_Aaiun | Bin 1830 -> 0 bytes lib/tzdata/zoneinfo/Africa/Freetown | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Gaborone | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Harare | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Johannesburg | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/Africa/Juba | Bin 458 -> 0 bytes lib/tzdata/zoneinfo/Africa/Kampala | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Khartoum | Bin 458 -> 0 bytes lib/tzdata/zoneinfo/Africa/Kigali | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Kinshasa | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Lagos | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Libreville | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Lome | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Luanda | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Lubumbashi | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Lusaka | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Malabo | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Maputo | Bin 131 -> 0 bytes lib/tzdata/zoneinfo/Africa/Maseru | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/Africa/Mbabane | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/Africa/Mogadishu | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Monrovia | Bin 164 -> 0 bytes lib/tzdata/zoneinfo/Africa/Nairobi | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Africa/Ndjamena | Bin 160 -> 0 bytes lib/tzdata/zoneinfo/Africa/Niamey | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Nouakchott | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Ouagadougou | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Porto-Novo | Bin 180 -> 0 bytes lib/tzdata/zoneinfo/Africa/Sao_Tome | Bin 173 -> 0 bytes lib/tzdata/zoneinfo/Africa/Timbuktu | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Africa/Tripoli | Bin 431 -> 0 bytes lib/tzdata/zoneinfo/Africa/Tunis | Bin 449 -> 0 bytes lib/tzdata/zoneinfo/Africa/Windhoek | Bin 638 -> 0 bytes lib/tzdata/zoneinfo/Africa/__init__.py | 0 lib/tzdata/zoneinfo/America/Adak | Bin 969 -> 0 bytes lib/tzdata/zoneinfo/America/Anchorage | Bin 977 -> 0 bytes lib/tzdata/zoneinfo/America/Anguilla | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Antigua | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Araguaina | Bin 592 -> 0 bytes .../zoneinfo/America/Argentina/Buenos_Aires | Bin 708 -> 0 bytes .../zoneinfo/America/Argentina/Catamarca | Bin 708 -> 0 bytes .../zoneinfo/America/Argentina/ComodRivadavia | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Cordoba | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Jujuy | Bin 690 -> 0 bytes .../zoneinfo/America/Argentina/La_Rioja | Bin 717 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Mendoza | Bin 708 -> 0 bytes .../zoneinfo/America/Argentina/Rio_Gallegos | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Salta | Bin 690 -> 0 bytes .../zoneinfo/America/Argentina/San_Juan | Bin 717 -> 0 bytes .../zoneinfo/America/Argentina/San_Luis | Bin 717 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Tucuman | Bin 726 -> 0 bytes lib/tzdata/zoneinfo/America/Argentina/Ushuaia | Bin 708 -> 0 bytes .../zoneinfo/America/Argentina/__init__.py | 0 lib/tzdata/zoneinfo/America/Aruba | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Asuncion | Bin 884 -> 0 bytes lib/tzdata/zoneinfo/America/Atikokan | Bin 149 -> 0 bytes lib/tzdata/zoneinfo/America/Atka | Bin 969 -> 0 bytes lib/tzdata/zoneinfo/America/Bahia | Bin 682 -> 0 bytes lib/tzdata/zoneinfo/America/Bahia_Banderas | Bin 530 -> 0 bytes lib/tzdata/zoneinfo/America/Barbados | Bin 278 -> 0 bytes lib/tzdata/zoneinfo/America/Belem | Bin 394 -> 0 bytes lib/tzdata/zoneinfo/America/Belize | Bin 1045 -> 0 bytes lib/tzdata/zoneinfo/America/Blanc-Sablon | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Boa_Vista | Bin 430 -> 0 bytes lib/tzdata/zoneinfo/America/Bogota | Bin 179 -> 0 bytes lib/tzdata/zoneinfo/America/Boise | Bin 999 -> 0 bytes lib/tzdata/zoneinfo/America/Buenos_Aires | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Cambridge_Bay | Bin 768 -> 0 bytes lib/tzdata/zoneinfo/America/Campo_Grande | Bin 952 -> 0 bytes lib/tzdata/zoneinfo/America/Cancun | Bin 529 -> 0 bytes lib/tzdata/zoneinfo/America/Caracas | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/America/Catamarca | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Cayenne | Bin 151 -> 0 bytes lib/tzdata/zoneinfo/America/Cayman | Bin 149 -> 0 bytes lib/tzdata/zoneinfo/America/Chicago | Bin 1754 -> 0 bytes lib/tzdata/zoneinfo/America/Chihuahua | Bin 340 -> 0 bytes lib/tzdata/zoneinfo/America/Coral_Harbour | Bin 149 -> 0 bytes lib/tzdata/zoneinfo/America/Cordoba | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Costa_Rica | Bin 232 -> 0 bytes lib/tzdata/zoneinfo/America/Creston | Bin 240 -> 0 bytes lib/tzdata/zoneinfo/America/Cuiaba | Bin 934 -> 0 bytes lib/tzdata/zoneinfo/America/Curacao | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Danmarkshavn | Bin 447 -> 0 bytes lib/tzdata/zoneinfo/America/Dawson | Bin 1029 -> 0 bytes lib/tzdata/zoneinfo/America/Dawson_Creek | Bin 683 -> 0 bytes lib/tzdata/zoneinfo/America/Denver | Bin 1042 -> 0 bytes lib/tzdata/zoneinfo/America/Detroit | Bin 899 -> 0 bytes lib/tzdata/zoneinfo/America/Dominica | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Edmonton | Bin 970 -> 0 bytes lib/tzdata/zoneinfo/America/Eirunepe | Bin 436 -> 0 bytes lib/tzdata/zoneinfo/America/El_Salvador | Bin 176 -> 0 bytes lib/tzdata/zoneinfo/America/Ensenada | Bin 1025 -> 0 bytes lib/tzdata/zoneinfo/America/Fort_Nelson | Bin 1448 -> 0 bytes lib/tzdata/zoneinfo/America/Fort_Wayne | Bin 531 -> 0 bytes lib/tzdata/zoneinfo/America/Fortaleza | Bin 484 -> 0 bytes lib/tzdata/zoneinfo/America/Glace_Bay | Bin 880 -> 0 bytes lib/tzdata/zoneinfo/America/Godthab | Bin 465 -> 0 bytes lib/tzdata/zoneinfo/America/Goose_Bay | Bin 1580 -> 0 bytes lib/tzdata/zoneinfo/America/Grand_Turk | Bin 853 -> 0 bytes lib/tzdata/zoneinfo/America/Grenada | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Guadeloupe | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Guatemala | Bin 212 -> 0 bytes lib/tzdata/zoneinfo/America/Guayaquil | Bin 179 -> 0 bytes lib/tzdata/zoneinfo/America/Guyana | Bin 181 -> 0 bytes lib/tzdata/zoneinfo/America/Halifax | Bin 1672 -> 0 bytes lib/tzdata/zoneinfo/America/Havana | Bin 1117 -> 0 bytes lib/tzdata/zoneinfo/America/Hermosillo | Bin 286 -> 0 bytes .../zoneinfo/America/Indiana/Indianapolis | Bin 531 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Knox | Bin 1016 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Marengo | Bin 567 -> 0 bytes .../zoneinfo/America/Indiana/Petersburg | Bin 683 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Tell_City | Bin 522 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Vevay | Bin 369 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Vincennes | Bin 558 -> 0 bytes lib/tzdata/zoneinfo/America/Indiana/Winamac | Bin 612 -> 0 bytes .../zoneinfo/America/Indiana/__init__.py | 0 lib/tzdata/zoneinfo/America/Indianapolis | Bin 531 -> 0 bytes lib/tzdata/zoneinfo/America/Inuvik | Bin 701 -> 0 bytes lib/tzdata/zoneinfo/America/Iqaluit | Bin 740 -> 0 bytes lib/tzdata/zoneinfo/America/Jamaica | Bin 339 -> 0 bytes lib/tzdata/zoneinfo/America/Jujuy | Bin 690 -> 0 bytes lib/tzdata/zoneinfo/America/Juneau | Bin 966 -> 0 bytes .../zoneinfo/America/Kentucky/Louisville | Bin 1242 -> 0 bytes .../zoneinfo/America/Kentucky/Monticello | Bin 972 -> 0 bytes .../zoneinfo/America/Kentucky/__init__.py | 0 lib/tzdata/zoneinfo/America/Knox_IN | Bin 1016 -> 0 bytes lib/tzdata/zoneinfo/America/Kralendijk | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/La_Paz | Bin 170 -> 0 bytes lib/tzdata/zoneinfo/America/Lima | Bin 283 -> 0 bytes lib/tzdata/zoneinfo/America/Los_Angeles | Bin 1294 -> 0 bytes lib/tzdata/zoneinfo/America/Louisville | Bin 1242 -> 0 bytes lib/tzdata/zoneinfo/America/Lower_Princes | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Maceio | Bin 502 -> 0 bytes lib/tzdata/zoneinfo/America/Managua | Bin 295 -> 0 bytes lib/tzdata/zoneinfo/America/Manaus | Bin 412 -> 0 bytes lib/tzdata/zoneinfo/America/Marigot | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Martinique | Bin 178 -> 0 bytes lib/tzdata/zoneinfo/America/Matamoros | Bin 437 -> 0 bytes lib/tzdata/zoneinfo/America/Mazatlan | Bin 367 -> 0 bytes lib/tzdata/zoneinfo/America/Mendoza | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Menominee | Bin 917 -> 0 bytes lib/tzdata/zoneinfo/America/Merida | Bin 303 -> 0 bytes lib/tzdata/zoneinfo/America/Metlakatla | Bin 595 -> 0 bytes lib/tzdata/zoneinfo/America/Mexico_City | Bin 412 -> 0 bytes lib/tzdata/zoneinfo/America/Miquelon | Bin 550 -> 0 bytes lib/tzdata/zoneinfo/America/Moncton | Bin 1493 -> 0 bytes lib/tzdata/zoneinfo/America/Monterrey | Bin 293 -> 0 bytes lib/tzdata/zoneinfo/America/Montevideo | Bin 969 -> 0 bytes lib/tzdata/zoneinfo/America/Montreal | Bin 1717 -> 0 bytes lib/tzdata/zoneinfo/America/Montserrat | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Nassau | Bin 1717 -> 0 bytes lib/tzdata/zoneinfo/America/New_York | Bin 1744 -> 0 bytes lib/tzdata/zoneinfo/America/Nipigon | Bin 835 -> 0 bytes lib/tzdata/zoneinfo/America/Nome | Bin 975 -> 0 bytes lib/tzdata/zoneinfo/America/Noronha | Bin 484 -> 0 bytes .../zoneinfo/America/North_Dakota/Beulah | Bin 1043 -> 0 bytes .../zoneinfo/America/North_Dakota/Center | Bin 990 -> 0 bytes .../zoneinfo/America/North_Dakota/New_Salem | Bin 990 -> 0 bytes .../zoneinfo/America/North_Dakota/__init__.py | 0 lib/tzdata/zoneinfo/America/Nuuk | Bin 465 -> 0 bytes lib/tzdata/zoneinfo/America/Ojinaga | Bin 484 -> 0 bytes lib/tzdata/zoneinfo/America/Panama | Bin 149 -> 0 bytes lib/tzdata/zoneinfo/America/Pangnirtung | Bin 769 -> 0 bytes lib/tzdata/zoneinfo/America/Paramaribo | Bin 187 -> 0 bytes lib/tzdata/zoneinfo/America/Phoenix | Bin 240 -> 0 bytes lib/tzdata/zoneinfo/America/Port-au-Prince | Bin 565 -> 0 bytes lib/tzdata/zoneinfo/America/Port_of_Spain | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Porto_Acre | Bin 418 -> 0 bytes lib/tzdata/zoneinfo/America/Porto_Velho | Bin 394 -> 0 bytes lib/tzdata/zoneinfo/America/Puerto_Rico | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Punta_Arenas | Bin 1209 -> 0 bytes lib/tzdata/zoneinfo/America/Rainy_River | Bin 835 -> 0 bytes lib/tzdata/zoneinfo/America/Rankin_Inlet | Bin 692 -> 0 bytes lib/tzdata/zoneinfo/America/Recife | Bin 484 -> 0 bytes lib/tzdata/zoneinfo/America/Regina | Bin 638 -> 0 bytes lib/tzdata/zoneinfo/America/Resolute | Bin 692 -> 0 bytes lib/tzdata/zoneinfo/America/Rio_Branco | Bin 418 -> 0 bytes lib/tzdata/zoneinfo/America/Rosario | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/America/Santa_Isabel | Bin 1025 -> 0 bytes lib/tzdata/zoneinfo/America/Santarem | Bin 409 -> 0 bytes lib/tzdata/zoneinfo/America/Santiago | Bin 1282 -> 0 bytes lib/tzdata/zoneinfo/America/Santo_Domingo | Bin 317 -> 0 bytes lib/tzdata/zoneinfo/America/Sao_Paulo | Bin 952 -> 0 bytes lib/tzdata/zoneinfo/America/Scoresbysund | Bin 479 -> 0 bytes lib/tzdata/zoneinfo/America/Shiprock | Bin 1042 -> 0 bytes lib/tzdata/zoneinfo/America/Sitka | Bin 956 -> 0 bytes lib/tzdata/zoneinfo/America/St_Barthelemy | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/St_Johns | Bin 1878 -> 0 bytes lib/tzdata/zoneinfo/America/St_Kitts | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/St_Lucia | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/St_Thomas | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/St_Vincent | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Swift_Current | Bin 368 -> 0 bytes lib/tzdata/zoneinfo/America/Tegucigalpa | Bin 194 -> 0 bytes lib/tzdata/zoneinfo/America/Thule | Bin 455 -> 0 bytes lib/tzdata/zoneinfo/America/Thunder_Bay | Bin 881 -> 0 bytes lib/tzdata/zoneinfo/America/Tijuana | Bin 1025 -> 0 bytes lib/tzdata/zoneinfo/America/Toronto | Bin 1717 -> 0 bytes lib/tzdata/zoneinfo/America/Tortola | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Vancouver | Bin 1330 -> 0 bytes lib/tzdata/zoneinfo/America/Virgin | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/America/Whitehorse | Bin 1029 -> 0 bytes lib/tzdata/zoneinfo/America/Winnipeg | Bin 1294 -> 0 bytes lib/tzdata/zoneinfo/America/Yakutat | Bin 946 -> 0 bytes lib/tzdata/zoneinfo/America/Yellowknife | Bin 729 -> 0 bytes lib/tzdata/zoneinfo/America/__init__.py | 0 lib/tzdata/zoneinfo/Antarctica/Casey | Bin 243 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Davis | Bin 197 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/DumontDUrville | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Macquarie | Bin 976 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Mawson | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/McMurdo | Bin 1043 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Palmer | Bin 887 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Rothera | Bin 132 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/South_Pole | Bin 1043 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Syowa | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Troll | Bin 177 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/Vostok | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Antarctica/__init__.py | 0 lib/tzdata/zoneinfo/Arctic/Longyearbyen | Bin 676 -> 0 bytes lib/tzdata/zoneinfo/Arctic/__init__.py | 0 lib/tzdata/zoneinfo/Asia/Aden | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Almaty | Bin 609 -> 0 bytes lib/tzdata/zoneinfo/Asia/Amman | Bin 922 -> 0 bytes lib/tzdata/zoneinfo/Asia/Anadyr | Bin 743 -> 0 bytes lib/tzdata/zoneinfo/Asia/Aqtau | Bin 606 -> 0 bytes lib/tzdata/zoneinfo/Asia/Aqtobe | Bin 615 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ashgabat | Bin 375 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ashkhabad | Bin 375 -> 0 bytes lib/tzdata/zoneinfo/Asia/Atyrau | Bin 616 -> 0 bytes lib/tzdata/zoneinfo/Asia/Baghdad | Bin 630 -> 0 bytes lib/tzdata/zoneinfo/Asia/Bahrain | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Asia/Baku | Bin 744 -> 0 bytes lib/tzdata/zoneinfo/Asia/Bangkok | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Asia/Barnaul | Bin 753 -> 0 bytes lib/tzdata/zoneinfo/Asia/Beirut | Bin 732 -> 0 bytes lib/tzdata/zoneinfo/Asia/Bishkek | Bin 618 -> 0 bytes lib/tzdata/zoneinfo/Asia/Brunei | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Asia/Calcutta | Bin 220 -> 0 bytes lib/tzdata/zoneinfo/Asia/Chita | Bin 750 -> 0 bytes lib/tzdata/zoneinfo/Asia/Choibalsan | Bin 619 -> 0 bytes lib/tzdata/zoneinfo/Asia/Chongqing | Bin 393 -> 0 bytes lib/tzdata/zoneinfo/Asia/Chungking | Bin 393 -> 0 bytes lib/tzdata/zoneinfo/Asia/Colombo | Bin 247 -> 0 bytes lib/tzdata/zoneinfo/Asia/Dacca | Bin 231 -> 0 bytes lib/tzdata/zoneinfo/Asia/Damascus | Bin 1047 -> 0 bytes lib/tzdata/zoneinfo/Asia/Dhaka | Bin 231 -> 0 bytes lib/tzdata/zoneinfo/Asia/Dili | Bin 170 -> 0 bytes lib/tzdata/zoneinfo/Asia/Dubai | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Dushanbe | Bin 366 -> 0 bytes lib/tzdata/zoneinfo/Asia/Famagusta | Bin 940 -> 0 bytes lib/tzdata/zoneinfo/Asia/Gaza | Bin 1240 -> 0 bytes lib/tzdata/zoneinfo/Asia/Harbin | Bin 393 -> 0 bytes lib/tzdata/zoneinfo/Asia/Hebron | Bin 1258 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ho_Chi_Minh | Bin 236 -> 0 bytes lib/tzdata/zoneinfo/Asia/Hong_Kong | Bin 775 -> 0 bytes lib/tzdata/zoneinfo/Asia/Hovd | Bin 594 -> 0 bytes lib/tzdata/zoneinfo/Asia/Irkutsk | Bin 760 -> 0 bytes lib/tzdata/zoneinfo/Asia/Istanbul | Bin 1200 -> 0 bytes lib/tzdata/zoneinfo/Asia/Jakarta | Bin 248 -> 0 bytes lib/tzdata/zoneinfo/Asia/Jayapura | Bin 171 -> 0 bytes lib/tzdata/zoneinfo/Asia/Jerusalem | Bin 1074 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kabul | Bin 159 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kamchatka | Bin 727 -> 0 bytes lib/tzdata/zoneinfo/Asia/Karachi | Bin 266 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kashgar | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kathmandu | Bin 161 -> 0 bytes lib/tzdata/zoneinfo/Asia/Katmandu | Bin 161 -> 0 bytes lib/tzdata/zoneinfo/Asia/Khandyga | Bin 775 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kolkata | Bin 220 -> 0 bytes lib/tzdata/zoneinfo/Asia/Krasnoyarsk | Bin 741 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kuala_Lumpur | Bin 256 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kuching | Bin 320 -> 0 bytes lib/tzdata/zoneinfo/Asia/Kuwait | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Macao | Bin 791 -> 0 bytes lib/tzdata/zoneinfo/Asia/Macau | Bin 791 -> 0 bytes lib/tzdata/zoneinfo/Asia/Magadan | Bin 751 -> 0 bytes lib/tzdata/zoneinfo/Asia/Makassar | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/Asia/Manila | Bin 238 -> 0 bytes lib/tzdata/zoneinfo/Asia/Muscat | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Nicosia | Bin 597 -> 0 bytes lib/tzdata/zoneinfo/Asia/Novokuznetsk | Bin 726 -> 0 bytes lib/tzdata/zoneinfo/Asia/Novosibirsk | Bin 753 -> 0 bytes lib/tzdata/zoneinfo/Asia/Omsk | Bin 741 -> 0 bytes lib/tzdata/zoneinfo/Asia/Oral | Bin 625 -> 0 bytes lib/tzdata/zoneinfo/Asia/Phnom_Penh | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Asia/Pontianak | Bin 247 -> 0 bytes lib/tzdata/zoneinfo/Asia/Pyongyang | Bin 183 -> 0 bytes lib/tzdata/zoneinfo/Asia/Qatar | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Asia/Qostanay | Bin 615 -> 0 bytes lib/tzdata/zoneinfo/Asia/Qyzylorda | Bin 624 -> 0 bytes lib/tzdata/zoneinfo/Asia/Rangoon | Bin 187 -> 0 bytes lib/tzdata/zoneinfo/Asia/Riyadh | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Saigon | Bin 236 -> 0 bytes lib/tzdata/zoneinfo/Asia/Sakhalin | Bin 755 -> 0 bytes lib/tzdata/zoneinfo/Asia/Samarkand | Bin 366 -> 0 bytes lib/tzdata/zoneinfo/Asia/Seoul | Bin 415 -> 0 bytes lib/tzdata/zoneinfo/Asia/Shanghai | Bin 393 -> 0 bytes lib/tzdata/zoneinfo/Asia/Singapore | Bin 256 -> 0 bytes lib/tzdata/zoneinfo/Asia/Srednekolymsk | Bin 742 -> 0 bytes lib/tzdata/zoneinfo/Asia/Taipei | Bin 511 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tashkent | Bin 366 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tbilisi | Bin 629 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tehran | Bin 2004 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tel_Aviv | Bin 1074 -> 0 bytes lib/tzdata/zoneinfo/Asia/Thimbu | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Asia/Thimphu | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tokyo | Bin 213 -> 0 bytes lib/tzdata/zoneinfo/Asia/Tomsk | Bin 753 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ujung_Pandang | Bin 190 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ulaanbaatar | Bin 594 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ulan_Bator | Bin 594 -> 0 bytes lib/tzdata/zoneinfo/Asia/Urumqi | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Asia/Ust-Nera | Bin 771 -> 0 bytes lib/tzdata/zoneinfo/Asia/Vientiane | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Asia/Vladivostok | Bin 742 -> 0 bytes lib/tzdata/zoneinfo/Asia/Yakutsk | Bin 741 -> 0 bytes lib/tzdata/zoneinfo/Asia/Yangon | Bin 187 -> 0 bytes lib/tzdata/zoneinfo/Asia/Yekaterinburg | Bin 760 -> 0 bytes lib/tzdata/zoneinfo/Asia/Yerevan | Bin 708 -> 0 bytes lib/tzdata/zoneinfo/Asia/__init__.py | 0 lib/tzdata/zoneinfo/Atlantic/Azores | Bin 1453 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Bermuda | Bin 1024 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Canary | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Cape_Verde | Bin 175 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Faeroe | Bin 441 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Faroe | Bin 441 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Jan_Mayen | Bin 676 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Madeira | Bin 1453 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Reykjavik | Bin 753 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/South_Georgia | Bin 132 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/St_Helena | Bin 130 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/Stanley | Bin 789 -> 0 bytes lib/tzdata/zoneinfo/Atlantic/__init__.py | 0 lib/tzdata/zoneinfo/Australia/ACT | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/Adelaide | Bin 921 -> 0 bytes lib/tzdata/zoneinfo/Australia/Brisbane | Bin 289 -> 0 bytes lib/tzdata/zoneinfo/Australia/Broken_Hill | Bin 941 -> 0 bytes lib/tzdata/zoneinfo/Australia/Canberra | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/Currie | Bin 1003 -> 0 bytes lib/tzdata/zoneinfo/Australia/Darwin | Bin 234 -> 0 bytes lib/tzdata/zoneinfo/Australia/Eucla | Bin 314 -> 0 bytes lib/tzdata/zoneinfo/Australia/Hobart | Bin 1003 -> 0 bytes lib/tzdata/zoneinfo/Australia/LHI | Bin 692 -> 0 bytes lib/tzdata/zoneinfo/Australia/Lindeman | Bin 325 -> 0 bytes lib/tzdata/zoneinfo/Australia/Lord_Howe | Bin 692 -> 0 bytes lib/tzdata/zoneinfo/Australia/Melbourne | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/NSW | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/North | Bin 234 -> 0 bytes lib/tzdata/zoneinfo/Australia/Perth | Bin 306 -> 0 bytes lib/tzdata/zoneinfo/Australia/Queensland | Bin 289 -> 0 bytes lib/tzdata/zoneinfo/Australia/South | Bin 921 -> 0 bytes lib/tzdata/zoneinfo/Australia/Sydney | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/Tasmania | Bin 1003 -> 0 bytes lib/tzdata/zoneinfo/Australia/Victoria | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Australia/West | Bin 306 -> 0 bytes lib/tzdata/zoneinfo/Australia/Yancowinna | Bin 941 -> 0 bytes lib/tzdata/zoneinfo/Australia/__init__.py | 0 lib/tzdata/zoneinfo/Brazil/Acre | Bin 418 -> 0 bytes lib/tzdata/zoneinfo/Brazil/DeNoronha | Bin 484 -> 0 bytes lib/tzdata/zoneinfo/Brazil/East | Bin 952 -> 0 bytes lib/tzdata/zoneinfo/Brazil/West | Bin 412 -> 0 bytes lib/tzdata/zoneinfo/Brazil/__init__.py | 0 lib/tzdata/zoneinfo/CET | Bin 621 -> 0 bytes lib/tzdata/zoneinfo/CST6CDT | Bin 951 -> 0 bytes lib/tzdata/zoneinfo/Canada/Atlantic | Bin 1672 -> 0 bytes lib/tzdata/zoneinfo/Canada/Central | Bin 1294 -> 0 bytes lib/tzdata/zoneinfo/Canada/Eastern | Bin 1717 -> 0 bytes lib/tzdata/zoneinfo/Canada/Mountain | Bin 970 -> 0 bytes lib/tzdata/zoneinfo/Canada/Newfoundland | Bin 1878 -> 0 bytes lib/tzdata/zoneinfo/Canada/Pacific | Bin 1330 -> 0 bytes lib/tzdata/zoneinfo/Canada/Saskatchewan | Bin 638 -> 0 bytes lib/tzdata/zoneinfo/Canada/Yukon | Bin 1029 -> 0 bytes lib/tzdata/zoneinfo/Canada/__init__.py | 0 lib/tzdata/zoneinfo/Chile/Continental | Bin 1282 -> 0 bytes lib/tzdata/zoneinfo/Chile/EasterIsland | Bin 1102 -> 0 bytes lib/tzdata/zoneinfo/Chile/__init__.py | 0 lib/tzdata/zoneinfo/Cuba | Bin 1117 -> 0 bytes lib/tzdata/zoneinfo/EET | Bin 497 -> 0 bytes lib/tzdata/zoneinfo/EST | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/EST5EDT | Bin 951 -> 0 bytes lib/tzdata/zoneinfo/Egypt | Bin 1276 -> 0 bytes lib/tzdata/zoneinfo/Eire | Bin 1496 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+1 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+10 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+11 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+12 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+2 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+3 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+4 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+5 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+6 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+7 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+8 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT+9 | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-1 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-10 | Bin 115 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-11 | Bin 115 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-12 | Bin 115 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-13 | Bin 115 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-14 | Bin 115 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-2 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-3 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-4 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-5 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-6 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-7 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-8 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT-9 | Bin 114 -> 0 bytes lib/tzdata/zoneinfo/Etc/GMT0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/Greenwich | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/UCT | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/UTC | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/Universal | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/Zulu | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Etc/__init__.py | 0 lib/tzdata/zoneinfo/Europe/Amsterdam | Bin 1071 -> 0 bytes lib/tzdata/zoneinfo/Europe/Andorra | Bin 389 -> 0 bytes lib/tzdata/zoneinfo/Europe/Astrakhan | Bin 726 -> 0 bytes lib/tzdata/zoneinfo/Europe/Athens | Bin 682 -> 0 bytes lib/tzdata/zoneinfo/Europe/Belfast | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/Europe/Belgrade | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/Berlin | Bin 705 -> 0 bytes lib/tzdata/zoneinfo/Europe/Bratislava | Bin 723 -> 0 bytes lib/tzdata/zoneinfo/Europe/Brussels | Bin 1103 -> 0 bytes lib/tzdata/zoneinfo/Europe/Bucharest | Bin 661 -> 0 bytes lib/tzdata/zoneinfo/Europe/Budapest | Bin 766 -> 0 bytes lib/tzdata/zoneinfo/Europe/Busingen | Bin 497 -> 0 bytes lib/tzdata/zoneinfo/Europe/Chisinau | Bin 755 -> 0 bytes lib/tzdata/zoneinfo/Europe/Copenhagen | Bin 623 -> 0 bytes lib/tzdata/zoneinfo/Europe/Dublin | Bin 1496 -> 0 bytes lib/tzdata/zoneinfo/Europe/Gibraltar | Bin 1220 -> 0 bytes lib/tzdata/zoneinfo/Europe/Guernsey | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/Europe/Helsinki | Bin 481 -> 0 bytes lib/tzdata/zoneinfo/Europe/Isle_of_Man | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/Europe/Istanbul | Bin 1200 -> 0 bytes lib/tzdata/zoneinfo/Europe/Jersey | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/Europe/Kaliningrad | Bin 904 -> 0 bytes lib/tzdata/zoneinfo/Europe/Kiev | Bin 558 -> 0 bytes lib/tzdata/zoneinfo/Europe/Kirov | Bin 717 -> 0 bytes lib/tzdata/zoneinfo/Europe/Lisbon | Bin 1454 -> 0 bytes lib/tzdata/zoneinfo/Europe/Ljubljana | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/London | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/Europe/Luxembourg | Bin 1087 -> 0 bytes lib/tzdata/zoneinfo/Europe/Madrid | Bin 897 -> 0 bytes lib/tzdata/zoneinfo/Europe/Malta | Bin 928 -> 0 bytes lib/tzdata/zoneinfo/Europe/Mariehamn | Bin 481 -> 0 bytes lib/tzdata/zoneinfo/Europe/Minsk | Bin 808 -> 0 bytes lib/tzdata/zoneinfo/Europe/Monaco | Bin 1114 -> 0 bytes lib/tzdata/zoneinfo/Europe/Moscow | Bin 908 -> 0 bytes lib/tzdata/zoneinfo/Europe/Nicosia | Bin 597 -> 0 bytes lib/tzdata/zoneinfo/Europe/Oslo | Bin 676 -> 0 bytes lib/tzdata/zoneinfo/Europe/Paris | Bin 1105 -> 0 bytes lib/tzdata/zoneinfo/Europe/Podgorica | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/Prague | Bin 723 -> 0 bytes lib/tzdata/zoneinfo/Europe/Riga | Bin 694 -> 0 bytes lib/tzdata/zoneinfo/Europe/Rome | Bin 947 -> 0 bytes lib/tzdata/zoneinfo/Europe/Samara | Bin 732 -> 0 bytes lib/tzdata/zoneinfo/Europe/San_Marino | Bin 947 -> 0 bytes lib/tzdata/zoneinfo/Europe/Sarajevo | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/Saratov | Bin 726 -> 0 bytes lib/tzdata/zoneinfo/Europe/Simferopol | Bin 865 -> 0 bytes lib/tzdata/zoneinfo/Europe/Skopje | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/Sofia | Bin 592 -> 0 bytes lib/tzdata/zoneinfo/Europe/Stockholm | Bin 497 -> 0 bytes lib/tzdata/zoneinfo/Europe/Tallinn | Bin 675 -> 0 bytes lib/tzdata/zoneinfo/Europe/Tirane | Bin 604 -> 0 bytes lib/tzdata/zoneinfo/Europe/Tiraspol | Bin 755 -> 0 bytes lib/tzdata/zoneinfo/Europe/Ulyanovsk | Bin 760 -> 0 bytes lib/tzdata/zoneinfo/Europe/Uzhgorod | Bin 539 -> 0 bytes lib/tzdata/zoneinfo/Europe/Vaduz | Bin 497 -> 0 bytes lib/tzdata/zoneinfo/Europe/Vatican | Bin 947 -> 0 bytes lib/tzdata/zoneinfo/Europe/Vienna | Bin 658 -> 0 bytes lib/tzdata/zoneinfo/Europe/Vilnius | Bin 676 -> 0 bytes lib/tzdata/zoneinfo/Europe/Volgograd | Bin 735 -> 0 bytes lib/tzdata/zoneinfo/Europe/Warsaw | Bin 923 -> 0 bytes lib/tzdata/zoneinfo/Europe/Zagreb | Bin 478 -> 0 bytes lib/tzdata/zoneinfo/Europe/Zaporozhye | Bin 569 -> 0 bytes lib/tzdata/zoneinfo/Europe/Zurich | Bin 497 -> 0 bytes lib/tzdata/zoneinfo/Europe/__init__.py | 0 lib/tzdata/zoneinfo/Factory | Bin 113 -> 0 bytes lib/tzdata/zoneinfo/GB | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/GB-Eire | Bin 1599 -> 0 bytes lib/tzdata/zoneinfo/GMT | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/GMT+0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/GMT-0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/GMT0 | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Greenwich | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/HST | Bin 112 -> 0 bytes lib/tzdata/zoneinfo/Hongkong | Bin 775 -> 0 bytes lib/tzdata/zoneinfo/Iceland | Bin 753 -> 0 bytes lib/tzdata/zoneinfo/Indian/Antananarivo | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Indian/Chagos | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Indian/Christmas | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Indian/Cocos | Bin 140 -> 0 bytes lib/tzdata/zoneinfo/Indian/Comoro | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Indian/Kerguelen | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Indian/Mahe | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Indian/Maldives | Bin 152 -> 0 bytes lib/tzdata/zoneinfo/Indian/Mauritius | Bin 179 -> 0 bytes lib/tzdata/zoneinfo/Indian/Mayotte | Bin 191 -> 0 bytes lib/tzdata/zoneinfo/Indian/Reunion | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Indian/__init__.py | 0 lib/tzdata/zoneinfo/Iran | Bin 2004 -> 0 bytes lib/tzdata/zoneinfo/Israel | Bin 1074 -> 0 bytes lib/tzdata/zoneinfo/Jamaica | Bin 339 -> 0 bytes lib/tzdata/zoneinfo/Japan | Bin 213 -> 0 bytes lib/tzdata/zoneinfo/Kwajalein | Bin 219 -> 0 bytes lib/tzdata/zoneinfo/Libya | Bin 431 -> 0 bytes lib/tzdata/zoneinfo/MET | Bin 621 -> 0 bytes lib/tzdata/zoneinfo/MST | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/MST7MDT | Bin 951 -> 0 bytes lib/tzdata/zoneinfo/Mexico/BajaNorte | Bin 1025 -> 0 bytes lib/tzdata/zoneinfo/Mexico/BajaSur | Bin 367 -> 0 bytes lib/tzdata/zoneinfo/Mexico/General | Bin 412 -> 0 bytes lib/tzdata/zoneinfo/Mexico/__init__.py | 0 lib/tzdata/zoneinfo/NZ | Bin 1043 -> 0 bytes lib/tzdata/zoneinfo/NZ-CHAT | Bin 808 -> 0 bytes lib/tzdata/zoneinfo/Navajo | Bin 1042 -> 0 bytes lib/tzdata/zoneinfo/PRC | Bin 393 -> 0 bytes lib/tzdata/zoneinfo/PST8PDT | Bin 951 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Apia | Bin 407 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Auckland | Bin 1043 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Bougainville | Bin 201 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Chatham | Bin 808 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Chuuk | Bin 195 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Easter | Bin 1102 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Efate | Bin 342 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Enderbury | Bin 172 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Fakaofo | Bin 153 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Fiji | Bin 428 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Funafuti | Bin 134 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Galapagos | Bin 175 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Gambier | Bin 132 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Guadalcanal | Bin 134 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Guam | Bin 350 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Honolulu | Bin 221 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Johnston | Bin 221 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Kanton | Bin 172 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Kiritimati | Bin 174 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Kosrae | Bin 242 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Kwajalein | Bin 219 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Majuro | Bin 218 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Marquesas | Bin 139 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Midway | Bin 146 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Nauru | Bin 183 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Niue | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Norfolk | Bin 247 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Noumea | Bin 198 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Pago_Pago | Bin 146 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Palau | Bin 148 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Pitcairn | Bin 153 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Pohnpei | Bin 214 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Ponape | Bin 214 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Port_Moresby | Bin 154 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Rarotonga | Bin 406 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Saipan | Bin 350 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Samoa | Bin 146 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Tahiti | Bin 133 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Tarawa | Bin 134 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Tongatapu | Bin 237 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Truk | Bin 195 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Wake | Bin 134 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Wallis | Bin 134 -> 0 bytes lib/tzdata/zoneinfo/Pacific/Yap | Bin 195 -> 0 bytes lib/tzdata/zoneinfo/Pacific/__init__.py | 0 lib/tzdata/zoneinfo/Poland | Bin 923 -> 0 bytes lib/tzdata/zoneinfo/Portugal | Bin 1454 -> 0 bytes lib/tzdata/zoneinfo/ROC | Bin 511 -> 0 bytes lib/tzdata/zoneinfo/ROK | Bin 415 -> 0 bytes lib/tzdata/zoneinfo/Singapore | Bin 256 -> 0 bytes lib/tzdata/zoneinfo/Turkey | Bin 1200 -> 0 bytes lib/tzdata/zoneinfo/UCT | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/US/Alaska | Bin 977 -> 0 bytes lib/tzdata/zoneinfo/US/Aleutian | Bin 969 -> 0 bytes lib/tzdata/zoneinfo/US/Arizona | Bin 240 -> 0 bytes lib/tzdata/zoneinfo/US/Central | Bin 1754 -> 0 bytes lib/tzdata/zoneinfo/US/East-Indiana | Bin 531 -> 0 bytes lib/tzdata/zoneinfo/US/Eastern | Bin 1744 -> 0 bytes lib/tzdata/zoneinfo/US/Hawaii | Bin 221 -> 0 bytes lib/tzdata/zoneinfo/US/Indiana-Starke | Bin 1016 -> 0 bytes lib/tzdata/zoneinfo/US/Michigan | Bin 899 -> 0 bytes lib/tzdata/zoneinfo/US/Mountain | Bin 1042 -> 0 bytes lib/tzdata/zoneinfo/US/Pacific | Bin 1294 -> 0 bytes lib/tzdata/zoneinfo/US/Samoa | Bin 146 -> 0 bytes lib/tzdata/zoneinfo/US/__init__.py | 0 lib/tzdata/zoneinfo/UTC | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/Universal | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/W-SU | Bin 908 -> 0 bytes lib/tzdata/zoneinfo/WET | Bin 494 -> 0 bytes lib/tzdata/zoneinfo/Zulu | Bin 111 -> 0 bytes lib/tzdata/zoneinfo/__init__.py | 0 lib/tzdata/zoneinfo/iso3166.tab | 274 - lib/tzdata/zoneinfo/leapseconds | 82 - lib/tzdata/zoneinfo/tzdata.zi | 4437 --------- lib/tzdata/zoneinfo/zone.tab | 454 - lib/tzdata/zoneinfo/zone1970.tab | 374 - lib/tzdata/zones | 595 -- lib/tzlocal/__init__.py | 13 - lib/tzlocal/unix.py | 215 - lib/tzlocal/utils.py | 128 - lib/tzlocal/win32.py | 137 - lib/tzlocal/windows_tz.py | 699 -- lib/urllib3/__init__.py | 85 - lib/urllib3/_collections.py | 337 - lib/urllib3/_version.py | 2 - lib/urllib3/connection.py | 567 -- lib/urllib3/connectionpool.py | 1108 --- lib/urllib3/contrib/__init__.py | 0 lib/urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - lib/urllib3/contrib/appengine.py | 314 - lib/urllib3/contrib/ntlmpool.py | 130 - lib/urllib3/contrib/pyopenssl.py | 511 - lib/urllib3/contrib/securetransport.py | 922 -- lib/urllib3/contrib/socks.py | 216 - lib/urllib3/exceptions.py | 323 - lib/urllib3/fields.py | 274 - lib/urllib3/filepost.py | 98 - lib/urllib3/packages/__init__.py | 0 lib/urllib3/packages/backports/__init__.py | 0 lib/urllib3/packages/backports/makefile.py | 51 - lib/urllib3/packages/six.py | 1077 --- lib/urllib3/poolmanager.py | 537 -- lib/urllib3/request.py | 170 - lib/urllib3/response.py | 824 -- lib/urllib3/util/__init__.py | 49 - lib/urllib3/util/connection.py | 149 - lib/urllib3/util/proxy.py | 57 - lib/urllib3/util/queue.py | 22 - lib/urllib3/util/request.py | 146 - lib/urllib3/util/response.py | 107 - lib/urllib3/util/retry.py | 620 -- lib/urllib3/util/ssl_.py | 495 - lib/urllib3/util/ssl_match_hostname.py | 159 - lib/urllib3/util/ssltransport.py | 221 - lib/urllib3/util/timeout.py | 268 - lib/urllib3/util/url.py | 432 - lib/urllib3/util/wait.py | 153 - lib/webencodings/__init__.py | 342 - lib/webencodings/labels.py | 231 - lib/webencodings/mklabels.py | 59 - lib/webencodings/tests.py | 153 - lib/webencodings/x_user_defined.py | 325 - lib/websocket/__init__.py | 26 - lib/websocket/_abnf.py | 424 - lib/websocket/_app.py | 429 - lib/websocket/_cookiejar.py | 64 - lib/websocket/_core.py | 602 -- lib/websocket/_exceptions.py | 80 - lib/websocket/_handshake.py | 195 - lib/websocket/_http.py | 337 - lib/websocket/_logging.py | 87 - lib/websocket/_socket.py | 179 - lib/websocket/_ssl_compat.py | 39 - lib/websocket/_url.py | 172 - lib/websocket/_utils.py | 104 - lib/websocket/_wsdump.py | 231 - lib/websocket/tests/__init__.py | 0 lib/websocket/tests/data/header01.txt | 6 - lib/websocket/tests/data/header02.txt | 6 - lib/websocket/tests/data/header03.txt | 8 - lib/websocket/tests/echo-server.py | 21 - lib/websocket/tests/test_abnf.py | 89 - lib/websocket/tests/test_app.py | 230 - lib/websocket/tests/test_cookiejar.py | 116 - lib/websocket/tests/test_http.py | 176 - lib/websocket/tests/test_url.py | 301 - lib/websocket/tests/test_websocket.py | 455 - lib/xmltodict.py | 544 -- lib/zc/lockfile/README.txt | 70 - lib/zc/lockfile/__init__.py | 125 - lib/zc/lockfile/tests.py | 201 - lib/zipp.py | 312 - package/Tautulli-macos.spec | 56 - package/Tautulli-windows.spec | 42 - package/Tautulli.nsi | 258 - package/macos-scripts/postinstall | 9 - package/macos-scripts/preinstall | 20 - .../nsis-plugins/x86-unicode/nsProcess.dll | Bin 4608 -> 0 bytes package/requirements-package.txt | 11 - plexpy/__init__.py | 2780 ------ plexpy/activity_handler.py | 714 -- plexpy/activity_pinger.py | 275 - plexpy/activity_processor.py | 672 -- plexpy/api2.py | 834 -- plexpy/classes.py | 75 - plexpy/common.py | 679 -- plexpy/config.py | 705 -- plexpy/database.py | 501 - plexpy/datafactory.py | 2233 ----- plexpy/datatables.py | 305 - plexpy/exceptions.py | 23 - plexpy/exporter.py | 2610 ----- plexpy/graphs.py | 1214 --- plexpy/helpers.py | 1734 ---- plexpy/http_handler.py | 227 - plexpy/libraries.py | 1204 --- plexpy/lock.py | 108 - plexpy/log_reader.py | 124 - plexpy/logger.py | 433 - plexpy/macos.py | 204 - plexpy/mobile_app.py | 231 - plexpy/newsletter_handler.py | 225 - plexpy/newsletters.py | 976 -- plexpy/notification_handler.py | 2038 ---- plexpy/notifiers.py | 4379 --------- plexpy/plex.py | 68 - plexpy/plexivity_import.py | 467 - plexpy/plextv.py | 945 -- plexpy/plexwatch_import.py | 461 - plexpy/pmsconnect.py | 3236 ------- plexpy/request.py | 327 - plexpy/session.py | 280 - plexpy/users.py | 1027 -- plexpy/version.py | 21 - plexpy/versioncheck.py | 573 -- plexpy/web_socket.py | 328 - plexpy/webauth.py | 434 - plexpy/webserve.py | 7178 -------------- plexpy/webstart.py | 296 - plexpy/windows.py | 205 - pylintrc | 284 - requirements.txt | 56 - snap/snapcraft.yaml | 72 - start.bat | 1 - start.sh | 28 - 3578 files changed, 456244 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/BUG-REPORT.yml delete mode 100644 .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/dependabot.yml delete mode 100644 .github/label-actions.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/issues-stale.yml delete mode 100644 .github/workflows/issues.yml delete mode 100644 .github/workflows/publish-docker.yml delete mode 100644 .github/workflows/publish-installers.yml delete mode 100644 .github/workflows/publish-snap.yml delete mode 100644 .github/workflows/pull-requests.yml delete mode 100644 .gitignore delete mode 100644 API.md delete mode 100644 CHANGELOG.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Dockerfile delete mode 100644 LICENSE delete mode 100755 PlexPy.py delete mode 100644 README.md delete mode 100755 Tautulli.py delete mode 100755 contrib/clean_pyc.bat delete mode 100755 contrib/clean_pyc.sh delete mode 100755 contrib/downgrade.sh delete mode 100644 data/interfaces/default/app_import.html delete mode 100644 data/interfaces/default/base.html delete mode 100644 data/interfaces/default/config_import.html delete mode 100644 data/interfaces/default/configuration_table.html delete mode 100755 data/interfaces/default/css/bootstrap-wizard.css delete mode 100644 data/interfaces/default/css/bootstrap3/bootstrap.css delete mode 100644 data/interfaces/default/css/bootstrap3/bootstrap.css.map delete mode 100644 data/interfaces/default/css/bootstrap3/bootstrap.min.css delete mode 100644 data/interfaces/default/css/dataTables.bootstrap.min.css delete mode 100644 data/interfaces/default/css/dataTables.colVis.css delete mode 100644 data/interfaces/default/css/font-awesome.all.min.css delete mode 100644 data/interfaces/default/css/font-awesome.v4-shims.min.css delete mode 100755 data/interfaces/default/css/jquery-ui.min.css delete mode 100644 data/interfaces/default/css/jquery.dataTables.css delete mode 100644 data/interfaces/default/css/jquery.scrollbar.css delete mode 100644 data/interfaces/default/css/opensans.min.css delete mode 100644 data/interfaces/default/css/pnotify.custom.min.css delete mode 100644 data/interfaces/default/css/selectize.bootstrap3.css delete mode 100644 data/interfaces/default/css/selectize.min.css delete mode 100644 data/interfaces/default/css/tautulli-dataTables.css delete mode 100644 data/interfaces/default/css/tautulli.css delete mode 100644 data/interfaces/default/current_activity_header.html delete mode 100644 data/interfaces/default/current_activity_instance.html delete mode 100644 data/interfaces/default/edit_library.html delete mode 100644 data/interfaces/default/edit_user.html delete mode 100644 data/interfaces/default/export_modal.html delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/LICENSE.txt delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.eot delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.svg delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.ttf delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff delete mode 100644 data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff2 delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/LICENSE.txt delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.eot delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.svg delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.ttf delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff delete mode 100644 data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff2 delete mode 100644 data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.eot delete mode 100644 data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.svg delete mode 100644 data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.ttf delete mode 100644 data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff delete mode 100644 data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff2 delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-brands-400.eot delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-brands-400.svg delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-brands-400.ttf delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-brands-400.woff delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-brands-400.woff2 delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-regular-400.eot delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-regular-400.svg delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-regular-400.ttf delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-regular-400.woff delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-regular-400.woff2 delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-solid-900.eot delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-solid-900.svg delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-solid-900.ttf delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-solid-900.woff delete mode 100644 data/interfaces/default/fonts/font-awesome/fa-solid-900.woff2 delete mode 100644 data/interfaces/default/graphs.html delete mode 100644 data/interfaces/default/history.html delete mode 100644 data/interfaces/default/history_table_modal.html delete mode 100644 data/interfaces/default/home_stats.html delete mode 100644 data/interfaces/default/images/13AD46AC.png delete mode 100644 data/interfaces/default/images/13AD46AD.png delete mode 100644 data/interfaces/default/images/93124B54.png delete mode 100644 data/interfaces/default/images/93124B55.png delete mode 100644 data/interfaces/default/images/app-store-badge.svg delete mode 100644 data/interfaces/default/images/art-live-full.png delete mode 100644 data/interfaces/default/images/art-live.png delete mode 100644 data/interfaces/default/images/art.png delete mode 100644 data/interfaces/default/images/background.png delete mode 100644 data/interfaces/default/images/become_a_patron_button.png delete mode 100644 data/interfaces/default/images/check-solid.ico delete mode 100644 data/interfaces/default/images/chevron.png delete mode 100644 data/interfaces/default/images/cover.png delete mode 100644 data/interfaces/default/images/default_profile.svg delete mode 100644 data/interfaces/default/images/discord-overlay.png delete mode 100644 data/interfaces/default/images/favicon/android-chrome-192x192.png delete mode 100644 data/interfaces/default/images/favicon/android-chrome-256x256.png delete mode 100644 data/interfaces/default/images/favicon/apple-touch-icon.png delete mode 100644 data/interfaces/default/images/favicon/browserconfig.xml delete mode 100644 data/interfaces/default/images/favicon/favicon-16x16.png delete mode 100644 data/interfaces/default/images/favicon/favicon-32x32.png delete mode 100644 data/interfaces/default/images/favicon/favicon.ico delete mode 100644 data/interfaces/default/images/favicon/manifest.json delete mode 100644 data/interfaces/default/images/favicon/mstile-150x150.png delete mode 100644 data/interfaces/default/images/favicon/safari-pinned-tab.svg delete mode 100644 data/interfaces/default/images/gold-rect-paypal-34px.png delete mode 100644 data/interfaces/default/images/google-play-badge.svg delete mode 100644 data/interfaces/default/images/gravatar-default-80x80.png delete mode 100644 data/interfaces/default/images/gravatar-default.png delete mode 100644 data/interfaces/default/images/icons/most-concurrent-streams.svg delete mode 100644 data/interfaces/default/images/libraries/artist.png delete mode 100644 data/interfaces/default/images/libraries/artist.svg delete mode 100644 data/interfaces/default/images/libraries/live.png delete mode 100644 data/interfaces/default/images/libraries/live.svg delete mode 100644 data/interfaces/default/images/libraries/movie.png delete mode 100644 data/interfaces/default/images/libraries/movie.svg delete mode 100644 data/interfaces/default/images/libraries/photo.png delete mode 100644 data/interfaces/default/images/libraries/photo.svg delete mode 100644 data/interfaces/default/images/libraries/playlist.png delete mode 100644 data/interfaces/default/images/libraries/playlist.svg delete mode 100644 data/interfaces/default/images/libraries/show.png delete mode 100644 data/interfaces/default/images/libraries/show.svg delete mode 100644 data/interfaces/default/images/libraries/video.png delete mode 100644 data/interfaces/default/images/libraries/video.svg delete mode 100644 data/interfaces/default/images/logo-circle.icns delete mode 100644 data/interfaces/default/images/logo-circle.ico delete mode 100644 data/interfaces/default/images/logo-circle.png delete mode 100644 data/interfaces/default/images/logo-flat-white.ico delete mode 100644 data/interfaces/default/images/logo-flat-white.png delete mode 100644 data/interfaces/default/images/logo-tautulli-100.png delete mode 100644 data/interfaces/default/images/logo-tautulli-45.png delete mode 100644 data/interfaces/default/images/logo-tautulli-newsletter.png delete mode 100644 data/interfaces/default/images/logo-tautulli.png delete mode 100644 data/interfaces/default/images/logo-tautulli.svg delete mode 100644 data/interfaces/default/images/logo.png delete mode 100644 data/interfaces/default/images/logo.svg delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/1.33.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/1.66.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/1.78.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/1.85.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/2.20.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/2.25.png delete mode 100644 data/interfaces/default/images/media_flags/aspect_ratio/2.35.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/1.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/2.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/5.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/6.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/7.png delete mode 100644 data/interfaces/default/images/media_flags/audio_channels/8.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/aac.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/aif.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/aifc.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/aiff.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/alac.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/ape.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/cdda.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/dca-ma.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/dolby_digital.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/dolby_truehd.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/dts.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/eac3.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/flac.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/m4a.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/mlp.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/mp2.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/mp3.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/mpc.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/ogg.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/pcm.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/ra.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/shn.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wav.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wave.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wma.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wmahd.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wmapro.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wmav2.png delete mode 100644 data/interfaces/default/images/media_flags/audio_codec/wv.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/G.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/NC-17.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/NR.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/Not Rated.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/PG-13.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/PG.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/R.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-14.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-G.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-MA.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-PG.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-Y.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-Y7-FV.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/TV-Y7.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/Unrated.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/X.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/E.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/G.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/M.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/MA15+.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/MA15.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/PG.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/R18+.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/R18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/X18+.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/au/X18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/14A.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/18A.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/E.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/G.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/PG.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/ca/R.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/de/0.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/de/12.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/de/16.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/de/18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/de/6.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/-10.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/-12.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/-16.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/-18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/Tout Public.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/fr/U.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/12.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/12A.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/15.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/PG.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/R18.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/gb/U.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/12.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/16.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/6.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/9.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/AL.png delete mode 100644 data/interfaces/default/images/media_flags/content_rating/nl/Alle Leeftijden.png delete mode 100644 data/interfaces/default/images/media_flags/studio/1492_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/20th_century_fox.png delete mode 100644 data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/2929.png delete mode 100644 data/interfaces/default/images/media_flags/studio/360_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/40_acres.png delete mode 100644 data/interfaces/default/images/media_flags/studio/57_irving.png delete mode 100644 data/interfaces/default/images/media_flags/studio/777_film_corp.png delete mode 100644 data/interfaces/default/images/media_flags/studio/a24.png delete mode 100644 data/interfaces/default/images/media_flags/studio/a_1_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/a_and_e.png delete mode 100644 data/interfaces/default/images/media_flags/studio/aardman.png delete mode 100644 data/interfaces/default/images/media_flags/studio/abandon.png delete mode 100644 data/interfaces/default/images/media_flags/studio/abc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/abc_australia.png delete mode 100644 data/interfaces/default/images/media_flags/studio/abc_family.png delete mode 100644 data/interfaces/default/images/media_flags/studio/actf.png delete mode 100644 data/interfaces/default/images/media_flags/studio/adult_swim.png delete mode 100644 data/interfaces/default/images/media_flags/studio/afi.png delete mode 100644 data/interfaces/default/images/media_flags/studio/after_dark.png delete mode 100644 data/interfaces/default/images/media_flags/studio/aic.png delete mode 100644 data/interfaces/default/images/media_flags/studio/alcon_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/alfred_hitchcock_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/alliance.png delete mode 100644 data/interfaces/default/images/media_flags/studio/alloy.png delete mode 100644 data/interfaces/default/images/media_flags/studio/alphaville.png delete mode 100644 data/interfaces/default/images/media_flags/studio/amazon_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ambience.png delete mode 100644 data/interfaces/default/images/media_flags/studio/amblin_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/amc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/american_masters.png delete mode 100644 data/interfaces/default/images/media_flags/studio/american_zoetrope.png delete mode 100644 data/interfaces/default/images/media_flags/studio/anchor_bay_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/animal_planet.png delete mode 100644 data/interfaces/default/images/media_flags/studio/animax.png delete mode 100644 data/interfaces/default/images/media_flags/studio/anonymous_content.png delete mode 100644 data/interfaces/default/images/media_flags/studio/antena_3.png delete mode 100644 data/interfaces/default/images/media_flags/studio/apatow_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/apple.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ard.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ark.png delete mode 100644 data/interfaces/default/images/media_flags/studio/arte.png delete mode 100644 data/interfaces/default/images/media_flags/studio/artisan_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/aspen_film_society.png delete mode 100644 data/interfaces/default/images/media_flags/studio/atom_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/audience_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/australian_film_commission.png delete mode 100644 data/interfaces/default/images/media_flags/studio/avalanche_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/avnet_kerner.png delete mode 100644 data/interfaces/default/images/media_flags/studio/babylonian.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bad_boy_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bad_robot.png delete mode 100644 data/interfaces/default/images/media_flags/studio/baltimore_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bandai.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bandai_visual.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bandapart.png delete mode 100644 data/interfaces/default/images/media_flags/studio/batjac.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bazmark.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_america.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_four.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_one.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_prime.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_three.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bbc_two.png delete mode 100644 data/interfaces/default/images/media_flags/studio/beacon.png delete mode 100644 data/interfaces/default/images/media_flags/studio/becker_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/belair_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bet.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bigtalk.png delete mode 100644 data/interfaces/default/images/media_flags/studio/biography_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/black_bear_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blackdog.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bleecker_street.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blind_ambition_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blue_sky.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blue_sky_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blue_underground.png delete mode 100644 data/interfaces/default/images/media_flags/studio/blumhouse_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bnn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bold_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/boomerang.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bravo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/brightlight.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bristol_bay.png delete mode 100644 data/interfaces/default/images/media_flags/studio/broken_lizard.png delete mode 100644 data/interfaces/default/images/media_flags/studio/brooklyn_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/buena_vista.png delete mode 100644 data/interfaces/default/images/media_flags/studio/bulletproof.png delete mode 100644 data/interfaces/default/images/media_flags/studio/c2_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/canalplus.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cannon_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/capcom.png delete mode 100644 data/interfaces/default/images/media_flags/studio/capitol_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/caravan_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/carnaby.png delete mode 100644 data/interfaces/default/images/media_flags/studio/carolco.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cartoonnetwork.png delete mode 100644 data/interfaces/default/images/media_flags/studio/casablanca_filmes.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cascade_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/casey_silver_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/castle_rock_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cat_in_the_hat.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cbbc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cbc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cbs.png delete mode 100644 data/interfaces/default/images/media_flags/studio/celador.png delete mode 100644 data/interfaces/default/images/media_flags/studio/centropolis_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ceska_televize.png delete mode 100644 data/interfaces/default/images/media_flags/studio/channel4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/channel5.png delete mode 100644 data/interfaces/default/images/media_flags/studio/channel_nine.png delete mode 100644 data/interfaces/default/images/media_flags/studio/channel_seven.png delete mode 100644 data/interfaces/default/images/media_flags/studio/channel_ten.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cheyenne.png delete mode 100644 data/interfaces/default/images/media_flags/studio/chiller.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cinemax.png delete mode 100644 data/interfaces/default/images/media_flags/studio/city.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cmt.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cnc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/columbia_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/comedy_central.png delete mode 100644 data/interfaces/default/images/media_flags/studio/concorde.png delete mode 100644 data/interfaces/default/images/media_flags/studio/condemned.png delete mode 100644 data/interfaces/default/images/media_flags/studio/constantin_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/constellation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cookie_jar.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cpfilms.png delete mode 100644 data/interfaces/default/images/media_flags/studio/crackle.png delete mode 100644 data/interfaces/default/images/media_flags/studio/criterion.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ctv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cw.png delete mode 100644 data/interfaces/default/images/media_flags/studio/cw_seed.png delete mode 100644 data/interfaces/default/images/media_flags/studio/czolowka.png delete mode 100644 data/interfaces/default/images/media_flags/studio/damselfly.png delete mode 100644 data/interfaces/default/images/media_flags/studio/danjaq.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dark_castle_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dark_horse.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dave.png delete mode 100644 data/interfaces/default/images/media_flags/studio/davis_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/de_laurentiis.png delete mode 100644 data/interfaces/default/images/media_flags/studio/defa.png delete mode 100644 data/interfaces/default/images/media_flags/studio/destination_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dfi.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dickhouse_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/digital_factory.png delete mode 100644 data/interfaces/default/images/media_flags/studio/digital_playground.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dimension_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/discovery_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/disney_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/disney_xd.png delete mode 100644 data/interfaces/default/images/media_flags/studio/distant_horizon.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dmax.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dna.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dolores_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/don_simpson_jerry_bruckheimer_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/donners.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dreamworks.png delete mode 100644 data/interfaces/default/images/media_flags/studio/dreamworks_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/e4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ealing.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eclectic.png delete mode 100644 data/interfaces/default/images/media_flags/studio/edmonds_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/el_rey_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/electric_enterteinment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/electric_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eleven_eleven.png delete mode 100644 data/interfaces/default/images/media_flags/studio/emi.png delete mode 100644 data/interfaces/default/images/media_flags/studio/emmedia.png delete mode 100644 data/interfaces/default/images/media_flags/studio/encore.png delete mode 100644 data/interfaces/default/images/media_flags/studio/endgame_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/entara.png delete mode 100644 data/interfaces/default/images/media_flags/studio/entertainment_one.png delete mode 100644 data/interfaces/default/images/media_flags/studio/entertainment_television.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eon_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/epix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/escape_artists.png delete mode 100644 data/interfaces/default/images/media_flags/studio/espn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eurimages.png delete mode 100644 data/interfaces/default/images/media_flags/studio/europa_corp.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eurosport.png delete mode 100644 data/interfaces/default/images/media_flags/studio/excel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/eyekiss_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fact.png delete mode 100644 data/interfaces/default/images/media_flags/studio/figaro.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_colony.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_four.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_institut.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_media.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_polski.png delete mode 100644 data/interfaces/default/images/media_flags/studio/film_tv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/filmauro.png delete mode 100644 data/interfaces/default/images/media_flags/studio/filmax_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/filmforderung_hamburg.png delete mode 100644 data/interfaces/default/images/media_flags/studio/filmoteka narodowa.png delete mode 100644 data/interfaces/default/images/media_flags/studio/filmstiftung_nordrhein-westfalen.png delete mode 100644 data/interfaces/default/images/media_flags/studio/finos_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fireworks_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/first_look_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/five.png delete mode 100644 data/interfaces/default/images/media_flags/studio/flower_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/focus_features.png delete mode 100644 data/interfaces/default/images/media_flags/studio/food_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/forte_cinema.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fourhands_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fox.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fox_atomic.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fox_kids.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fox_searchlight_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/france_2.png delete mode 100644 data/interfaces/default/images/media_flags/studio/france_3.png delete mode 100644 data/interfaces/default/images/media_flags/studio/france_4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/franchise_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/freeform.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fuji_tv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/future_flix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fx.png delete mode 100644 data/interfaces/default/images/media_flags/studio/fxx.png delete mode 100644 data/interfaces/default/images/media_flags/studio/g4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gaumont.png delete mode 100644 data/interfaces/default/images/media_flags/studio/geffen.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ghost_house.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gk_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/glass_eye_pix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/global_tv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/glue_works_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gofilms.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gold_circle_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/goldwyn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gracie_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gramercy_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/grandhustle.png delete mode 100644 data/interfaces/default/images/media_flags/studio/green_street.png delete mode 100644 data/interfaces/default/images/media_flags/studio/greentree_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/grub_street_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/guinea_pig_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/gutek.png delete mode 100644 data/interfaces/default/images/media_flags/studio/halestorm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hallmark_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hallucination_on_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hand_made_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/happy_madison.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hasbro.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hbo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hbo_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/head_gear_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hemus_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/heyday_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hgtv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/history_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hollywood_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hopscotch_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hulu.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hustler_video.png delete mode 100644 data/interfaces/default/images/media_flags/studio/hyde_park_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/icon_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ifc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/illumination_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/image.png delete mode 100644 data/interfaces/default/images/media_flags/studio/image_movers.png delete mode 100644 data/interfaces/default/images/media_flags/studio/imagi_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/imaginary_forces.png delete mode 100644 data/interfaces/default/images/media_flags/studio/imagine.png delete mode 100644 data/interfaces/default/images/media_flags/studio/imax.png delete mode 100644 data/interfaces/default/images/media_flags/studio/imperial_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/independent_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/industrial_light_and_magic.png delete mode 100644 data/interfaces/default/images/media_flags/studio/infilm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ingenious_film_partners.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ingenius_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/inside_track.png delete mode 100644 data/interfaces/default/images/media_flags/studio/insurge_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/interactual.png delete mode 100644 data/interfaces/default/images/media_flags/studio/intermedia.png delete mode 100644 data/interfaces/default/images/media_flags/studio/interscope_shady_aftermath.png delete mode 100644 data/interfaces/default/images/media_flags/studio/intrepid_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/island_world.png delete mode 100644 data/interfaces/default/images/media_flags/studio/itv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/janus.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jarowskij.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jawa.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jerry_bruckheimer_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jersey_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jim_henson.png delete mode 100644 data/interfaces/default/images/media_flags/studio/jj_splice.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kaboom_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kadokawa_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kadr.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kamera.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kanal_5.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kennedymarshall.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kid_rhino.png delete mode 100644 data/interfaces/default/images/media_flags/studio/killer_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kinepolis.png delete mode 100644 data/interfaces/default/images/media_flags/studio/king_world.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kinowelt.png delete mode 100644 data/interfaces/default/images/media_flags/studio/konami.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kopelson.png delete mode 100644 data/interfaces/default/images/media_flags/studio/kyoto_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ladd.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lakeshore_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/latham.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lawrence_bender_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/league of noble peers.png delete mode 100644 data/interfaces/default/images/media_flags/studio/legendary_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lego.png delete mode 100644 data/interfaces/default/images/media_flags/studio/liberty_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lifetime.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lift.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lightstorm_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lionsgate.png delete mode 100644 data/interfaces/default/images/media_flags/studio/little_chicken.png delete mode 100644 data/interfaces/default/images/media_flags/studio/london_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lookout.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lucasfilm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/lucky_7.png delete mode 100644 data/interfaces/default/images/media_flags/studio/m6.png delete mode 100644 data/interfaces/default/images/media_flags/studio/madhouse.png delete mode 100644 data/interfaces/default/images/media_flags/studio/madman.png delete mode 100644 data/interfaces/default/images/media_flags/studio/magnolia_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mandalay_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mandate_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/manga.png delete mode 100644 data/interfaces/default/images/media_flags/studio/marc_dorcel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/marvel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/maverick.png delete mode 100644 data/interfaces/default/images/media_flags/studio/maya_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mbs.png delete mode 100644 data/interfaces/default/images/media_flags/studio/media8.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mediapro.png delete mode 100644 data/interfaces/default/images/media_flags/studio/meridian_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mgm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mibac.png delete mode 100644 data/interfaces/default/images/media_flags/studio/midway_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mike_zoss_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/milkshake.png delete mode 100644 data/interfaces/default/images/media_flags/studio/millennium_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/minds_eye_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mirage.png delete mode 100644 data/interfaces/default/images/media_flags/studio/miramax.png delete mode 100644 data/interfaces/default/images/media_flags/studio/momentum_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/monarch_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/monolith.png delete mode 100644 data/interfaces/default/images/media_flags/studio/montecito_picture_company.png delete mode 100644 data/interfaces/default/images/media_flags/studio/morgan_creek.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mosaic_media.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mosfilm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mpca.png delete mode 100644 data/interfaces/default/images/media_flags/studio/msnbc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mtv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mtv3.png delete mode 100644 data/interfaces/default/images/media_flags/studio/musashi_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mutual_film_company.png delete mode 100644 data/interfaces/default/images/media_flags/studio/myriad.png delete mode 100644 data/interfaces/default/images/media_flags/studio/mytv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nala.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nat_geo_wild.png delete mode 100644 data/interfaces/default/images/media_flags/studio/national_general_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nbc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nbc_universal.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nelvana.png delete mode 100644 data/interfaces/default/images/media_flags/studio/netflix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/new_deal_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/new_line_cinema.png delete mode 100644 data/interfaces/default/images/media_flags/studio/new_zealand_film_commission.png delete mode 100644 data/interfaces/default/images/media_flags/studio/newmarket.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ngc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nick_at_nite.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nick_jr.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nickelodeon.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nicktoons.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nine network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nord_ouest.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nordisk film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/northern_lights_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nothing.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nrk1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/nuimage.png delete mode 100644 data/interfaces/default/images/media_flags/studio/o2_filmes.png delete mode 100644 data/interfaces/default/images/media_flags/studio/oddlot.png delete mode 100644 data/interfaces/default/images/media_flags/studio/oko.png delete mode 100644 data/interfaces/default/images/media_flags/studio/only_vegas.png delete mode 100644 data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/orf.png delete mode 100644 data/interfaces/default/images/media_flags/studio/orion.png delete mode 100644 data/interfaces/default/images/media_flags/studio/overturefilms.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pa_works.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pan_vision.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pandora_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/paramount_classics.png delete mode 100644 data/interfaces/default/images/media_flags/studio/paramount_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/paramount_vantage.png delete mode 100644 data/interfaces/default/images/media_flags/studio/participant.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pathe.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pbs.png delete mode 100644 data/interfaces/default/images/media_flags/studio/peacearch.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pecf.png delete mode 100644 data/interfaces/default/images/media_flags/studio/peters_entertainment2.png delete mode 100644 data/interfaces/default/images/media_flags/studio/phase_4_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pheonix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/picturehouse.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pisf.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pixar.png delete mode 100644 data/interfaces/default/images/media_flags/studio/plan_b.png delete mode 100644 data/interfaces/default/images/media_flags/studio/platige.png delete mode 100644 data/interfaces/default/images/media_flags/studio/platinum_dunes.png delete mode 100644 data/interfaces/default/images/media_flags/studio/play_uk.png delete mode 100644 data/interfaces/default/images/media_flags/studio/playstation_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/playtone.png delete mode 100644 data/interfaces/default/images/media_flags/studio/polsat.png delete mode 100644 data/interfaces/default/images/media_flags/studio/polygram.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pop.png delete mode 100644 data/interfaces/default/images/media_flags/studio/porchlight.png delete mode 100644 data/interfaces/default/images/media_flags/studio/portman_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/premiere direkt.png delete mode 100644 data/interfaces/default/images/media_flags/studio/premiere.png delete mode 100644 data/interfaces/default/images/media_flags/studio/private_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/pro7.png delete mode 100644 data/interfaces/default/images/media_flags/studio/production_i_g.png delete mode 100644 data/interfaces/default/images/media_flags/studio/profilm_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/promotion_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/prosieben.png delete mode 100644 data/interfaces/default/images/media_flags/studio/radical_media.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rai_cinema.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rankin.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ratpac_dune_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ratpac_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/red_hour.png delete mode 100644 data/interfaces/default/images/media_flags/studio/red_wagon_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/redrum.png delete mode 100644 data/interfaces/default/images/media_flags/studio/reel_dog_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/regency.png delete mode 100644 data/interfaces/default/images/media_flags/studio/relativity_media.png delete mode 100644 data/interfaces/default/images/media_flags/studio/renaissance_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/republic_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/resident_evil.png delete mode 100644 data/interfaces/default/images/media_flags/studio/revere_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/revision3.png delete mode 100644 data/interfaces/default/images/media_flags/studio/revolution_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rhombus.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rick_mill.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rickety_shack_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/river_road_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/roadside_attractions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rogue_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/romar.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rte_one.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl5.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl7.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl8.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rtl_ii.png delete mode 100644 data/interfaces/default/images/media_flags/studio/rysher_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/saban.png delete mode 100644 data/interfaces/default/images/media_flags/studio/salter_street_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sandrew.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sat1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/saturn_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/saul_zaentz.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sbs.png delete mode 100644 data/interfaces/default/images/media_flags/studio/scholastic.png delete mode 100644 data/interfaces/default/images/media_flags/studio/scifi.png delete mode 100644 data/interfaces/default/images/media_flags/studio/scott_free.png delete mode 100644 data/interfaces/default/images/media_flags/studio/screen_australia.png delete mode 100644 data/interfaces/default/images/media_flags/studio/screen_gems.png delete mode 100644 data/interfaces/default/images/media_flags/studio/seeso.png delete mode 100644 data/interfaces/default/images/media_flags/studio/selznick_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/semafor.png delete mode 100644 data/interfaces/default/images/media_flags/studio/seven network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sfi.png delete mode 100644 data/interfaces/default/images/media_flags/studio/shady_acres_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/shaft.png delete mode 100644 data/interfaces/default/images/media_flags/studio/shangri-la_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/shout_factory.png delete mode 100644 data/interfaces/default/images/media_flags/studio/showcase.png delete mode 100644 data/interfaces/default/images/media_flags/studio/showcase_au.png delete mode 100644 data/interfaces/default/images/media_flags/studio/showtime.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sidney_kimmel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/silver_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sky.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sky_1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/skydance_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/slim_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/smc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/snl_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sobini_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sony.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sony_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/space.png delete mode 100644 data/interfaces/default/images/media_flags/studio/spelling_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/spike.png delete mode 100644 data/interfaces/default/images/media_flags/studio/spitfire_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/splendid.png delete mode 100644 data/interfaces/default/images/media_flags/studio/spyglass_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/squareenix.png delete mode 100644 data/interfaces/default/images/media_flags/studio/stage6.png delete mode 100644 data/interfaces/default/images/media_flags/studio/stan.png delete mode 100644 data/interfaces/default/images/media_flags/studio/starbucks_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/starz.png delete mode 100644 data/interfaces/default/images/media_flags/studio/steele.png delete mode 100644 data/interfaces/default/images/media_flags/studio/storyline.png delete mode 100644 data/interfaces/default/images/media_flags/studio/studio_canal.png delete mode 100644 data/interfaces/default/images/media_flags/studio/studio_ghibli.png delete mode 100644 data/interfaces/default/images/media_flags/studio/summit.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sundancetv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/sunrise.png delete mode 100644 data/interfaces/default/images/media_flags/studio/super_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/svensk_filmindustri.png delete mode 100644 data/interfaces/default/images/media_flags/studio/svt.png delete mode 100644 data/interfaces/default/images/media_flags/studio/svt1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/svt2.png delete mode 100644 data/interfaces/default/images/media_flags/studio/syfy.png delete mode 100644 data/interfaces/default/images/media_flags/studio/syncopy.png delete mode 100644 data/interfaces/default/images/media_flags/studio/syrena.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tandem.png delete mode 100644 data/interfaces/default/images/media_flags/studio/taurus_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tbs.png delete mode 100644 data/interfaces/default/images/media_flags/studio/telecinco.png delete mode 100644 data/interfaces/default/images/media_flags/studio/telemundo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/teletoon.png delete mode 100644 data/interfaces/default/images/media_flags/studio/telos.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tf1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_cw.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_entertainment_group.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_film_foundry.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_hub.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_independent_film_channel.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_wb.png delete mode 100644 data/interfaces/default/images/media_flags/studio/the_wb_television_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/thierry_mugler.png delete mode 100644 data/interfaces/default/images/media_flags/studio/think_film.png delete mode 100644 data/interfaces/default/images/media_flags/studio/this_is_that.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tlc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tnt.png delete mode 100644 data/interfaces/default/images/media_flags/studio/toho.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tor.png delete mode 100644 data/interfaces/default/images/media_flags/studio/touchstone.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tristar_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/trutv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/turner.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv2.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv3.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv4.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv_2.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv_land.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tv_tokyo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tvn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tvnz.png delete mode 100644 data/interfaces/default/images/media_flags/studio/tvp.png delete mode 100644 data/interfaces/default/images/media_flags/studio/twisted_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/twit.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ugc.png delete mode 100644 data/interfaces/default/images/media_flags/studio/uk_film_council.png delete mode 100644 data/interfaces/default/images/media_flags/studio/united_artists.png delete mode 100644 data/interfaces/default/images/media_flags/studio/universal.png delete mode 100644 data/interfaces/default/images/media_flags/studio/univision.png delete mode 100644 data/interfaces/default/images/media_flags/studio/up_tv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/upn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/usa_network.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vara.png delete mode 100644 data/interfaces/default/images/media_flags/studio/versus.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vertigo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vh1.png delete mode 100644 data/interfaces/default/images/media_flags/studio/viacom.png delete mode 100644 data/interfaces/default/images/media_flags/studio/view_askew.png delete mode 100644 data/interfaces/default/images/media_flags/studio/village_roadshow_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vimeo.png delete mode 100644 data/interfaces/default/images/media_flags/studio/virtual_studios.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vital_film_works.png delete mode 100644 data/interfaces/default/images/media_flags/studio/viz.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vortex_entertainment.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vox.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vpro.png delete mode 100644 data/interfaces/default/images/media_flags/studio/vtm.png delete mode 100644 data/interfaces/default/images/media_flags/studio/walden_media.png delete mode 100644 data/interfaces/default/images/media_flags/studio/walt_disney_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/warner_bros.png delete mode 100644 data/interfaces/default/images/media_flags/studio/warner_bros_animation.png delete mode 100644 data/interfaces/default/images/media_flags/studio/warner_independent_pictures.png delete mode 100644 data/interfaces/default/images/media_flags/studio/water_walk_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/wdr.png delete mode 100644 data/interfaces/default/images/media_flags/studio/we_tv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/weinstein_company.png delete mode 100644 data/interfaces/default/images/media_flags/studio/wfdif.png delete mode 100644 data/interfaces/default/images/media_flags/studio/wgn.png delete mode 100644 data/interfaces/default/images/media_flags/studio/wild_bunch.png delete mode 100644 data/interfaces/default/images/media_flags/studio/wild_side.png delete mode 100644 data/interfaces/default/images/media_flags/studio/working_title_films.png delete mode 100644 data/interfaces/default/images/media_flags/studio/xfilme.png delete mode 100644 data/interfaces/default/images/media_flags/studio/xxx_productions.png delete mode 100644 data/interfaces/default/images/media_flags/studio/yahoo_screen.png delete mode 100644 data/interfaces/default/images/media_flags/studio/yari_film_group.png delete mode 100644 data/interfaces/default/images/media_flags/studio/youtube.png delete mode 100644 data/interfaces/default/images/media_flags/studio/ytv.png delete mode 100644 data/interfaces/default/images/media_flags/studio/zaloom_mayfield.png delete mode 100644 data/interfaces/default/images/media_flags/studio/zdf.png delete mode 100644 data/interfaces/default/images/media_flags/studio/zebra.png delete mode 100644 data/interfaces/default/images/media_flags/studio/zentropa.png delete mode 100644 data/interfaces/default/images/media_flags/studio/zomba.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/h264.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/hevc.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/mpeg1video.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/mpeg2video.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/mpeg4.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/vc1.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/wmv.png delete mode 100644 data/interfaces/default/images/media_flags/video_codec/wmvhd.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/24p.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/25p.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/50p.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/60p.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/NTSC.png delete mode 100644 data/interfaces/default/images/media_flags/video_framerate/PAL.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/1080.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/1080i.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/270.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/360.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/432.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/468.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/480.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/480i.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/4k.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/540.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/544.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/576.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/576i.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/720.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/8k.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/hdtv.png delete mode 100644 data/interfaces/default/images/media_flags/video_resolution/sd.png delete mode 100644 data/interfaces/default/images/newsletter/newsletter-header.png delete mode 100644 data/interfaces/default/images/newsletter/view-on-plex-cover.png delete mode 100644 data/interfaces/default/images/newsletter/view-on-plex-flat.png delete mode 100644 data/interfaces/default/images/newsletter/view-on-plex-poster.png delete mode 100644 data/interfaces/default/images/platforms/alexa.svg delete mode 100644 data/interfaces/default/images/platforms/android.svg delete mode 100644 data/interfaces/default/images/platforms/atv.svg delete mode 100644 data/interfaces/default/images/platforms/chrome.svg delete mode 100644 data/interfaces/default/images/platforms/chromecast.svg delete mode 100644 data/interfaces/default/images/platforms/cloudsync.svg delete mode 100644 data/interfaces/default/images/platforms/default.svg delete mode 100644 data/interfaces/default/images/platforms/dlna.svg delete mode 100644 data/interfaces/default/images/platforms/firefox.svg delete mode 100644 data/interfaces/default/images/platforms/gtv.svg delete mode 100644 data/interfaces/default/images/platforms/ie.svg delete mode 100644 data/interfaces/default/images/platforms/ios.svg delete mode 100644 data/interfaces/default/images/platforms/kodi.svg delete mode 100644 data/interfaces/default/images/platforms/lg.svg delete mode 100644 data/interfaces/default/images/platforms/linux.svg delete mode 100644 data/interfaces/default/images/platforms/macos.svg delete mode 100644 data/interfaces/default/images/platforms/msedge.svg delete mode 100644 data/interfaces/default/images/platforms/opera.svg delete mode 100644 data/interfaces/default/images/platforms/playstation.svg delete mode 100644 data/interfaces/default/images/platforms/plex.svg delete mode 100644 data/interfaces/default/images/platforms/plexamp.svg delete mode 100644 data/interfaces/default/images/platforms/roku.svg delete mode 100644 data/interfaces/default/images/platforms/safari.svg delete mode 100644 data/interfaces/default/images/platforms/samsung.svg delete mode 100644 data/interfaces/default/images/platforms/synclounge.svg delete mode 100644 data/interfaces/default/images/platforms/tivo.svg delete mode 100644 data/interfaces/default/images/platforms/wiiu.svg delete mode 100644 data/interfaces/default/images/platforms/windows.svg delete mode 100644 data/interfaces/default/images/platforms/xbox.svg delete mode 100644 data/interfaces/default/images/plex-logo-light-small.png delete mode 100644 data/interfaces/default/images/plex-logo-light.svg delete mode 100644 data/interfaces/default/images/poster-live.png delete mode 100644 data/interfaces/default/images/poster.png delete mode 100644 data/interfaces/default/images/rating/imdb.svg delete mode 100644 data/interfaces/default/images/rating/popcorn-spilled.svg delete mode 100644 data/interfaces/default/images/rating/popcorn-upright.svg delete mode 100644 data/interfaces/default/images/rating/themoviedb.svg delete mode 100644 data/interfaces/default/images/rating/thetvdb.svg delete mode 100644 data/interfaces/default/images/rating/tomato-ripe.svg delete mode 100644 data/interfaces/default/images/rating/tomato-rotten.svg delete mode 100644 data/interfaces/default/images/tautulli.png delete mode 100644 data/interfaces/default/images/tautulli.svg delete mode 100644 data/interfaces/default/index.html delete mode 100644 data/interfaces/default/info.html delete mode 100644 data/interfaces/default/info_children_list.html delete mode 100644 data/interfaces/default/info_collection_list.html delete mode 100644 data/interfaces/default/info_search_results_list.html delete mode 100644 data/interfaces/default/ip_address_modal.html delete mode 100644 data/interfaces/default/js/Sortable.min.js delete mode 100644 data/interfaces/default/js/ajaxNotifications.js delete mode 100644 data/interfaces/default/js/blurhash_pure_js_port.min.js delete mode 100644 data/interfaces/default/js/bootstrap-hover-dropdown.min.js delete mode 100755 data/interfaces/default/js/bootstrap-wizard.min.js delete mode 100644 data/interfaces/default/js/bootstrap.min.js delete mode 100644 data/interfaces/default/js/dataTables.bootstrap.min.js delete mode 100644 data/interfaces/default/js/dataTables.bootstrap.pagination.js delete mode 100644 data/interfaces/default/js/dataTables.colVis.js delete mode 100644 data/interfaces/default/js/filterer.jquery.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_day.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_dayofweek.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_hourofday.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_month.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_platform.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_platform_by_stream_type.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_source_resolution.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_stream_resolution.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_stream_type.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_user.js delete mode 100644 data/interfaces/default/js/graphs/plays_by_user_by_stream_type.js delete mode 100644 data/interfaces/default/js/highcharts.min.js delete mode 100644 data/interfaces/default/js/ipaddr.min.js delete mode 100644 data/interfaces/default/js/jquery-3.6.0.min.js delete mode 100644 data/interfaces/default/js/jquery-cron-min.js delete mode 100755 data/interfaces/default/js/jquery-ui.min.js delete mode 100644 data/interfaces/default/js/jquery.dataTables.min.js delete mode 100644 data/interfaces/default/js/jquery.inputaffix.min.js delete mode 100644 data/interfaces/default/js/jquery.mousewheel.min.js delete mode 100644 data/interfaces/default/js/jquery.rateit.min.js delete mode 100644 data/interfaces/default/js/jquery.scrollbar.min.js delete mode 100644 data/interfaces/default/js/jquery.tripleclick.min.js delete mode 100644 data/interfaces/default/js/kjua.min.js delete mode 100644 data/interfaces/default/js/moment-duration-format.min.js delete mode 100644 data/interfaces/default/js/moment-with-locales.min.js delete mode 100644 data/interfaces/default/js/parsley.min.js delete mode 100644 data/interfaces/default/js/platform.min.js delete mode 100644 data/interfaces/default/js/pnotify.custom.min.js delete mode 100644 data/interfaces/default/js/script.js delete mode 100644 data/interfaces/default/js/selectize.min.js delete mode 100644 data/interfaces/default/js/selectize.plugin.disable-options.js delete mode 100644 data/interfaces/default/js/tables/collections_table.js delete mode 100644 data/interfaces/default/js/tables/export_table.js delete mode 100644 data/interfaces/default/js/tables/history_table.js delete mode 100644 data/interfaces/default/js/tables/history_table_modal.js delete mode 100644 data/interfaces/default/js/tables/libraries.js delete mode 100644 data/interfaces/default/js/tables/login_logs.js delete mode 100644 data/interfaces/default/js/tables/logs.js delete mode 100644 data/interfaces/default/js/tables/media_info_table.js delete mode 100644 data/interfaces/default/js/tables/newsletter_logs.js delete mode 100644 data/interfaces/default/js/tables/notification_logs.js delete mode 100644 data/interfaces/default/js/tables/playlists_table.js delete mode 100644 data/interfaces/default/js/tables/plex_logs.js delete mode 100644 data/interfaces/default/js/tables/sync_table.js delete mode 100644 data/interfaces/default/js/tables/user_ips.js delete mode 100644 data/interfaces/default/js/tables/users.js delete mode 100644 data/interfaces/default/libraries.html delete mode 100644 data/interfaces/default/library.html delete mode 100644 data/interfaces/default/library_recently_added.html delete mode 100644 data/interfaces/default/library_stats.html delete mode 100644 data/interfaces/default/library_user_stats.html delete mode 100644 data/interfaces/default/login.html delete mode 100644 data/interfaces/default/logs.html delete mode 100644 data/interfaces/default/mobile_device_config.html delete mode 100644 data/interfaces/default/mobile_devices_table.html delete mode 100644 data/interfaces/default/newsletter_auth.html delete mode 100644 data/interfaces/default/newsletter_config.html delete mode 100644 data/interfaces/default/newsletter_preview.html delete mode 100644 data/interfaces/default/newsletters_table.html delete mode 100644 data/interfaces/default/notifier_config.html delete mode 100644 data/interfaces/default/notifier_text_preview.html delete mode 100644 data/interfaces/default/notifiers_table.html delete mode 100644 data/interfaces/default/queue_modal.html delete mode 100644 data/interfaces/default/recently_added.html delete mode 100644 data/interfaces/default/scheduler_table.html delete mode 100644 data/interfaces/default/search.html delete mode 100644 data/interfaces/default/settings.html delete mode 100644 data/interfaces/default/shutdown.html delete mode 100644 data/interfaces/default/stream_data.html delete mode 100644 data/interfaces/default/support.html delete mode 100644 data/interfaces/default/sync.html delete mode 100644 data/interfaces/default/update_metadata.html delete mode 100644 data/interfaces/default/user.html delete mode 100644 data/interfaces/default/user_player_stats.html delete mode 100644 data/interfaces/default/user_recently_watched.html delete mode 100644 data/interfaces/default/user_watch_time_stats.html delete mode 100644 data/interfaces/default/users.html delete mode 100644 data/interfaces/default/welcome.html delete mode 100644 data/interfaces/default/xml_shortcut.html delete mode 100644 data/interfaces/newsletters/recently_added.html delete mode 100644 data/interfaces/newsletters/recently_added.internal.html delete mode 100755 init-scripts/init.freebsd delete mode 120000 init-scripts/init.freenas delete mode 100755 init-scripts/init.osx delete mode 100644 init-scripts/init.systemd delete mode 100644 lib/IPy.py delete mode 100644 lib/UniversalAnalytics/HTTPLog.py delete mode 100644 lib/UniversalAnalytics/Tracker.py delete mode 100644 lib/UniversalAnalytics/__init__.py delete mode 100644 lib/appdirs.py delete mode 100644 lib/apscheduler/__init__.py delete mode 100644 lib/apscheduler/events.py delete mode 100644 lib/apscheduler/executors/__init__.py delete mode 100644 lib/apscheduler/executors/asyncio.py delete mode 100644 lib/apscheduler/executors/base.py delete mode 100644 lib/apscheduler/executors/base_py3.py delete mode 100644 lib/apscheduler/executors/debug.py delete mode 100644 lib/apscheduler/executors/gevent.py delete mode 100644 lib/apscheduler/executors/pool.py delete mode 100644 lib/apscheduler/executors/tornado.py delete mode 100644 lib/apscheduler/executors/twisted.py delete mode 100644 lib/apscheduler/job.py delete mode 100644 lib/apscheduler/jobstores/__init__.py delete mode 100644 lib/apscheduler/jobstores/base.py delete mode 100644 lib/apscheduler/jobstores/memory.py delete mode 100644 lib/apscheduler/jobstores/mongodb.py delete mode 100644 lib/apscheduler/jobstores/redis.py delete mode 100644 lib/apscheduler/jobstores/rethinkdb.py delete mode 100644 lib/apscheduler/jobstores/sqlalchemy.py delete mode 100644 lib/apscheduler/jobstores/zookeeper.py delete mode 100644 lib/apscheduler/schedulers/__init__.py delete mode 100644 lib/apscheduler/schedulers/asyncio.py delete mode 100644 lib/apscheduler/schedulers/background.py delete mode 100644 lib/apscheduler/schedulers/base.py delete mode 100644 lib/apscheduler/schedulers/blocking.py delete mode 100644 lib/apscheduler/schedulers/gevent.py delete mode 100644 lib/apscheduler/schedulers/qt.py delete mode 100644 lib/apscheduler/schedulers/tornado.py delete mode 100644 lib/apscheduler/schedulers/twisted.py delete mode 100644 lib/apscheduler/triggers/__init__.py delete mode 100644 lib/apscheduler/triggers/base.py delete mode 100644 lib/apscheduler/triggers/combining.py delete mode 100644 lib/apscheduler/triggers/cron/__init__.py delete mode 100644 lib/apscheduler/triggers/cron/expressions.py delete mode 100644 lib/apscheduler/triggers/cron/fields.py delete mode 100644 lib/apscheduler/triggers/date.py delete mode 100644 lib/apscheduler/triggers/interval.py delete mode 100644 lib/apscheduler/util.py delete mode 100644 lib/arrow/__init__.py delete mode 100644 lib/arrow/_version.py delete mode 100644 lib/arrow/api.py delete mode 100644 lib/arrow/arrow.py delete mode 100644 lib/arrow/constants.py delete mode 100644 lib/arrow/factory.py delete mode 100644 lib/arrow/formatter.py delete mode 100644 lib/arrow/locales.py delete mode 100644 lib/arrow/parser.py delete mode 100644 lib/arrow/py.typed delete mode 100644 lib/arrow/util.py delete mode 100644 lib/backports/__init__.py delete mode 100644 lib/backports/csv.py delete mode 100644 lib/backports/functools_lru_cache.py delete mode 100644 lib/backports/zoneinfo/__init__.py delete mode 100644 lib/backports/zoneinfo/__init__.pyi delete mode 100644 lib/backports/zoneinfo/_common.py delete mode 100644 lib/backports/zoneinfo/_tzpath.py delete mode 100644 lib/backports/zoneinfo/_version.py delete mode 100644 lib/backports/zoneinfo/_zoneinfo.py delete mode 100644 lib/backports/zoneinfo/py.typed delete mode 100644 lib/bleach/__init__.py delete mode 100644 lib/bleach/_vendor/README.rst delete mode 100644 lib/bleach/_vendor/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/AUTHORS.rst delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/INSTALLER delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/LICENSE delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/METADATA delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/RECORD delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/REQUESTED delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/WHEEL delete mode 100644 lib/bleach/_vendor/html5lib-1.1.dist-info/top_level.txt delete mode 100644 lib/bleach/_vendor/html5lib/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/_ihatexml.py delete mode 100644 lib/bleach/_vendor/html5lib/_inputstream.py delete mode 100644 lib/bleach/_vendor/html5lib/_tokenizer.py delete mode 100644 lib/bleach/_vendor/html5lib/_trie/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/_trie/_base.py delete mode 100644 lib/bleach/_vendor/html5lib/_trie/py.py delete mode 100644 lib/bleach/_vendor/html5lib/_utils.py delete mode 100644 lib/bleach/_vendor/html5lib/constants.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/alphabeticalattributes.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/base.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/inject_meta_charset.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/lint.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/optionaltags.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/sanitizer.py delete mode 100644 lib/bleach/_vendor/html5lib/filters/whitespace.py delete mode 100644 lib/bleach/_vendor/html5lib/html5parser.py delete mode 100644 lib/bleach/_vendor/html5lib/serializer.py delete mode 100644 lib/bleach/_vendor/html5lib/treeadapters/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/treeadapters/genshi.py delete mode 100644 lib/bleach/_vendor/html5lib/treeadapters/sax.py delete mode 100644 lib/bleach/_vendor/html5lib/treebuilders/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/treebuilders/base.py delete mode 100644 lib/bleach/_vendor/html5lib/treebuilders/dom.py delete mode 100644 lib/bleach/_vendor/html5lib/treebuilders/etree.py delete mode 100644 lib/bleach/_vendor/html5lib/treebuilders/etree_lxml.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/__init__.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/base.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/dom.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/etree.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/etree_lxml.py delete mode 100644 lib/bleach/_vendor/html5lib/treewalkers/genshi.py delete mode 100644 lib/bleach/_vendor/parse.py delete mode 100644 lib/bleach/_vendor/parse.py.SHA256SUM delete mode 100644 lib/bleach/_vendor/vendor.txt delete mode 100644 lib/bleach/_vendor/vendor_install.sh delete mode 100644 lib/bleach/callbacks.py delete mode 100644 lib/bleach/css_sanitizer.py delete mode 100644 lib/bleach/html5lib_shim.py delete mode 100644 lib/bleach/linkifier.py delete mode 100644 lib/bleach/sanitizer.py delete mode 100644 lib/bs4/__init__.py delete mode 100644 lib/bs4/builder/__init__.py delete mode 100644 lib/bs4/builder/_html5lib.py delete mode 100644 lib/bs4/builder/_htmlparser.py delete mode 100644 lib/bs4/builder/_lxml.py delete mode 100644 lib/bs4/dammit.py delete mode 100644 lib/bs4/diagnose.py delete mode 100644 lib/bs4/element.py delete mode 100644 lib/bs4/formatter.py delete mode 100644 lib/bs4/tests/__init__.py delete mode 100644 lib/bs4/tests/test_builder.py delete mode 100644 lib/bs4/tests/test_builder_registry.py delete mode 100644 lib/bs4/tests/test_dammit.py delete mode 100644 lib/bs4/tests/test_docs.py delete mode 100644 lib/bs4/tests/test_element.py delete mode 100644 lib/bs4/tests/test_formatter.py delete mode 100644 lib/bs4/tests/test_html5lib.py delete mode 100644 lib/bs4/tests/test_htmlparser.py delete mode 100644 lib/bs4/tests/test_lxml.py delete mode 100644 lib/bs4/tests/test_navigablestring.py delete mode 100644 lib/bs4/tests/test_pageelement.py delete mode 100644 lib/bs4/tests/test_soup.py delete mode 100644 lib/bs4/tests/test_tag.py delete mode 100644 lib/bs4/tests/test_tree.py delete mode 100644 lib/certgen.py delete mode 100644 lib/certifi/__init__.py delete mode 100644 lib/certifi/__main__.py delete mode 100644 lib/certifi/cacert.pem delete mode 100644 lib/certifi/core.py delete mode 100644 lib/certifi/py.typed delete mode 100644 lib/charset_normalizer/__init__.py delete mode 100644 lib/charset_normalizer/api.py delete mode 100644 lib/charset_normalizer/assets/__init__.py delete mode 100644 lib/charset_normalizer/cd.py delete mode 100644 lib/charset_normalizer/cli/__init__.py delete mode 100644 lib/charset_normalizer/cli/normalizer.py delete mode 100644 lib/charset_normalizer/constant.py delete mode 100644 lib/charset_normalizer/legacy.py delete mode 100644 lib/charset_normalizer/md.py delete mode 100644 lib/charset_normalizer/models.py delete mode 100644 lib/charset_normalizer/py.typed delete mode 100644 lib/charset_normalizer/utils.py delete mode 100644 lib/charset_normalizer/version.py delete mode 100644 lib/cheroot/__init__.py delete mode 100644 lib/cheroot/__init__.pyi delete mode 100644 lib/cheroot/__main__.py delete mode 100644 lib/cheroot/_compat.py delete mode 100644 lib/cheroot/cli.py delete mode 100644 lib/cheroot/cli.pyi delete mode 100644 lib/cheroot/connections.py delete mode 100644 lib/cheroot/connections.pyi delete mode 100644 lib/cheroot/errors.py delete mode 100644 lib/cheroot/errors.pyi delete mode 100644 lib/cheroot/makefile.py delete mode 100644 lib/cheroot/makefile.pyi delete mode 100644 lib/cheroot/py.typed delete mode 100644 lib/cheroot/server.py delete mode 100644 lib/cheroot/server.pyi delete mode 100644 lib/cheroot/ssl/__init__.py delete mode 100644 lib/cheroot/ssl/__init__.pyi delete mode 100644 lib/cheroot/ssl/builtin.py delete mode 100644 lib/cheroot/ssl/builtin.pyi delete mode 100644 lib/cheroot/ssl/pyopenssl.py delete mode 100644 lib/cheroot/ssl/pyopenssl.pyi delete mode 100644 lib/cheroot/test/__init__.py delete mode 100644 lib/cheroot/test/_pytest_plugin.py delete mode 100644 lib/cheroot/test/conftest.py delete mode 100644 lib/cheroot/test/helper.py delete mode 100644 lib/cheroot/test/test__compat.py delete mode 100644 lib/cheroot/test/test_cli.py delete mode 100644 lib/cheroot/test/test_conn.py delete mode 100644 lib/cheroot/test/test_core.py delete mode 100644 lib/cheroot/test/test_dispatch.py delete mode 100644 lib/cheroot/test/test_errors.py delete mode 100644 lib/cheroot/test/test_makefile.py delete mode 100644 lib/cheroot/test/test_server.py delete mode 100644 lib/cheroot/test/test_ssl.py delete mode 100644 lib/cheroot/test/test_wsgi.py delete mode 100644 lib/cheroot/test/webtest.py delete mode 100644 lib/cheroot/testing.py delete mode 100644 lib/cheroot/testing.pyi delete mode 100644 lib/cheroot/workers/__init__.py delete mode 100644 lib/cheroot/workers/__init__.pyi delete mode 100644 lib/cheroot/workers/threadpool.py delete mode 100644 lib/cheroot/workers/threadpool.pyi delete mode 100644 lib/cheroot/wsgi.py delete mode 100644 lib/cheroot/wsgi.pyi delete mode 100644 lib/cherrypy/__init__.py delete mode 100644 lib/cherrypy/__main__.py delete mode 100644 lib/cherrypy/_cpchecker.py delete mode 100644 lib/cherrypy/_cpcompat.py delete mode 100644 lib/cherrypy/_cpconfig.py delete mode 100644 lib/cherrypy/_cpdispatch.py delete mode 100644 lib/cherrypy/_cperror.py delete mode 100644 lib/cherrypy/_cplogging.py delete mode 100644 lib/cherrypy/_cpmodpy.py delete mode 100644 lib/cherrypy/_cpnative_server.py delete mode 100644 lib/cherrypy/_cpreqbody.py delete mode 100644 lib/cherrypy/_cprequest.py delete mode 100644 lib/cherrypy/_cpserver.py delete mode 100644 lib/cherrypy/_cptools.py delete mode 100644 lib/cherrypy/_cptree.py delete mode 100644 lib/cherrypy/_cpwsgi.py delete mode 100644 lib/cherrypy/_cpwsgi_server.py delete mode 100644 lib/cherrypy/_helper.py delete mode 100644 lib/cherrypy/_json.py delete mode 100644 lib/cherrypy/daemon.py delete mode 100644 lib/cherrypy/favicon.ico delete mode 100644 lib/cherrypy/lib/__init__.py delete mode 100644 lib/cherrypy/lib/auth_basic.py delete mode 100644 lib/cherrypy/lib/auth_digest.py delete mode 100644 lib/cherrypy/lib/caching.py delete mode 100644 lib/cherrypy/lib/covercp.py delete mode 100644 lib/cherrypy/lib/cpstats.py delete mode 100644 lib/cherrypy/lib/cptools.py delete mode 100644 lib/cherrypy/lib/encoding.py delete mode 100644 lib/cherrypy/lib/gctools.py delete mode 100644 lib/cherrypy/lib/httputil.py delete mode 100644 lib/cherrypy/lib/jsontools.py delete mode 100644 lib/cherrypy/lib/locking.py delete mode 100644 lib/cherrypy/lib/profiler.py delete mode 100644 lib/cherrypy/lib/reprconf.py delete mode 100644 lib/cherrypy/lib/sessions.py delete mode 100644 lib/cherrypy/lib/static.py delete mode 100644 lib/cherrypy/lib/xmlrpcutil.py delete mode 100644 lib/cherrypy/process/__init__.py delete mode 100644 lib/cherrypy/process/plugins.py delete mode 100644 lib/cherrypy/process/servers.py delete mode 100644 lib/cherrypy/process/win32.py delete mode 100644 lib/cherrypy/process/wspbus.py delete mode 100644 lib/cherrypy/scaffold/__init__.py delete mode 100644 lib/cherrypy/scaffold/apache-fcgi.conf delete mode 100644 lib/cherrypy/scaffold/example.conf delete mode 100644 lib/cherrypy/scaffold/site.conf delete mode 100644 lib/cherrypy/scaffold/static/made_with_cherrypy_small.png delete mode 100644 lib/cherrypy/test/__init__.py delete mode 100644 lib/cherrypy/test/_test_decorators.py delete mode 100644 lib/cherrypy/test/_test_states_demo.py delete mode 100644 lib/cherrypy/test/benchmark.py delete mode 100644 lib/cherrypy/test/checkerdemo.py delete mode 100644 lib/cherrypy/test/fastcgi.conf delete mode 100644 lib/cherrypy/test/fcgi.conf delete mode 100644 lib/cherrypy/test/helper.py delete mode 100644 lib/cherrypy/test/logtest.py delete mode 100644 lib/cherrypy/test/modfastcgi.py delete mode 100644 lib/cherrypy/test/modfcgid.py delete mode 100644 lib/cherrypy/test/modpy.py delete mode 100644 lib/cherrypy/test/modwsgi.py delete mode 100644 lib/cherrypy/test/sessiondemo.py delete mode 100644 lib/cherrypy/test/static/404.html delete mode 100644 lib/cherrypy/test/static/dirback.jpg delete mode 100644 lib/cherrypy/test/static/index.html delete mode 100644 lib/cherrypy/test/style.css delete mode 100644 lib/cherrypy/test/test.pem delete mode 100644 lib/cherrypy/test/test_auth_basic.py delete mode 100644 lib/cherrypy/test/test_auth_digest.py delete mode 100644 lib/cherrypy/test/test_bus.py delete mode 100644 lib/cherrypy/test/test_caching.py delete mode 100644 lib/cherrypy/test/test_config.py delete mode 100644 lib/cherrypy/test/test_config_server.py delete mode 100644 lib/cherrypy/test/test_conn.py delete mode 100644 lib/cherrypy/test/test_core.py delete mode 100644 lib/cherrypy/test/test_dynamicobjectmapping.py delete mode 100644 lib/cherrypy/test/test_encoding.py delete mode 100644 lib/cherrypy/test/test_etags.py delete mode 100644 lib/cherrypy/test/test_http.py delete mode 100644 lib/cherrypy/test/test_httputil.py delete mode 100644 lib/cherrypy/test/test_iterator.py delete mode 100644 lib/cherrypy/test/test_json.py delete mode 100644 lib/cherrypy/test/test_logging.py delete mode 100644 lib/cherrypy/test/test_mime.py delete mode 100644 lib/cherrypy/test/test_misc_tools.py delete mode 100644 lib/cherrypy/test/test_native.py delete mode 100644 lib/cherrypy/test/test_objectmapping.py delete mode 100644 lib/cherrypy/test/test_params.py delete mode 100644 lib/cherrypy/test/test_plugins.py delete mode 100644 lib/cherrypy/test/test_proxy.py delete mode 100644 lib/cherrypy/test/test_refleaks.py delete mode 100644 lib/cherrypy/test/test_request_obj.py delete mode 100644 lib/cherrypy/test/test_routes.py delete mode 100644 lib/cherrypy/test/test_session.py delete mode 100644 lib/cherrypy/test/test_sessionauthenticate.py delete mode 100644 lib/cherrypy/test/test_states.py delete mode 100644 lib/cherrypy/test/test_static.py delete mode 100644 lib/cherrypy/test/test_tools.py delete mode 100644 lib/cherrypy/test/test_tutorials.py delete mode 100644 lib/cherrypy/test/test_virtualhost.py delete mode 100644 lib/cherrypy/test/test_wsgi_ns.py delete mode 100644 lib/cherrypy/test/test_wsgi_unix_socket.py delete mode 100644 lib/cherrypy/test/test_wsgi_vhost.py delete mode 100644 lib/cherrypy/test/test_wsgiapps.py delete mode 100644 lib/cherrypy/test/test_xmlrpc.py delete mode 100644 lib/cherrypy/test/webtest.py delete mode 100644 lib/cherrypy/tutorial/README.rst delete mode 100644 lib/cherrypy/tutorial/__init__.py delete mode 100644 lib/cherrypy/tutorial/custom_error.html delete mode 100644 lib/cherrypy/tutorial/pdf_file.pdf delete mode 100644 lib/cherrypy/tutorial/tut01_helloworld.py delete mode 100644 lib/cherrypy/tutorial/tut02_expose_methods.py delete mode 100644 lib/cherrypy/tutorial/tut03_get_and_post.py delete mode 100644 lib/cherrypy/tutorial/tut04_complex_site.py delete mode 100644 lib/cherrypy/tutorial/tut05_derived_objects.py delete mode 100644 lib/cherrypy/tutorial/tut06_default_method.py delete mode 100644 lib/cherrypy/tutorial/tut07_sessions.py delete mode 100644 lib/cherrypy/tutorial/tut08_generators_and_yield.py delete mode 100644 lib/cherrypy/tutorial/tut09_files.py delete mode 100644 lib/cherrypy/tutorial/tut10_http_errors.py delete mode 100644 lib/cherrypy/tutorial/tutorial.conf delete mode 100644 lib/cloudinary/__init__.py delete mode 100644 lib/cloudinary/api.py delete mode 100644 lib/cloudinary/api_client/__init__.py delete mode 100644 lib/cloudinary/api_client/call_account_api.py delete mode 100644 lib/cloudinary/api_client/call_api.py delete mode 100644 lib/cloudinary/api_client/execute_request.py delete mode 100644 lib/cloudinary/api_client/tcp_keep_alive_manager.py delete mode 100644 lib/cloudinary/auth_token.py delete mode 100644 lib/cloudinary/cache/__init__.py delete mode 100644 lib/cloudinary/cache/adapter/__init__.py delete mode 100644 lib/cloudinary/cache/adapter/cache_adapter.py delete mode 100644 lib/cloudinary/cache/adapter/key_value_cache_adapter.py delete mode 100644 lib/cloudinary/cache/responsive_breakpoints_cache.py delete mode 100644 lib/cloudinary/cache/storage/__init__.py delete mode 100644 lib/cloudinary/cache/storage/file_system_key_value_storage.py delete mode 100644 lib/cloudinary/cache/storage/key_value_storage.py delete mode 100644 lib/cloudinary/compat.py delete mode 100644 lib/cloudinary/exceptions.py delete mode 100644 lib/cloudinary/forms.py delete mode 100644 lib/cloudinary/http_client.py delete mode 100644 lib/cloudinary/models.py delete mode 100644 lib/cloudinary/poster/__init__.py delete mode 100644 lib/cloudinary/poster/encode.py delete mode 100644 lib/cloudinary/poster/streaminghttp.py delete mode 100644 lib/cloudinary/provisioning/__init__.py delete mode 100644 lib/cloudinary/provisioning/account.py delete mode 100644 lib/cloudinary/provisioning/account_config.py delete mode 100644 lib/cloudinary/search.py delete mode 100644 lib/cloudinary/static/html/cloudinary_cors.html delete mode 100644 lib/cloudinary/static/js/canvas-to-blob.min.js delete mode 100644 lib/cloudinary/static/js/jquery.cloudinary.js delete mode 100644 lib/cloudinary/static/js/jquery.fileupload-image.js delete mode 100644 lib/cloudinary/static/js/jquery.fileupload-process.js delete mode 100644 lib/cloudinary/static/js/jquery.fileupload-validate.js delete mode 100644 lib/cloudinary/static/js/jquery.fileupload.js delete mode 100644 lib/cloudinary/static/js/jquery.iframe-transport.js delete mode 100644 lib/cloudinary/static/js/jquery.ui.widget.js delete mode 100644 lib/cloudinary/static/js/load-image.all.min.js delete mode 100644 lib/cloudinary/templates/cloudinary_direct_upload.html delete mode 100644 lib/cloudinary/templates/cloudinary_includes.html delete mode 100644 lib/cloudinary/templates/cloudinary_js_config.html delete mode 100644 lib/cloudinary/templatetags/__init__.py delete mode 100644 lib/cloudinary/templatetags/cloudinary.py delete mode 100644 lib/cloudinary/uploader.py delete mode 100644 lib/cloudinary/utils.py delete mode 100644 lib/configobj/__init__.py delete mode 100644 lib/configobj/_version.py delete mode 100644 lib/configobj/validate.py delete mode 100644 lib/dateutil/__init__.py delete mode 100644 lib/dateutil/_common.py delete mode 100644 lib/dateutil/_version.py delete mode 100644 lib/dateutil/easter.py delete mode 100644 lib/dateutil/parser/__init__.py delete mode 100644 lib/dateutil/parser/_parser.py delete mode 100644 lib/dateutil/parser/isoparser.py delete mode 100644 lib/dateutil/relativedelta.py delete mode 100644 lib/dateutil/rrule.py delete mode 100644 lib/dateutil/tz/__init__.py delete mode 100644 lib/dateutil/tz/_common.py delete mode 100644 lib/dateutil/tz/_factories.py delete mode 100644 lib/dateutil/tz/tz.py delete mode 100644 lib/dateutil/tz/win.py delete mode 100644 lib/dateutil/tzwin.py delete mode 100644 lib/dateutil/utils.py delete mode 100644 lib/dateutil/zoneinfo/__init__.py delete mode 100644 lib/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz delete mode 100644 lib/dateutil/zoneinfo/rebuild.py delete mode 100644 lib/distro.py delete mode 100644 lib/distro/__init__.py delete mode 100644 lib/distro/__main__.py delete mode 100644 lib/distro/distro.py delete mode 100644 lib/distro/py.typed delete mode 100644 lib/dns/__init__.py delete mode 100644 lib/dns/_asyncbackend.py delete mode 100644 lib/dns/_asyncio_backend.py delete mode 100644 lib/dns/_curio_backend.py delete mode 100644 lib/dns/_immutable_attr.py delete mode 100644 lib/dns/_immutable_ctx.py delete mode 100644 lib/dns/_trio_backend.py delete mode 100644 lib/dns/asyncbackend.py delete mode 100644 lib/dns/asyncbackend.pyi delete mode 100644 lib/dns/asyncquery.py delete mode 100644 lib/dns/asyncquery.pyi delete mode 100644 lib/dns/asyncresolver.py delete mode 100644 lib/dns/asyncresolver.pyi delete mode 100644 lib/dns/dnssec.py delete mode 100644 lib/dns/dnssec.pyi delete mode 100644 lib/dns/e164.py delete mode 100644 lib/dns/e164.pyi delete mode 100644 lib/dns/edns.py delete mode 100644 lib/dns/entropy.py delete mode 100644 lib/dns/entropy.pyi delete mode 100644 lib/dns/enum.py delete mode 100644 lib/dns/exception.py delete mode 100644 lib/dns/exception.pyi delete mode 100644 lib/dns/flags.py delete mode 100644 lib/dns/grange.py delete mode 100644 lib/dns/immutable.py delete mode 100644 lib/dns/inet.py delete mode 100644 lib/dns/inet.pyi delete mode 100644 lib/dns/ipv4.py delete mode 100644 lib/dns/ipv6.py delete mode 100644 lib/dns/message.py delete mode 100644 lib/dns/message.pyi delete mode 100644 lib/dns/name.py delete mode 100644 lib/dns/name.pyi delete mode 100644 lib/dns/namedict.py delete mode 100644 lib/dns/node.py delete mode 100644 lib/dns/node.pyi delete mode 100644 lib/dns/opcode.py delete mode 100644 lib/dns/py.typed delete mode 100644 lib/dns/query.py delete mode 100644 lib/dns/query.pyi delete mode 100644 lib/dns/rcode.py delete mode 100644 lib/dns/rdata.py delete mode 100644 lib/dns/rdata.pyi delete mode 100644 lib/dns/rdataclass.py delete mode 100644 lib/dns/rdataset.py delete mode 100644 lib/dns/rdataset.pyi delete mode 100644 lib/dns/rdatatype.py delete mode 100644 lib/dns/rdtypes/ANY/AFSDB.py delete mode 100644 lib/dns/rdtypes/ANY/AMTRELAY.py delete mode 100644 lib/dns/rdtypes/ANY/AVC.py delete mode 100644 lib/dns/rdtypes/ANY/CAA.py delete mode 100644 lib/dns/rdtypes/ANY/CDNSKEY.py delete mode 100644 lib/dns/rdtypes/ANY/CDS.py delete mode 100644 lib/dns/rdtypes/ANY/CERT.py delete mode 100644 lib/dns/rdtypes/ANY/CNAME.py delete mode 100644 lib/dns/rdtypes/ANY/CSYNC.py delete mode 100644 lib/dns/rdtypes/ANY/DLV.py delete mode 100644 lib/dns/rdtypes/ANY/DNAME.py delete mode 100644 lib/dns/rdtypes/ANY/DNSKEY.py delete mode 100644 lib/dns/rdtypes/ANY/DS.py delete mode 100644 lib/dns/rdtypes/ANY/EUI48.py delete mode 100644 lib/dns/rdtypes/ANY/EUI64.py delete mode 100644 lib/dns/rdtypes/ANY/GPOS.py delete mode 100644 lib/dns/rdtypes/ANY/HINFO.py delete mode 100644 lib/dns/rdtypes/ANY/HIP.py delete mode 100644 lib/dns/rdtypes/ANY/ISDN.py delete mode 100644 lib/dns/rdtypes/ANY/L32.py delete mode 100644 lib/dns/rdtypes/ANY/L64.py delete mode 100644 lib/dns/rdtypes/ANY/LOC.py delete mode 100644 lib/dns/rdtypes/ANY/LP.py delete mode 100644 lib/dns/rdtypes/ANY/MX.py delete mode 100644 lib/dns/rdtypes/ANY/NID.py delete mode 100644 lib/dns/rdtypes/ANY/NINFO.py delete mode 100644 lib/dns/rdtypes/ANY/NS.py delete mode 100644 lib/dns/rdtypes/ANY/NSEC.py delete mode 100644 lib/dns/rdtypes/ANY/NSEC3.py delete mode 100644 lib/dns/rdtypes/ANY/NSEC3PARAM.py delete mode 100644 lib/dns/rdtypes/ANY/OPENPGPKEY.py delete mode 100644 lib/dns/rdtypes/ANY/OPT.py delete mode 100644 lib/dns/rdtypes/ANY/PTR.py delete mode 100644 lib/dns/rdtypes/ANY/RP.py delete mode 100644 lib/dns/rdtypes/ANY/RRSIG.py delete mode 100644 lib/dns/rdtypes/ANY/RT.py delete mode 100644 lib/dns/rdtypes/ANY/SMIMEA.py delete mode 100644 lib/dns/rdtypes/ANY/SOA.py delete mode 100644 lib/dns/rdtypes/ANY/SPF.py delete mode 100644 lib/dns/rdtypes/ANY/SSHFP.py delete mode 100644 lib/dns/rdtypes/ANY/TKEY.py delete mode 100644 lib/dns/rdtypes/ANY/TLSA.py delete mode 100644 lib/dns/rdtypes/ANY/TSIG.py delete mode 100644 lib/dns/rdtypes/ANY/TXT.py delete mode 100644 lib/dns/rdtypes/ANY/URI.py delete mode 100644 lib/dns/rdtypes/ANY/X25.py delete mode 100644 lib/dns/rdtypes/ANY/ZONEMD.py delete mode 100644 lib/dns/rdtypes/ANY/__init__.py delete mode 100644 lib/dns/rdtypes/CH/A.py delete mode 100644 lib/dns/rdtypes/CH/__init__.py delete mode 100644 lib/dns/rdtypes/IN/A.py delete mode 100644 lib/dns/rdtypes/IN/AAAA.py delete mode 100644 lib/dns/rdtypes/IN/APL.py delete mode 100644 lib/dns/rdtypes/IN/DHCID.py delete mode 100644 lib/dns/rdtypes/IN/HTTPS.py delete mode 100644 lib/dns/rdtypes/IN/IPSECKEY.py delete mode 100644 lib/dns/rdtypes/IN/KX.py delete mode 100644 lib/dns/rdtypes/IN/NAPTR.py delete mode 100644 lib/dns/rdtypes/IN/NSAP.py delete mode 100644 lib/dns/rdtypes/IN/NSAP_PTR.py delete mode 100644 lib/dns/rdtypes/IN/PX.py delete mode 100644 lib/dns/rdtypes/IN/SRV.py delete mode 100644 lib/dns/rdtypes/IN/SVCB.py delete mode 100644 lib/dns/rdtypes/IN/WKS.py delete mode 100644 lib/dns/rdtypes/IN/__init__.py delete mode 100644 lib/dns/rdtypes/__init__.py delete mode 100644 lib/dns/rdtypes/dnskeybase.py delete mode 100644 lib/dns/rdtypes/dnskeybase.pyi delete mode 100644 lib/dns/rdtypes/dsbase.py delete mode 100644 lib/dns/rdtypes/euibase.py delete mode 100644 lib/dns/rdtypes/mxbase.py delete mode 100644 lib/dns/rdtypes/nsbase.py delete mode 100644 lib/dns/rdtypes/svcbbase.py delete mode 100644 lib/dns/rdtypes/tlsabase.py delete mode 100644 lib/dns/rdtypes/txtbase.py delete mode 100644 lib/dns/rdtypes/txtbase.pyi delete mode 100644 lib/dns/rdtypes/util.py delete mode 100644 lib/dns/renderer.py delete mode 100644 lib/dns/resolver.py delete mode 100644 lib/dns/resolver.pyi delete mode 100644 lib/dns/reversename.py delete mode 100644 lib/dns/reversename.pyi delete mode 100644 lib/dns/rrset.py delete mode 100644 lib/dns/rrset.pyi delete mode 100644 lib/dns/serial.py delete mode 100644 lib/dns/set.py delete mode 100644 lib/dns/tokenizer.py delete mode 100644 lib/dns/transaction.py delete mode 100644 lib/dns/tsig.py delete mode 100644 lib/dns/tsigkeyring.py delete mode 100644 lib/dns/tsigkeyring.pyi delete mode 100644 lib/dns/ttl.py delete mode 100644 lib/dns/update.py delete mode 100644 lib/dns/update.pyi delete mode 100644 lib/dns/version.py delete mode 100644 lib/dns/versioned.py delete mode 100644 lib/dns/win32util.py delete mode 100644 lib/dns/wire.py delete mode 100644 lib/dns/xfr.py delete mode 100644 lib/dns/zone.py delete mode 100644 lib/dns/zone.pyi delete mode 100644 lib/dns/zonefile.py delete mode 100644 lib/facebook/__init__.py delete mode 100644 lib/facebook/version.py delete mode 100644 lib/future/__init__.py delete mode 100644 lib/future/backports/__init__.py delete mode 100644 lib/future/backports/_markupbase.py delete mode 100644 lib/future/backports/datetime.py delete mode 100644 lib/future/backports/email/__init__.py delete mode 100644 lib/future/backports/email/_encoded_words.py delete mode 100644 lib/future/backports/email/_header_value_parser.py delete mode 100644 lib/future/backports/email/_parseaddr.py delete mode 100644 lib/future/backports/email/_policybase.py delete mode 100644 lib/future/backports/email/base64mime.py delete mode 100644 lib/future/backports/email/charset.py delete mode 100644 lib/future/backports/email/encoders.py delete mode 100644 lib/future/backports/email/errors.py delete mode 100644 lib/future/backports/email/feedparser.py delete mode 100644 lib/future/backports/email/generator.py delete mode 100644 lib/future/backports/email/header.py delete mode 100644 lib/future/backports/email/headerregistry.py delete mode 100644 lib/future/backports/email/iterators.py delete mode 100644 lib/future/backports/email/message.py delete mode 100644 lib/future/backports/email/mime/__init__.py delete mode 100644 lib/future/backports/email/mime/application.py delete mode 100644 lib/future/backports/email/mime/audio.py delete mode 100644 lib/future/backports/email/mime/base.py delete mode 100644 lib/future/backports/email/mime/image.py delete mode 100644 lib/future/backports/email/mime/message.py delete mode 100644 lib/future/backports/email/mime/multipart.py delete mode 100644 lib/future/backports/email/mime/nonmultipart.py delete mode 100644 lib/future/backports/email/mime/text.py delete mode 100644 lib/future/backports/email/parser.py delete mode 100644 lib/future/backports/email/policy.py delete mode 100644 lib/future/backports/email/quoprimime.py delete mode 100644 lib/future/backports/email/utils.py delete mode 100644 lib/future/backports/html/__init__.py delete mode 100644 lib/future/backports/html/entities.py delete mode 100644 lib/future/backports/html/parser.py delete mode 100644 lib/future/backports/http/__init__.py delete mode 100644 lib/future/backports/http/client.py delete mode 100644 lib/future/backports/http/cookiejar.py delete mode 100644 lib/future/backports/http/cookies.py delete mode 100644 lib/future/backports/http/server.py delete mode 100644 lib/future/backports/misc.py delete mode 100644 lib/future/backports/socket.py delete mode 100644 lib/future/backports/socketserver.py delete mode 100644 lib/future/backports/test/__init__.py delete mode 100644 lib/future/backports/test/badcert.pem delete mode 100644 lib/future/backports/test/badkey.pem delete mode 100644 lib/future/backports/test/dh512.pem delete mode 100644 lib/future/backports/test/https_svn_python_org_root.pem delete mode 100644 lib/future/backports/test/keycert.passwd.pem delete mode 100644 lib/future/backports/test/keycert.pem delete mode 100644 lib/future/backports/test/keycert2.pem delete mode 100644 lib/future/backports/test/nokia.pem delete mode 100644 lib/future/backports/test/nullbytecert.pem delete mode 100644 lib/future/backports/test/nullcert.pem delete mode 100644 lib/future/backports/test/pystone.py delete mode 100644 lib/future/backports/test/sha256.pem delete mode 100644 lib/future/backports/test/ssl_cert.pem delete mode 100644 lib/future/backports/test/ssl_key.passwd.pem delete mode 100644 lib/future/backports/test/ssl_key.pem delete mode 100644 lib/future/backports/test/ssl_servers.py delete mode 100644 lib/future/backports/test/support.py delete mode 100644 lib/future/backports/total_ordering.py delete mode 100644 lib/future/backports/urllib/__init__.py delete mode 100644 lib/future/backports/urllib/error.py delete mode 100644 lib/future/backports/urllib/parse.py delete mode 100644 lib/future/backports/urllib/request.py delete mode 100644 lib/future/backports/urllib/response.py delete mode 100644 lib/future/backports/urllib/robotparser.py delete mode 100644 lib/future/backports/xmlrpc/__init__.py delete mode 100644 lib/future/backports/xmlrpc/client.py delete mode 100644 lib/future/backports/xmlrpc/server.py delete mode 100644 lib/future/builtins/__init__.py delete mode 100644 lib/future/builtins/disabled.py delete mode 100644 lib/future/builtins/iterators.py delete mode 100644 lib/future/builtins/misc.py delete mode 100644 lib/future/builtins/new_min_max.py delete mode 100644 lib/future/builtins/newnext.py delete mode 100644 lib/future/builtins/newround.py delete mode 100644 lib/future/builtins/newsuper.py delete mode 100644 lib/future/moves/__init__.py delete mode 100644 lib/future/moves/_dummy_thread.py delete mode 100644 lib/future/moves/_markupbase.py delete mode 100644 lib/future/moves/_thread.py delete mode 100644 lib/future/moves/builtins.py delete mode 100644 lib/future/moves/collections.py delete mode 100644 lib/future/moves/configparser.py delete mode 100644 lib/future/moves/copyreg.py delete mode 100644 lib/future/moves/dbm/__init__.py delete mode 100644 lib/future/moves/dbm/dumb.py delete mode 100644 lib/future/moves/dbm/gnu.py delete mode 100644 lib/future/moves/dbm/ndbm.py delete mode 100644 lib/future/moves/html/__init__.py delete mode 100644 lib/future/moves/html/entities.py delete mode 100644 lib/future/moves/html/parser.py delete mode 100644 lib/future/moves/http/__init__.py delete mode 100644 lib/future/moves/http/client.py delete mode 100644 lib/future/moves/http/cookiejar.py delete mode 100644 lib/future/moves/http/cookies.py delete mode 100644 lib/future/moves/http/server.py delete mode 100644 lib/future/moves/itertools.py delete mode 100644 lib/future/moves/pickle.py delete mode 100644 lib/future/moves/queue.py delete mode 100644 lib/future/moves/reprlib.py delete mode 100644 lib/future/moves/socketserver.py delete mode 100644 lib/future/moves/subprocess.py delete mode 100644 lib/future/moves/sys.py delete mode 100644 lib/future/moves/test/__init__.py delete mode 100644 lib/future/moves/test/support.py delete mode 100644 lib/future/moves/tkinter/__init__.py delete mode 100644 lib/future/moves/tkinter/colorchooser.py delete mode 100644 lib/future/moves/tkinter/commondialog.py delete mode 100644 lib/future/moves/tkinter/constants.py delete mode 100644 lib/future/moves/tkinter/dialog.py delete mode 100644 lib/future/moves/tkinter/dnd.py delete mode 100644 lib/future/moves/tkinter/filedialog.py delete mode 100644 lib/future/moves/tkinter/font.py delete mode 100644 lib/future/moves/tkinter/messagebox.py delete mode 100644 lib/future/moves/tkinter/scrolledtext.py delete mode 100644 lib/future/moves/tkinter/simpledialog.py delete mode 100644 lib/future/moves/tkinter/tix.py delete mode 100644 lib/future/moves/tkinter/ttk.py delete mode 100644 lib/future/moves/urllib/__init__.py delete mode 100644 lib/future/moves/urllib/error.py delete mode 100644 lib/future/moves/urllib/parse.py delete mode 100644 lib/future/moves/urllib/request.py delete mode 100644 lib/future/moves/urllib/response.py delete mode 100644 lib/future/moves/urllib/robotparser.py delete mode 100644 lib/future/moves/winreg.py delete mode 100644 lib/future/moves/xmlrpc/__init__.py delete mode 100644 lib/future/moves/xmlrpc/client.py delete mode 100644 lib/future/moves/xmlrpc/server.py delete mode 100644 lib/future/standard_library/__init__.py delete mode 100644 lib/future/tests/__init__.py delete mode 100644 lib/future/tests/base.py delete mode 100644 lib/future/types/__init__.py delete mode 100644 lib/future/types/newbytes.py delete mode 100644 lib/future/types/newdict.py delete mode 100644 lib/future/types/newint.py delete mode 100644 lib/future/types/newlist.py delete mode 100644 lib/future/types/newmemoryview.py delete mode 100644 lib/future/types/newobject.py delete mode 100644 lib/future/types/newopen.py delete mode 100644 lib/future/types/newrange.py delete mode 100644 lib/future/types/newstr.py delete mode 100644 lib/future/utils/__init__.py delete mode 100644 lib/future/utils/surrogateescape.py delete mode 100644 lib/gntp/__init__.py delete mode 100644 lib/gntp/cli.py delete mode 100644 lib/gntp/config.py delete mode 100644 lib/gntp/core.py delete mode 100644 lib/gntp/errors.py delete mode 100644 lib/gntp/notifier.py delete mode 100644 lib/gntp/shim.py delete mode 100644 lib/gntp/version.py delete mode 100644 lib/hashing_passwords.py delete mode 100644 lib/html5lib/__init__.py delete mode 100644 lib/html5lib/_ihatexml.py delete mode 100644 lib/html5lib/_inputstream.py delete mode 100644 lib/html5lib/_tokenizer.py delete mode 100644 lib/html5lib/_trie/__init__.py delete mode 100644 lib/html5lib/_trie/_base.py delete mode 100644 lib/html5lib/_trie/py.py delete mode 100644 lib/html5lib/_utils.py delete mode 100644 lib/html5lib/constants.py delete mode 100644 lib/html5lib/filters/__init__.py delete mode 100644 lib/html5lib/filters/alphabeticalattributes.py delete mode 100644 lib/html5lib/filters/base.py delete mode 100644 lib/html5lib/filters/inject_meta_charset.py delete mode 100644 lib/html5lib/filters/lint.py delete mode 100644 lib/html5lib/filters/optionaltags.py delete mode 100644 lib/html5lib/filters/sanitizer.py delete mode 100644 lib/html5lib/filters/whitespace.py delete mode 100644 lib/html5lib/html5parser.py delete mode 100644 lib/html5lib/serializer.py delete mode 100644 lib/html5lib/treeadapters/__init__.py delete mode 100644 lib/html5lib/treeadapters/genshi.py delete mode 100644 lib/html5lib/treeadapters/sax.py delete mode 100644 lib/html5lib/treebuilders/__init__.py delete mode 100644 lib/html5lib/treebuilders/base.py delete mode 100644 lib/html5lib/treebuilders/dom.py delete mode 100644 lib/html5lib/treebuilders/etree.py delete mode 100644 lib/html5lib/treebuilders/etree_lxml.py delete mode 100644 lib/html5lib/treewalkers/__init__.py delete mode 100644 lib/html5lib/treewalkers/base.py delete mode 100644 lib/html5lib/treewalkers/dom.py delete mode 100644 lib/html5lib/treewalkers/etree.py delete mode 100644 lib/html5lib/treewalkers/etree_lxml.py delete mode 100644 lib/html5lib/treewalkers/genshi.py delete mode 100644 lib/httpagentparser/__init__.py delete mode 100644 lib/httpagentparser/more.py delete mode 100644 lib/idna/__init__.py delete mode 100644 lib/idna/codec.py delete mode 100644 lib/idna/compat.py delete mode 100644 lib/idna/core.py delete mode 100644 lib/idna/idnadata.py delete mode 100644 lib/idna/intranges.py delete mode 100644 lib/idna/package_data.py delete mode 100644 lib/idna/py.typed delete mode 100644 lib/idna/uts46data.py delete mode 100644 lib/importlib_metadata/__init__.py delete mode 100644 lib/importlib_metadata/_adapters.py delete mode 100644 lib/importlib_metadata/_collections.py delete mode 100644 lib/importlib_metadata/_compat.py delete mode 100644 lib/importlib_metadata/_functools.py delete mode 100644 lib/importlib_metadata/_itertools.py delete mode 100644 lib/importlib_metadata/_meta.py delete mode 100644 lib/importlib_metadata/_text.py delete mode 100644 lib/importlib_metadata/py.typed delete mode 100644 lib/importlib_resources/__init__.py delete mode 100644 lib/importlib_resources/_adapters.py delete mode 100644 lib/importlib_resources/_common.py delete mode 100644 lib/importlib_resources/_compat.py delete mode 100644 lib/importlib_resources/_itertools.py delete mode 100644 lib/importlib_resources/_legacy.py delete mode 100644 lib/importlib_resources/abc.py delete mode 100644 lib/importlib_resources/py.typed delete mode 100644 lib/importlib_resources/readers.py delete mode 100644 lib/importlib_resources/simple.py delete mode 100644 lib/importlib_resources/tests/__init__.py delete mode 100644 lib/importlib_resources/tests/_compat.py delete mode 100644 lib/importlib_resources/tests/data01/__init__.py delete mode 100644 lib/importlib_resources/tests/data01/binary.file delete mode 100644 lib/importlib_resources/tests/data01/subdirectory/__init__.py delete mode 100644 lib/importlib_resources/tests/data01/subdirectory/binary.file delete mode 100644 lib/importlib_resources/tests/data01/utf-16.file delete mode 100644 lib/importlib_resources/tests/data01/utf-8.file delete mode 100644 lib/importlib_resources/tests/data02/__init__.py delete mode 100644 lib/importlib_resources/tests/data02/one/__init__.py delete mode 100644 lib/importlib_resources/tests/data02/one/resource1.txt delete mode 100644 lib/importlib_resources/tests/data02/two/__init__.py delete mode 100644 lib/importlib_resources/tests/data02/two/resource2.txt delete mode 100644 lib/importlib_resources/tests/namespacedata01/binary.file delete mode 100644 lib/importlib_resources/tests/namespacedata01/utf-16.file delete mode 100644 lib/importlib_resources/tests/namespacedata01/utf-8.file delete mode 100644 lib/importlib_resources/tests/test_compatibilty_files.py delete mode 100644 lib/importlib_resources/tests/test_contents.py delete mode 100644 lib/importlib_resources/tests/test_files.py delete mode 100644 lib/importlib_resources/tests/test_open.py delete mode 100644 lib/importlib_resources/tests/test_path.py delete mode 100644 lib/importlib_resources/tests/test_read.py delete mode 100644 lib/importlib_resources/tests/test_reader.py delete mode 100644 lib/importlib_resources/tests/test_resource.py delete mode 100644 lib/importlib_resources/tests/update-zips.py delete mode 100644 lib/importlib_resources/tests/util.py delete mode 100644 lib/importlib_resources/tests/zipdata01/__init__.py delete mode 100644 lib/importlib_resources/tests/zipdata01/ziptestdata.zip delete mode 100644 lib/importlib_resources/tests/zipdata02/__init__.py delete mode 100644 lib/importlib_resources/tests/zipdata02/ziptestdata.zip delete mode 100644 lib/infi/__init__.py delete mode 100644 lib/infi/systray/__init__.py delete mode 100644 lib/infi/systray/traybar.py delete mode 100644 lib/infi/systray/win32_adapter.py delete mode 100644 lib/ipwhois/__init__.py delete mode 100644 lib/ipwhois/asn.py delete mode 100644 lib/ipwhois/data/iso_3166-1.csv delete mode 100644 lib/ipwhois/data/iso_3166-1_list_en.xml delete mode 100644 lib/ipwhois/exceptions.py delete mode 100644 lib/ipwhois/experimental.py delete mode 100644 lib/ipwhois/hr.py delete mode 100644 lib/ipwhois/ipwhois.py delete mode 100644 lib/ipwhois/net.py delete mode 100644 lib/ipwhois/nir.py delete mode 100644 lib/ipwhois/rdap.py delete mode 100644 lib/ipwhois/utils.py delete mode 100644 lib/ipwhois/whois.py delete mode 100644 lib/jaraco/classes/__init__.py delete mode 100644 lib/jaraco/classes/ancestry.py delete mode 100644 lib/jaraco/classes/meta.py delete mode 100644 lib/jaraco/classes/properties.py delete mode 100644 lib/jaraco/collections.py delete mode 100644 lib/jaraco/context.py delete mode 100644 lib/jaraco/functools.py delete mode 100644 lib/jaraco/text/Lorem ipsum.txt delete mode 100644 lib/jaraco/text/__init__.py delete mode 100644 lib/jwt/__init__.py delete mode 100644 lib/jwt/algorithms.py delete mode 100644 lib/jwt/api_jwk.py delete mode 100644 lib/jwt/api_jws.py delete mode 100644 lib/jwt/api_jwt.py delete mode 100644 lib/jwt/exceptions.py delete mode 100644 lib/jwt/help.py delete mode 100644 lib/jwt/jwks_client.py delete mode 100644 lib/jwt/py.typed delete mode 100644 lib/jwt/utils.py delete mode 100644 lib/libfuturize/__init__.py delete mode 100644 lib/libfuturize/fixer_util.py delete mode 100644 lib/libfuturize/fixes/__init__.py delete mode 100644 lib/libfuturize/fixes/fix_UserDict.py delete mode 100644 lib/libfuturize/fixes/fix_absolute_import.py delete mode 100644 lib/libfuturize/fixes/fix_add__future__imports_except_unicode_literals.py delete mode 100644 lib/libfuturize/fixes/fix_basestring.py delete mode 100644 lib/libfuturize/fixes/fix_bytes.py delete mode 100644 lib/libfuturize/fixes/fix_cmp.py delete mode 100644 lib/libfuturize/fixes/fix_division.py delete mode 100644 lib/libfuturize/fixes/fix_division_safe.py delete mode 100644 lib/libfuturize/fixes/fix_execfile.py delete mode 100644 lib/libfuturize/fixes/fix_future_builtins.py delete mode 100644 lib/libfuturize/fixes/fix_future_standard_library.py delete mode 100644 lib/libfuturize/fixes/fix_future_standard_library_urllib.py delete mode 100644 lib/libfuturize/fixes/fix_input.py delete mode 100644 lib/libfuturize/fixes/fix_metaclass.py delete mode 100644 lib/libfuturize/fixes/fix_next_call.py delete mode 100644 lib/libfuturize/fixes/fix_object.py delete mode 100644 lib/libfuturize/fixes/fix_oldstr_wrap.py delete mode 100644 lib/libfuturize/fixes/fix_order___future__imports.py delete mode 100644 lib/libfuturize/fixes/fix_print.py delete mode 100644 lib/libfuturize/fixes/fix_print_with_import.py delete mode 100644 lib/libfuturize/fixes/fix_raise.py delete mode 100644 lib/libfuturize/fixes/fix_remove_old__future__imports.py delete mode 100644 lib/libfuturize/fixes/fix_unicode_keep_u.py delete mode 100644 lib/libfuturize/fixes/fix_unicode_literals_import.py delete mode 100644 lib/libfuturize/fixes/fix_xrange_with_import.py delete mode 100644 lib/libfuturize/main.py delete mode 100644 lib/libpasteurize/__init__.py delete mode 100644 lib/libpasteurize/fixes/__init__.py delete mode 100644 lib/libpasteurize/fixes/feature_base.py delete mode 100644 lib/libpasteurize/fixes/fix_add_all__future__imports.py delete mode 100644 lib/libpasteurize/fixes/fix_add_all_future_builtins.py delete mode 100644 lib/libpasteurize/fixes/fix_add_future_standard_library_import.py delete mode 100644 lib/libpasteurize/fixes/fix_annotations.py delete mode 100644 lib/libpasteurize/fixes/fix_division.py delete mode 100644 lib/libpasteurize/fixes/fix_features.py delete mode 100644 lib/libpasteurize/fixes/fix_fullargspec.py delete mode 100644 lib/libpasteurize/fixes/fix_future_builtins.py delete mode 100644 lib/libpasteurize/fixes/fix_getcwd.py delete mode 100644 lib/libpasteurize/fixes/fix_imports.py delete mode 100644 lib/libpasteurize/fixes/fix_imports2.py delete mode 100644 lib/libpasteurize/fixes/fix_kwargs.py delete mode 100644 lib/libpasteurize/fixes/fix_memoryview.py delete mode 100644 lib/libpasteurize/fixes/fix_metaclass.py delete mode 100644 lib/libpasteurize/fixes/fix_newstyle.py delete mode 100644 lib/libpasteurize/fixes/fix_next.py delete mode 100644 lib/libpasteurize/fixes/fix_printfunction.py delete mode 100644 lib/libpasteurize/fixes/fix_raise.py delete mode 100644 lib/libpasteurize/fixes/fix_raise_.py delete mode 100644 lib/libpasteurize/fixes/fix_throw.py delete mode 100644 lib/libpasteurize/fixes/fix_unpacking.py delete mode 100644 lib/libpasteurize/main.py delete mode 100644 lib/mako/__init__.py delete mode 100644 lib/mako/_ast_util.py delete mode 100644 lib/mako/ast.py delete mode 100644 lib/mako/cache.py delete mode 100755 lib/mako/cmd.py delete mode 100644 lib/mako/codegen.py delete mode 100644 lib/mako/compat.py delete mode 100644 lib/mako/exceptions.py delete mode 100644 lib/mako/ext/__init__.py delete mode 100644 lib/mako/ext/autohandler.py delete mode 100644 lib/mako/ext/babelplugin.py delete mode 100644 lib/mako/ext/beaker_cache.py delete mode 100644 lib/mako/ext/extract.py delete mode 100644 lib/mako/ext/linguaplugin.py delete mode 100644 lib/mako/ext/preprocessors.py delete mode 100644 lib/mako/ext/pygmentplugin.py delete mode 100644 lib/mako/ext/turbogears.py delete mode 100644 lib/mako/filters.py delete mode 100644 lib/mako/lexer.py delete mode 100644 lib/mako/lookup.py delete mode 100644 lib/mako/parsetree.py delete mode 100644 lib/mako/pygen.py delete mode 100644 lib/mako/pyparser.py delete mode 100644 lib/mako/runtime.py delete mode 100644 lib/mako/template.py delete mode 100644 lib/mako/testing/__init__.py delete mode 100644 lib/mako/testing/_config.py delete mode 100644 lib/mako/testing/assertions.py delete mode 100644 lib/mako/testing/config.py delete mode 100644 lib/mako/testing/exclusions.py delete mode 100644 lib/mako/testing/fixtures.py delete mode 100644 lib/mako/testing/helpers.py delete mode 100644 lib/mako/util.py delete mode 100644 lib/markupsafe/__init__.py delete mode 100644 lib/markupsafe/_native.py delete mode 100644 lib/markupsafe/_speedups.c delete mode 100644 lib/markupsafe/_speedups.pyi delete mode 100644 lib/markupsafe/py.typed delete mode 100644 lib/more_itertools/__init__.py delete mode 100644 lib/more_itertools/__init__.pyi delete mode 100644 lib/more_itertools/more.py delete mode 100644 lib/more_itertools/more.pyi delete mode 100644 lib/more_itertools/py.typed delete mode 100644 lib/more_itertools/recipes.py delete mode 100644 lib/more_itertools/recipes.pyi delete mode 100644 lib/musicbrainzngs/__init__.py delete mode 100644 lib/musicbrainzngs/caa.py delete mode 100644 lib/musicbrainzngs/compat.py delete mode 100644 lib/musicbrainzngs/mbxml.py delete mode 100644 lib/musicbrainzngs/musicbrainz.py delete mode 100644 lib/musicbrainzngs/util.py delete mode 100644 lib/oauthlib/__init__.py delete mode 100644 lib/oauthlib/common.py delete mode 100644 lib/oauthlib/oauth1/__init__.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/__init__.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/__init__.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/access_token.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/authorization.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/base.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/pre_configured.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/request_token.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/resource.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/endpoints/signature_only.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/errors.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/parameters.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/request_validator.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/signature.py delete mode 100644 lib/oauthlib/oauth1/rfc5849/utils.py delete mode 100644 lib/oauthlib/oauth2/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/backend_application.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/base.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/legacy_application.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/mobile_application.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/service_application.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/clients/web_application.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/authorization.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/base.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/introspect.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/metadata.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/resource.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/revocation.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/endpoints/token.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/errors.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/base.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/implicit.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/parameters.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/request_validator.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/tokens.py delete mode 100644 lib/oauthlib/oauth2/rfc6749/utils.py delete mode 100644 lib/oauthlib/oauth2/rfc8628/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc8628/clients/__init__.py delete mode 100644 lib/oauthlib/oauth2/rfc8628/clients/device.py delete mode 100644 lib/oauthlib/openid/__init__.py delete mode 100644 lib/oauthlib/openid/connect/__init__.py delete mode 100644 lib/oauthlib/openid/connect/core/__init__.py delete mode 100644 lib/oauthlib/openid/connect/core/endpoints/__init__.py delete mode 100644 lib/oauthlib/openid/connect/core/endpoints/pre_configured.py delete mode 100644 lib/oauthlib/openid/connect/core/endpoints/userinfo.py delete mode 100644 lib/oauthlib/openid/connect/core/exceptions.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/__init__.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/authorization_code.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/base.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/dispatchers.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/hybrid.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/implicit.py delete mode 100644 lib/oauthlib/openid/connect/core/grant_types/refresh_token.py delete mode 100644 lib/oauthlib/openid/connect/core/request_validator.py delete mode 100644 lib/oauthlib/openid/connect/core/tokens.py delete mode 100644 lib/oauthlib/signals.py delete mode 100644 lib/oauthlib/uri_validate.py delete mode 100755 lib/osxnotify/__init__.py delete mode 100644 lib/osxnotify/appIcon.icns delete mode 100644 lib/osxnotify/registerapp.py delete mode 100644 lib/packaging/__about__.py delete mode 100644 lib/packaging/__init__.py delete mode 100644 lib/packaging/_manylinux.py delete mode 100644 lib/packaging/_musllinux.py delete mode 100644 lib/packaging/_structures.py delete mode 100644 lib/packaging/markers.py delete mode 100644 lib/packaging/py.typed delete mode 100644 lib/packaging/requirements.py delete mode 100644 lib/packaging/specifiers.py delete mode 100644 lib/packaging/tags.py delete mode 100644 lib/packaging/utils.py delete mode 100644 lib/packaging/version.py delete mode 100644 lib/paho/__init__.py delete mode 100644 lib/paho/mqtt/__init__.py delete mode 100644 lib/paho/mqtt/client.py delete mode 100644 lib/paho/mqtt/matcher.py delete mode 100644 lib/paho/mqtt/packettypes.py delete mode 100644 lib/paho/mqtt/properties.py delete mode 100644 lib/paho/mqtt/publish.py delete mode 100644 lib/paho/mqtt/reasoncodes.py delete mode 100644 lib/paho/mqtt/subscribe.py delete mode 100644 lib/paho/mqtt/subscribeoptions.py delete mode 100644 lib/past/__init__.py delete mode 100644 lib/past/builtins/__init__.py delete mode 100644 lib/past/builtins/misc.py delete mode 100644 lib/past/builtins/noniterators.py delete mode 100644 lib/past/translation/__init__.py delete mode 100644 lib/past/types/__init__.py delete mode 100644 lib/past/types/basestring.py delete mode 100644 lib/past/types/olddict.py delete mode 100644 lib/past/types/oldstr.py delete mode 100644 lib/past/utils/__init__.py delete mode 100644 lib/plexapi/__init__.py delete mode 100644 lib/plexapi/alert.py delete mode 100644 lib/plexapi/audio.py delete mode 100644 lib/plexapi/base.py delete mode 100644 lib/plexapi/client.py delete mode 100644 lib/plexapi/collection.py delete mode 100644 lib/plexapi/config.py delete mode 100644 lib/plexapi/const.py delete mode 100644 lib/plexapi/exceptions.py delete mode 100644 lib/plexapi/gdm.py delete mode 100644 lib/plexapi/library.py delete mode 100644 lib/plexapi/media.py delete mode 100644 lib/plexapi/mixins.py delete mode 100644 lib/plexapi/myplex.py delete mode 100644 lib/plexapi/photo.py delete mode 100644 lib/plexapi/playlist.py delete mode 100644 lib/plexapi/playqueue.py delete mode 100644 lib/plexapi/server.py delete mode 100644 lib/plexapi/settings.py delete mode 100644 lib/plexapi/sonos.py delete mode 100644 lib/plexapi/sync.py delete mode 100644 lib/plexapi/utils.py delete mode 100644 lib/plexapi/video.py delete mode 100644 lib/portend.py delete mode 100644 lib/profilehooks.py delete mode 100644 lib/pyparsing/__init__.py delete mode 100644 lib/pyparsing/actions.py delete mode 100644 lib/pyparsing/common.py delete mode 100644 lib/pyparsing/core.py delete mode 100644 lib/pyparsing/diagram/__init__.py delete mode 100644 lib/pyparsing/exceptions.py delete mode 100644 lib/pyparsing/helpers.py delete mode 100644 lib/pyparsing/py.typed delete mode 100644 lib/pyparsing/results.py delete mode 100644 lib/pyparsing/testing.py delete mode 100644 lib/pyparsing/unicode.py delete mode 100644 lib/pyparsing/util.py delete mode 100644 lib/pytz/__init__.py delete mode 100644 lib/pytz/exceptions.py delete mode 100644 lib/pytz/lazy.py delete mode 100644 lib/pytz/reference.py delete mode 100644 lib/pytz/tzfile.py delete mode 100644 lib/pytz/tzinfo.py delete mode 100644 lib/pytz/zoneinfo/Africa/Abidjan delete mode 100644 lib/pytz/zoneinfo/Africa/Accra delete mode 100644 lib/pytz/zoneinfo/Africa/Addis_Ababa delete mode 100644 lib/pytz/zoneinfo/Africa/Algiers delete mode 100644 lib/pytz/zoneinfo/Africa/Asmara delete mode 100644 lib/pytz/zoneinfo/Africa/Asmera delete mode 100644 lib/pytz/zoneinfo/Africa/Bamako delete mode 100644 lib/pytz/zoneinfo/Africa/Bangui delete mode 100644 lib/pytz/zoneinfo/Africa/Banjul delete mode 100644 lib/pytz/zoneinfo/Africa/Bissau delete mode 100644 lib/pytz/zoneinfo/Africa/Blantyre delete mode 100644 lib/pytz/zoneinfo/Africa/Brazzaville delete mode 100644 lib/pytz/zoneinfo/Africa/Bujumbura delete mode 100644 lib/pytz/zoneinfo/Africa/Cairo delete mode 100644 lib/pytz/zoneinfo/Africa/Casablanca delete mode 100644 lib/pytz/zoneinfo/Africa/Ceuta delete mode 100644 lib/pytz/zoneinfo/Africa/Conakry delete mode 100644 lib/pytz/zoneinfo/Africa/Dakar delete mode 100644 lib/pytz/zoneinfo/Africa/Dar_es_Salaam delete mode 100644 lib/pytz/zoneinfo/Africa/Djibouti delete mode 100644 lib/pytz/zoneinfo/Africa/Douala delete mode 100644 lib/pytz/zoneinfo/Africa/El_Aaiun delete mode 100644 lib/pytz/zoneinfo/Africa/Freetown delete mode 100644 lib/pytz/zoneinfo/Africa/Gaborone delete mode 100644 lib/pytz/zoneinfo/Africa/Harare delete mode 100644 lib/pytz/zoneinfo/Africa/Johannesburg delete mode 100644 lib/pytz/zoneinfo/Africa/Juba delete mode 100644 lib/pytz/zoneinfo/Africa/Kampala delete mode 100644 lib/pytz/zoneinfo/Africa/Khartoum delete mode 100644 lib/pytz/zoneinfo/Africa/Kigali delete mode 100644 lib/pytz/zoneinfo/Africa/Kinshasa delete mode 100644 lib/pytz/zoneinfo/Africa/Lagos delete mode 100644 lib/pytz/zoneinfo/Africa/Libreville delete mode 100644 lib/pytz/zoneinfo/Africa/Lome delete mode 100644 lib/pytz/zoneinfo/Africa/Luanda delete mode 100644 lib/pytz/zoneinfo/Africa/Lubumbashi delete mode 100644 lib/pytz/zoneinfo/Africa/Lusaka delete mode 100644 lib/pytz/zoneinfo/Africa/Malabo delete mode 100644 lib/pytz/zoneinfo/Africa/Maputo delete mode 100644 lib/pytz/zoneinfo/Africa/Maseru delete mode 100644 lib/pytz/zoneinfo/Africa/Mbabane delete mode 100644 lib/pytz/zoneinfo/Africa/Mogadishu delete mode 100644 lib/pytz/zoneinfo/Africa/Monrovia delete mode 100644 lib/pytz/zoneinfo/Africa/Nairobi delete mode 100644 lib/pytz/zoneinfo/Africa/Ndjamena delete mode 100644 lib/pytz/zoneinfo/Africa/Niamey delete mode 100644 lib/pytz/zoneinfo/Africa/Nouakchott delete mode 100644 lib/pytz/zoneinfo/Africa/Ouagadougou delete mode 100644 lib/pytz/zoneinfo/Africa/Porto-Novo delete mode 100644 lib/pytz/zoneinfo/Africa/Sao_Tome delete mode 100644 lib/pytz/zoneinfo/Africa/Timbuktu delete mode 100644 lib/pytz/zoneinfo/Africa/Tripoli delete mode 100644 lib/pytz/zoneinfo/Africa/Tunis delete mode 100644 lib/pytz/zoneinfo/Africa/Windhoek delete mode 100644 lib/pytz/zoneinfo/America/Adak delete mode 100644 lib/pytz/zoneinfo/America/Anchorage delete mode 100644 lib/pytz/zoneinfo/America/Anguilla delete mode 100644 lib/pytz/zoneinfo/America/Antigua delete mode 100644 lib/pytz/zoneinfo/America/Araguaina delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Buenos_Aires delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Catamarca delete mode 100644 lib/pytz/zoneinfo/America/Argentina/ComodRivadavia delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Cordoba delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Jujuy delete mode 100644 lib/pytz/zoneinfo/America/Argentina/La_Rioja delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Mendoza delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Rio_Gallegos delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Salta delete mode 100644 lib/pytz/zoneinfo/America/Argentina/San_Juan delete mode 100644 lib/pytz/zoneinfo/America/Argentina/San_Luis delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Tucuman delete mode 100644 lib/pytz/zoneinfo/America/Argentina/Ushuaia delete mode 100644 lib/pytz/zoneinfo/America/Aruba delete mode 100644 lib/pytz/zoneinfo/America/Asuncion delete mode 100644 lib/pytz/zoneinfo/America/Atikokan delete mode 100644 lib/pytz/zoneinfo/America/Atka delete mode 100644 lib/pytz/zoneinfo/America/Bahia delete mode 100644 lib/pytz/zoneinfo/America/Bahia_Banderas delete mode 100644 lib/pytz/zoneinfo/America/Barbados delete mode 100644 lib/pytz/zoneinfo/America/Belem delete mode 100644 lib/pytz/zoneinfo/America/Belize delete mode 100644 lib/pytz/zoneinfo/America/Blanc-Sablon delete mode 100644 lib/pytz/zoneinfo/America/Boa_Vista delete mode 100644 lib/pytz/zoneinfo/America/Bogota delete mode 100644 lib/pytz/zoneinfo/America/Boise delete mode 100644 lib/pytz/zoneinfo/America/Buenos_Aires delete mode 100644 lib/pytz/zoneinfo/America/Cambridge_Bay delete mode 100644 lib/pytz/zoneinfo/America/Campo_Grande delete mode 100644 lib/pytz/zoneinfo/America/Cancun delete mode 100644 lib/pytz/zoneinfo/America/Caracas delete mode 100644 lib/pytz/zoneinfo/America/Catamarca delete mode 100644 lib/pytz/zoneinfo/America/Cayenne delete mode 100644 lib/pytz/zoneinfo/America/Cayman delete mode 100644 lib/pytz/zoneinfo/America/Chicago delete mode 100644 lib/pytz/zoneinfo/America/Chihuahua delete mode 100644 lib/pytz/zoneinfo/America/Coral_Harbour delete mode 100644 lib/pytz/zoneinfo/America/Cordoba delete mode 100644 lib/pytz/zoneinfo/America/Costa_Rica delete mode 100644 lib/pytz/zoneinfo/America/Creston delete mode 100644 lib/pytz/zoneinfo/America/Cuiaba delete mode 100644 lib/pytz/zoneinfo/America/Curacao delete mode 100644 lib/pytz/zoneinfo/America/Danmarkshavn delete mode 100644 lib/pytz/zoneinfo/America/Dawson delete mode 100644 lib/pytz/zoneinfo/America/Dawson_Creek delete mode 100644 lib/pytz/zoneinfo/America/Denver delete mode 100644 lib/pytz/zoneinfo/America/Detroit delete mode 100644 lib/pytz/zoneinfo/America/Dominica delete mode 100644 lib/pytz/zoneinfo/America/Edmonton delete mode 100644 lib/pytz/zoneinfo/America/Eirunepe delete mode 100644 lib/pytz/zoneinfo/America/El_Salvador delete mode 100644 lib/pytz/zoneinfo/America/Ensenada delete mode 100644 lib/pytz/zoneinfo/America/Fort_Nelson delete mode 100644 lib/pytz/zoneinfo/America/Fort_Wayne delete mode 100644 lib/pytz/zoneinfo/America/Fortaleza delete mode 100644 lib/pytz/zoneinfo/America/Glace_Bay delete mode 100644 lib/pytz/zoneinfo/America/Godthab delete mode 100644 lib/pytz/zoneinfo/America/Goose_Bay delete mode 100644 lib/pytz/zoneinfo/America/Grand_Turk delete mode 100644 lib/pytz/zoneinfo/America/Grenada delete mode 100644 lib/pytz/zoneinfo/America/Guadeloupe delete mode 100644 lib/pytz/zoneinfo/America/Guatemala delete mode 100644 lib/pytz/zoneinfo/America/Guayaquil delete mode 100644 lib/pytz/zoneinfo/America/Guyana delete mode 100644 lib/pytz/zoneinfo/America/Halifax delete mode 100644 lib/pytz/zoneinfo/America/Havana delete mode 100644 lib/pytz/zoneinfo/America/Hermosillo delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Indianapolis delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Knox delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Marengo delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Petersburg delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Tell_City delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Vevay delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Vincennes delete mode 100644 lib/pytz/zoneinfo/America/Indiana/Winamac delete mode 100644 lib/pytz/zoneinfo/America/Indianapolis delete mode 100644 lib/pytz/zoneinfo/America/Inuvik delete mode 100644 lib/pytz/zoneinfo/America/Iqaluit delete mode 100644 lib/pytz/zoneinfo/America/Jamaica delete mode 100644 lib/pytz/zoneinfo/America/Jujuy delete mode 100644 lib/pytz/zoneinfo/America/Juneau delete mode 100644 lib/pytz/zoneinfo/America/Kentucky/Louisville delete mode 100644 lib/pytz/zoneinfo/America/Kentucky/Monticello delete mode 100644 lib/pytz/zoneinfo/America/Knox_IN delete mode 100644 lib/pytz/zoneinfo/America/Kralendijk delete mode 100644 lib/pytz/zoneinfo/America/La_Paz delete mode 100644 lib/pytz/zoneinfo/America/Lima delete mode 100644 lib/pytz/zoneinfo/America/Los_Angeles delete mode 100644 lib/pytz/zoneinfo/America/Louisville delete mode 100644 lib/pytz/zoneinfo/America/Lower_Princes delete mode 100644 lib/pytz/zoneinfo/America/Maceio delete mode 100644 lib/pytz/zoneinfo/America/Managua delete mode 100644 lib/pytz/zoneinfo/America/Manaus delete mode 100644 lib/pytz/zoneinfo/America/Marigot delete mode 100644 lib/pytz/zoneinfo/America/Martinique delete mode 100644 lib/pytz/zoneinfo/America/Matamoros delete mode 100644 lib/pytz/zoneinfo/America/Mazatlan delete mode 100644 lib/pytz/zoneinfo/America/Mendoza delete mode 100644 lib/pytz/zoneinfo/America/Menominee delete mode 100644 lib/pytz/zoneinfo/America/Merida delete mode 100644 lib/pytz/zoneinfo/America/Metlakatla delete mode 100644 lib/pytz/zoneinfo/America/Mexico_City delete mode 100644 lib/pytz/zoneinfo/America/Miquelon delete mode 100644 lib/pytz/zoneinfo/America/Moncton delete mode 100644 lib/pytz/zoneinfo/America/Monterrey delete mode 100644 lib/pytz/zoneinfo/America/Montevideo delete mode 100644 lib/pytz/zoneinfo/America/Montreal delete mode 100644 lib/pytz/zoneinfo/America/Montserrat delete mode 100644 lib/pytz/zoneinfo/America/Nassau delete mode 100644 lib/pytz/zoneinfo/America/New_York delete mode 100644 lib/pytz/zoneinfo/America/Nipigon delete mode 100644 lib/pytz/zoneinfo/America/Nome delete mode 100644 lib/pytz/zoneinfo/America/Noronha delete mode 100644 lib/pytz/zoneinfo/America/North_Dakota/Beulah delete mode 100644 lib/pytz/zoneinfo/America/North_Dakota/Center delete mode 100644 lib/pytz/zoneinfo/America/North_Dakota/New_Salem delete mode 100644 lib/pytz/zoneinfo/America/Nuuk delete mode 100644 lib/pytz/zoneinfo/America/Ojinaga delete mode 100644 lib/pytz/zoneinfo/America/Panama delete mode 100644 lib/pytz/zoneinfo/America/Pangnirtung delete mode 100644 lib/pytz/zoneinfo/America/Paramaribo delete mode 100644 lib/pytz/zoneinfo/America/Phoenix delete mode 100644 lib/pytz/zoneinfo/America/Port-au-Prince delete mode 100644 lib/pytz/zoneinfo/America/Port_of_Spain delete mode 100644 lib/pytz/zoneinfo/America/Porto_Acre delete mode 100644 lib/pytz/zoneinfo/America/Porto_Velho delete mode 100644 lib/pytz/zoneinfo/America/Puerto_Rico delete mode 100644 lib/pytz/zoneinfo/America/Punta_Arenas delete mode 100644 lib/pytz/zoneinfo/America/Rainy_River delete mode 100644 lib/pytz/zoneinfo/America/Rankin_Inlet delete mode 100644 lib/pytz/zoneinfo/America/Recife delete mode 100644 lib/pytz/zoneinfo/America/Regina delete mode 100644 lib/pytz/zoneinfo/America/Resolute delete mode 100644 lib/pytz/zoneinfo/America/Rio_Branco delete mode 100644 lib/pytz/zoneinfo/America/Rosario delete mode 100644 lib/pytz/zoneinfo/America/Santa_Isabel delete mode 100644 lib/pytz/zoneinfo/America/Santarem delete mode 100644 lib/pytz/zoneinfo/America/Santiago delete mode 100644 lib/pytz/zoneinfo/America/Santo_Domingo delete mode 100644 lib/pytz/zoneinfo/America/Sao_Paulo delete mode 100644 lib/pytz/zoneinfo/America/Scoresbysund delete mode 100644 lib/pytz/zoneinfo/America/Shiprock delete mode 100644 lib/pytz/zoneinfo/America/Sitka delete mode 100644 lib/pytz/zoneinfo/America/St_Barthelemy delete mode 100644 lib/pytz/zoneinfo/America/St_Johns delete mode 100644 lib/pytz/zoneinfo/America/St_Kitts delete mode 100644 lib/pytz/zoneinfo/America/St_Lucia delete mode 100644 lib/pytz/zoneinfo/America/St_Thomas delete mode 100644 lib/pytz/zoneinfo/America/St_Vincent delete mode 100644 lib/pytz/zoneinfo/America/Swift_Current delete mode 100644 lib/pytz/zoneinfo/America/Tegucigalpa delete mode 100644 lib/pytz/zoneinfo/America/Thule delete mode 100644 lib/pytz/zoneinfo/America/Thunder_Bay delete mode 100644 lib/pytz/zoneinfo/America/Tijuana delete mode 100644 lib/pytz/zoneinfo/America/Toronto delete mode 100644 lib/pytz/zoneinfo/America/Tortola delete mode 100644 lib/pytz/zoneinfo/America/Vancouver delete mode 100644 lib/pytz/zoneinfo/America/Virgin delete mode 100644 lib/pytz/zoneinfo/America/Whitehorse delete mode 100644 lib/pytz/zoneinfo/America/Winnipeg delete mode 100644 lib/pytz/zoneinfo/America/Yakutat delete mode 100644 lib/pytz/zoneinfo/America/Yellowknife delete mode 100644 lib/pytz/zoneinfo/Antarctica/Casey delete mode 100644 lib/pytz/zoneinfo/Antarctica/Davis delete mode 100644 lib/pytz/zoneinfo/Antarctica/DumontDUrville delete mode 100644 lib/pytz/zoneinfo/Antarctica/Macquarie delete mode 100644 lib/pytz/zoneinfo/Antarctica/Mawson delete mode 100644 lib/pytz/zoneinfo/Antarctica/McMurdo delete mode 100644 lib/pytz/zoneinfo/Antarctica/Palmer delete mode 100644 lib/pytz/zoneinfo/Antarctica/Rothera delete mode 100644 lib/pytz/zoneinfo/Antarctica/South_Pole delete mode 100644 lib/pytz/zoneinfo/Antarctica/Syowa delete mode 100644 lib/pytz/zoneinfo/Antarctica/Troll delete mode 100644 lib/pytz/zoneinfo/Antarctica/Vostok delete mode 100644 lib/pytz/zoneinfo/Arctic/Longyearbyen delete mode 100644 lib/pytz/zoneinfo/Asia/Aden delete mode 100644 lib/pytz/zoneinfo/Asia/Almaty delete mode 100644 lib/pytz/zoneinfo/Asia/Amman delete mode 100644 lib/pytz/zoneinfo/Asia/Anadyr delete mode 100644 lib/pytz/zoneinfo/Asia/Aqtau delete mode 100644 lib/pytz/zoneinfo/Asia/Aqtobe delete mode 100644 lib/pytz/zoneinfo/Asia/Ashgabat delete mode 100644 lib/pytz/zoneinfo/Asia/Ashkhabad delete mode 100644 lib/pytz/zoneinfo/Asia/Atyrau delete mode 100644 lib/pytz/zoneinfo/Asia/Baghdad delete mode 100644 lib/pytz/zoneinfo/Asia/Bahrain delete mode 100644 lib/pytz/zoneinfo/Asia/Baku delete mode 100644 lib/pytz/zoneinfo/Asia/Bangkok delete mode 100644 lib/pytz/zoneinfo/Asia/Barnaul delete mode 100644 lib/pytz/zoneinfo/Asia/Beirut delete mode 100644 lib/pytz/zoneinfo/Asia/Bishkek delete mode 100644 lib/pytz/zoneinfo/Asia/Brunei delete mode 100644 lib/pytz/zoneinfo/Asia/Calcutta delete mode 100644 lib/pytz/zoneinfo/Asia/Chita delete mode 100644 lib/pytz/zoneinfo/Asia/Choibalsan delete mode 100644 lib/pytz/zoneinfo/Asia/Chongqing delete mode 100644 lib/pytz/zoneinfo/Asia/Chungking delete mode 100644 lib/pytz/zoneinfo/Asia/Colombo delete mode 100644 lib/pytz/zoneinfo/Asia/Dacca delete mode 100644 lib/pytz/zoneinfo/Asia/Damascus delete mode 100644 lib/pytz/zoneinfo/Asia/Dhaka delete mode 100644 lib/pytz/zoneinfo/Asia/Dili delete mode 100644 lib/pytz/zoneinfo/Asia/Dubai delete mode 100644 lib/pytz/zoneinfo/Asia/Dushanbe delete mode 100644 lib/pytz/zoneinfo/Asia/Famagusta delete mode 100644 lib/pytz/zoneinfo/Asia/Gaza delete mode 100644 lib/pytz/zoneinfo/Asia/Harbin delete mode 100644 lib/pytz/zoneinfo/Asia/Hebron delete mode 100644 lib/pytz/zoneinfo/Asia/Ho_Chi_Minh delete mode 100644 lib/pytz/zoneinfo/Asia/Hong_Kong delete mode 100644 lib/pytz/zoneinfo/Asia/Hovd delete mode 100644 lib/pytz/zoneinfo/Asia/Irkutsk delete mode 100644 lib/pytz/zoneinfo/Asia/Istanbul delete mode 100644 lib/pytz/zoneinfo/Asia/Jakarta delete mode 100644 lib/pytz/zoneinfo/Asia/Jayapura delete mode 100644 lib/pytz/zoneinfo/Asia/Jerusalem delete mode 100644 lib/pytz/zoneinfo/Asia/Kabul delete mode 100644 lib/pytz/zoneinfo/Asia/Kamchatka delete mode 100644 lib/pytz/zoneinfo/Asia/Karachi delete mode 100644 lib/pytz/zoneinfo/Asia/Kashgar delete mode 100644 lib/pytz/zoneinfo/Asia/Kathmandu delete mode 100644 lib/pytz/zoneinfo/Asia/Katmandu delete mode 100644 lib/pytz/zoneinfo/Asia/Khandyga delete mode 100644 lib/pytz/zoneinfo/Asia/Kolkata delete mode 100644 lib/pytz/zoneinfo/Asia/Krasnoyarsk delete mode 100644 lib/pytz/zoneinfo/Asia/Kuala_Lumpur delete mode 100644 lib/pytz/zoneinfo/Asia/Kuching delete mode 100644 lib/pytz/zoneinfo/Asia/Kuwait delete mode 100644 lib/pytz/zoneinfo/Asia/Macao delete mode 100644 lib/pytz/zoneinfo/Asia/Macau delete mode 100644 lib/pytz/zoneinfo/Asia/Magadan delete mode 100644 lib/pytz/zoneinfo/Asia/Makassar delete mode 100644 lib/pytz/zoneinfo/Asia/Manila delete mode 100644 lib/pytz/zoneinfo/Asia/Muscat delete mode 100644 lib/pytz/zoneinfo/Asia/Nicosia delete mode 100644 lib/pytz/zoneinfo/Asia/Novokuznetsk delete mode 100644 lib/pytz/zoneinfo/Asia/Novosibirsk delete mode 100644 lib/pytz/zoneinfo/Asia/Omsk delete mode 100644 lib/pytz/zoneinfo/Asia/Oral delete mode 100644 lib/pytz/zoneinfo/Asia/Phnom_Penh delete mode 100644 lib/pytz/zoneinfo/Asia/Pontianak delete mode 100644 lib/pytz/zoneinfo/Asia/Pyongyang delete mode 100644 lib/pytz/zoneinfo/Asia/Qatar delete mode 100644 lib/pytz/zoneinfo/Asia/Qostanay delete mode 100644 lib/pytz/zoneinfo/Asia/Qyzylorda delete mode 100644 lib/pytz/zoneinfo/Asia/Rangoon delete mode 100644 lib/pytz/zoneinfo/Asia/Riyadh delete mode 100644 lib/pytz/zoneinfo/Asia/Saigon delete mode 100644 lib/pytz/zoneinfo/Asia/Sakhalin delete mode 100644 lib/pytz/zoneinfo/Asia/Samarkand delete mode 100644 lib/pytz/zoneinfo/Asia/Seoul delete mode 100644 lib/pytz/zoneinfo/Asia/Shanghai delete mode 100644 lib/pytz/zoneinfo/Asia/Singapore delete mode 100644 lib/pytz/zoneinfo/Asia/Srednekolymsk delete mode 100644 lib/pytz/zoneinfo/Asia/Taipei delete mode 100644 lib/pytz/zoneinfo/Asia/Tashkent delete mode 100644 lib/pytz/zoneinfo/Asia/Tbilisi delete mode 100644 lib/pytz/zoneinfo/Asia/Tehran delete mode 100644 lib/pytz/zoneinfo/Asia/Tel_Aviv delete mode 100644 lib/pytz/zoneinfo/Asia/Thimbu delete mode 100644 lib/pytz/zoneinfo/Asia/Thimphu delete mode 100644 lib/pytz/zoneinfo/Asia/Tokyo delete mode 100644 lib/pytz/zoneinfo/Asia/Tomsk delete mode 100644 lib/pytz/zoneinfo/Asia/Ujung_Pandang delete mode 100644 lib/pytz/zoneinfo/Asia/Ulaanbaatar delete mode 100644 lib/pytz/zoneinfo/Asia/Ulan_Bator delete mode 100644 lib/pytz/zoneinfo/Asia/Urumqi delete mode 100644 lib/pytz/zoneinfo/Asia/Ust-Nera delete mode 100644 lib/pytz/zoneinfo/Asia/Vientiane delete mode 100644 lib/pytz/zoneinfo/Asia/Vladivostok delete mode 100644 lib/pytz/zoneinfo/Asia/Yakutsk delete mode 100644 lib/pytz/zoneinfo/Asia/Yangon delete mode 100644 lib/pytz/zoneinfo/Asia/Yekaterinburg delete mode 100644 lib/pytz/zoneinfo/Asia/Yerevan delete mode 100644 lib/pytz/zoneinfo/Atlantic/Azores delete mode 100644 lib/pytz/zoneinfo/Atlantic/Bermuda delete mode 100644 lib/pytz/zoneinfo/Atlantic/Canary delete mode 100644 lib/pytz/zoneinfo/Atlantic/Cape_Verde delete mode 100644 lib/pytz/zoneinfo/Atlantic/Faeroe delete mode 100644 lib/pytz/zoneinfo/Atlantic/Faroe delete mode 100644 lib/pytz/zoneinfo/Atlantic/Jan_Mayen delete mode 100644 lib/pytz/zoneinfo/Atlantic/Madeira delete mode 100644 lib/pytz/zoneinfo/Atlantic/Reykjavik delete mode 100644 lib/pytz/zoneinfo/Atlantic/South_Georgia delete mode 100644 lib/pytz/zoneinfo/Atlantic/St_Helena delete mode 100644 lib/pytz/zoneinfo/Atlantic/Stanley delete mode 100644 lib/pytz/zoneinfo/Australia/ACT delete mode 100644 lib/pytz/zoneinfo/Australia/Adelaide delete mode 100644 lib/pytz/zoneinfo/Australia/Brisbane delete mode 100644 lib/pytz/zoneinfo/Australia/Broken_Hill delete mode 100644 lib/pytz/zoneinfo/Australia/Canberra delete mode 100644 lib/pytz/zoneinfo/Australia/Currie delete mode 100644 lib/pytz/zoneinfo/Australia/Darwin delete mode 100644 lib/pytz/zoneinfo/Australia/Eucla delete mode 100644 lib/pytz/zoneinfo/Australia/Hobart delete mode 100644 lib/pytz/zoneinfo/Australia/LHI delete mode 100644 lib/pytz/zoneinfo/Australia/Lindeman delete mode 100644 lib/pytz/zoneinfo/Australia/Lord_Howe delete mode 100644 lib/pytz/zoneinfo/Australia/Melbourne delete mode 100644 lib/pytz/zoneinfo/Australia/NSW delete mode 100644 lib/pytz/zoneinfo/Australia/North delete mode 100644 lib/pytz/zoneinfo/Australia/Perth delete mode 100644 lib/pytz/zoneinfo/Australia/Queensland delete mode 100644 lib/pytz/zoneinfo/Australia/South delete mode 100644 lib/pytz/zoneinfo/Australia/Sydney delete mode 100644 lib/pytz/zoneinfo/Australia/Tasmania delete mode 100644 lib/pytz/zoneinfo/Australia/Victoria delete mode 100644 lib/pytz/zoneinfo/Australia/West delete mode 100644 lib/pytz/zoneinfo/Australia/Yancowinna delete mode 100644 lib/pytz/zoneinfo/Brazil/Acre delete mode 100644 lib/pytz/zoneinfo/Brazil/DeNoronha delete mode 100644 lib/pytz/zoneinfo/Brazil/East delete mode 100644 lib/pytz/zoneinfo/Brazil/West delete mode 100644 lib/pytz/zoneinfo/CET delete mode 100644 lib/pytz/zoneinfo/CST6CDT delete mode 100644 lib/pytz/zoneinfo/Canada/Atlantic delete mode 100644 lib/pytz/zoneinfo/Canada/Central delete mode 100644 lib/pytz/zoneinfo/Canada/Eastern delete mode 100644 lib/pytz/zoneinfo/Canada/Mountain delete mode 100644 lib/pytz/zoneinfo/Canada/Newfoundland delete mode 100644 lib/pytz/zoneinfo/Canada/Pacific delete mode 100644 lib/pytz/zoneinfo/Canada/Saskatchewan delete mode 100644 lib/pytz/zoneinfo/Canada/Yukon delete mode 100644 lib/pytz/zoneinfo/Chile/Continental delete mode 100644 lib/pytz/zoneinfo/Chile/EasterIsland delete mode 100644 lib/pytz/zoneinfo/Cuba delete mode 100644 lib/pytz/zoneinfo/EET delete mode 100644 lib/pytz/zoneinfo/EST delete mode 100644 lib/pytz/zoneinfo/EST5EDT delete mode 100644 lib/pytz/zoneinfo/Egypt delete mode 100644 lib/pytz/zoneinfo/Eire delete mode 100644 lib/pytz/zoneinfo/Etc/GMT delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+0 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+1 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+10 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+11 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+12 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+2 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+3 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+4 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+5 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+6 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+7 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+8 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT+9 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-0 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-1 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-10 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-11 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-12 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-13 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-14 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-2 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-3 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-4 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-5 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-6 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-7 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-8 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT-9 delete mode 100644 lib/pytz/zoneinfo/Etc/GMT0 delete mode 100644 lib/pytz/zoneinfo/Etc/Greenwich delete mode 100644 lib/pytz/zoneinfo/Etc/UCT delete mode 100644 lib/pytz/zoneinfo/Etc/UTC delete mode 100644 lib/pytz/zoneinfo/Etc/Universal delete mode 100644 lib/pytz/zoneinfo/Etc/Zulu delete mode 100644 lib/pytz/zoneinfo/Europe/Amsterdam delete mode 100644 lib/pytz/zoneinfo/Europe/Andorra delete mode 100644 lib/pytz/zoneinfo/Europe/Astrakhan delete mode 100644 lib/pytz/zoneinfo/Europe/Athens delete mode 100644 lib/pytz/zoneinfo/Europe/Belfast delete mode 100644 lib/pytz/zoneinfo/Europe/Belgrade delete mode 100644 lib/pytz/zoneinfo/Europe/Berlin delete mode 100644 lib/pytz/zoneinfo/Europe/Bratislava delete mode 100644 lib/pytz/zoneinfo/Europe/Brussels delete mode 100644 lib/pytz/zoneinfo/Europe/Bucharest delete mode 100644 lib/pytz/zoneinfo/Europe/Budapest delete mode 100644 lib/pytz/zoneinfo/Europe/Busingen delete mode 100644 lib/pytz/zoneinfo/Europe/Chisinau delete mode 100644 lib/pytz/zoneinfo/Europe/Copenhagen delete mode 100644 lib/pytz/zoneinfo/Europe/Dublin delete mode 100644 lib/pytz/zoneinfo/Europe/Gibraltar delete mode 100644 lib/pytz/zoneinfo/Europe/Guernsey delete mode 100644 lib/pytz/zoneinfo/Europe/Helsinki delete mode 100644 lib/pytz/zoneinfo/Europe/Isle_of_Man delete mode 100644 lib/pytz/zoneinfo/Europe/Istanbul delete mode 100644 lib/pytz/zoneinfo/Europe/Jersey delete mode 100644 lib/pytz/zoneinfo/Europe/Kaliningrad delete mode 100644 lib/pytz/zoneinfo/Europe/Kiev delete mode 100644 lib/pytz/zoneinfo/Europe/Kirov delete mode 100644 lib/pytz/zoneinfo/Europe/Lisbon delete mode 100644 lib/pytz/zoneinfo/Europe/Ljubljana delete mode 100644 lib/pytz/zoneinfo/Europe/London delete mode 100644 lib/pytz/zoneinfo/Europe/Luxembourg delete mode 100644 lib/pytz/zoneinfo/Europe/Madrid delete mode 100644 lib/pytz/zoneinfo/Europe/Malta delete mode 100644 lib/pytz/zoneinfo/Europe/Mariehamn delete mode 100644 lib/pytz/zoneinfo/Europe/Minsk delete mode 100644 lib/pytz/zoneinfo/Europe/Monaco delete mode 100644 lib/pytz/zoneinfo/Europe/Moscow delete mode 100644 lib/pytz/zoneinfo/Europe/Nicosia delete mode 100644 lib/pytz/zoneinfo/Europe/Oslo delete mode 100644 lib/pytz/zoneinfo/Europe/Paris delete mode 100644 lib/pytz/zoneinfo/Europe/Podgorica delete mode 100644 lib/pytz/zoneinfo/Europe/Prague delete mode 100644 lib/pytz/zoneinfo/Europe/Riga delete mode 100644 lib/pytz/zoneinfo/Europe/Rome delete mode 100644 lib/pytz/zoneinfo/Europe/Samara delete mode 100644 lib/pytz/zoneinfo/Europe/San_Marino delete mode 100644 lib/pytz/zoneinfo/Europe/Sarajevo delete mode 100644 lib/pytz/zoneinfo/Europe/Saratov delete mode 100644 lib/pytz/zoneinfo/Europe/Simferopol delete mode 100644 lib/pytz/zoneinfo/Europe/Skopje delete mode 100644 lib/pytz/zoneinfo/Europe/Sofia delete mode 100644 lib/pytz/zoneinfo/Europe/Stockholm delete mode 100644 lib/pytz/zoneinfo/Europe/Tallinn delete mode 100644 lib/pytz/zoneinfo/Europe/Tirane delete mode 100644 lib/pytz/zoneinfo/Europe/Tiraspol delete mode 100644 lib/pytz/zoneinfo/Europe/Ulyanovsk delete mode 100644 lib/pytz/zoneinfo/Europe/Uzhgorod delete mode 100644 lib/pytz/zoneinfo/Europe/Vaduz delete mode 100644 lib/pytz/zoneinfo/Europe/Vatican delete mode 100644 lib/pytz/zoneinfo/Europe/Vienna delete mode 100644 lib/pytz/zoneinfo/Europe/Vilnius delete mode 100644 lib/pytz/zoneinfo/Europe/Volgograd delete mode 100644 lib/pytz/zoneinfo/Europe/Warsaw delete mode 100644 lib/pytz/zoneinfo/Europe/Zagreb delete mode 100644 lib/pytz/zoneinfo/Europe/Zaporozhye delete mode 100644 lib/pytz/zoneinfo/Europe/Zurich delete mode 100644 lib/pytz/zoneinfo/Factory delete mode 100644 lib/pytz/zoneinfo/GB delete mode 100644 lib/pytz/zoneinfo/GB-Eire delete mode 100644 lib/pytz/zoneinfo/GMT delete mode 100644 lib/pytz/zoneinfo/GMT+0 delete mode 100644 lib/pytz/zoneinfo/GMT-0 delete mode 100644 lib/pytz/zoneinfo/GMT0 delete mode 100644 lib/pytz/zoneinfo/Greenwich delete mode 100644 lib/pytz/zoneinfo/HST delete mode 100644 lib/pytz/zoneinfo/Hongkong delete mode 100644 lib/pytz/zoneinfo/Iceland delete mode 100644 lib/pytz/zoneinfo/Indian/Antananarivo delete mode 100644 lib/pytz/zoneinfo/Indian/Chagos delete mode 100644 lib/pytz/zoneinfo/Indian/Christmas delete mode 100644 lib/pytz/zoneinfo/Indian/Cocos delete mode 100644 lib/pytz/zoneinfo/Indian/Comoro delete mode 100644 lib/pytz/zoneinfo/Indian/Kerguelen delete mode 100644 lib/pytz/zoneinfo/Indian/Mahe delete mode 100644 lib/pytz/zoneinfo/Indian/Maldives delete mode 100644 lib/pytz/zoneinfo/Indian/Mauritius delete mode 100644 lib/pytz/zoneinfo/Indian/Mayotte delete mode 100644 lib/pytz/zoneinfo/Indian/Reunion delete mode 100644 lib/pytz/zoneinfo/Iran delete mode 100644 lib/pytz/zoneinfo/Israel delete mode 100644 lib/pytz/zoneinfo/Jamaica delete mode 100644 lib/pytz/zoneinfo/Japan delete mode 100644 lib/pytz/zoneinfo/Kwajalein delete mode 100644 lib/pytz/zoneinfo/Libya delete mode 100644 lib/pytz/zoneinfo/MET delete mode 100644 lib/pytz/zoneinfo/MST delete mode 100644 lib/pytz/zoneinfo/MST7MDT delete mode 100644 lib/pytz/zoneinfo/Mexico/BajaNorte delete mode 100644 lib/pytz/zoneinfo/Mexico/BajaSur delete mode 100644 lib/pytz/zoneinfo/Mexico/General delete mode 100644 lib/pytz/zoneinfo/NZ delete mode 100644 lib/pytz/zoneinfo/NZ-CHAT delete mode 100644 lib/pytz/zoneinfo/Navajo delete mode 100644 lib/pytz/zoneinfo/PRC delete mode 100644 lib/pytz/zoneinfo/PST8PDT delete mode 100644 lib/pytz/zoneinfo/Pacific/Apia delete mode 100644 lib/pytz/zoneinfo/Pacific/Auckland delete mode 100644 lib/pytz/zoneinfo/Pacific/Bougainville delete mode 100644 lib/pytz/zoneinfo/Pacific/Chatham delete mode 100644 lib/pytz/zoneinfo/Pacific/Chuuk delete mode 100644 lib/pytz/zoneinfo/Pacific/Easter delete mode 100644 lib/pytz/zoneinfo/Pacific/Efate delete mode 100644 lib/pytz/zoneinfo/Pacific/Enderbury delete mode 100644 lib/pytz/zoneinfo/Pacific/Fakaofo delete mode 100644 lib/pytz/zoneinfo/Pacific/Fiji delete mode 100644 lib/pytz/zoneinfo/Pacific/Funafuti delete mode 100644 lib/pytz/zoneinfo/Pacific/Galapagos delete mode 100644 lib/pytz/zoneinfo/Pacific/Gambier delete mode 100644 lib/pytz/zoneinfo/Pacific/Guadalcanal delete mode 100644 lib/pytz/zoneinfo/Pacific/Guam delete mode 100644 lib/pytz/zoneinfo/Pacific/Honolulu delete mode 100644 lib/pytz/zoneinfo/Pacific/Johnston delete mode 100644 lib/pytz/zoneinfo/Pacific/Kanton delete mode 100644 lib/pytz/zoneinfo/Pacific/Kiritimati delete mode 100644 lib/pytz/zoneinfo/Pacific/Kosrae delete mode 100644 lib/pytz/zoneinfo/Pacific/Kwajalein delete mode 100644 lib/pytz/zoneinfo/Pacific/Majuro delete mode 100644 lib/pytz/zoneinfo/Pacific/Marquesas delete mode 100644 lib/pytz/zoneinfo/Pacific/Midway delete mode 100644 lib/pytz/zoneinfo/Pacific/Nauru delete mode 100644 lib/pytz/zoneinfo/Pacific/Niue delete mode 100644 lib/pytz/zoneinfo/Pacific/Norfolk delete mode 100644 lib/pytz/zoneinfo/Pacific/Noumea delete mode 100644 lib/pytz/zoneinfo/Pacific/Pago_Pago delete mode 100644 lib/pytz/zoneinfo/Pacific/Palau delete mode 100644 lib/pytz/zoneinfo/Pacific/Pitcairn delete mode 100644 lib/pytz/zoneinfo/Pacific/Pohnpei delete mode 100644 lib/pytz/zoneinfo/Pacific/Ponape delete mode 100644 lib/pytz/zoneinfo/Pacific/Port_Moresby delete mode 100644 lib/pytz/zoneinfo/Pacific/Rarotonga delete mode 100644 lib/pytz/zoneinfo/Pacific/Saipan delete mode 100644 lib/pytz/zoneinfo/Pacific/Samoa delete mode 100644 lib/pytz/zoneinfo/Pacific/Tahiti delete mode 100644 lib/pytz/zoneinfo/Pacific/Tarawa delete mode 100644 lib/pytz/zoneinfo/Pacific/Tongatapu delete mode 100644 lib/pytz/zoneinfo/Pacific/Truk delete mode 100644 lib/pytz/zoneinfo/Pacific/Wake delete mode 100644 lib/pytz/zoneinfo/Pacific/Wallis delete mode 100644 lib/pytz/zoneinfo/Pacific/Yap delete mode 100644 lib/pytz/zoneinfo/Poland delete mode 100644 lib/pytz/zoneinfo/Portugal delete mode 100644 lib/pytz/zoneinfo/ROC delete mode 100644 lib/pytz/zoneinfo/ROK delete mode 100644 lib/pytz/zoneinfo/Singapore delete mode 100644 lib/pytz/zoneinfo/Turkey delete mode 100644 lib/pytz/zoneinfo/UCT delete mode 100644 lib/pytz/zoneinfo/US/Alaska delete mode 100644 lib/pytz/zoneinfo/US/Aleutian delete mode 100644 lib/pytz/zoneinfo/US/Arizona delete mode 100644 lib/pytz/zoneinfo/US/Central delete mode 100644 lib/pytz/zoneinfo/US/East-Indiana delete mode 100644 lib/pytz/zoneinfo/US/Eastern delete mode 100644 lib/pytz/zoneinfo/US/Hawaii delete mode 100644 lib/pytz/zoneinfo/US/Indiana-Starke delete mode 100644 lib/pytz/zoneinfo/US/Michigan delete mode 100644 lib/pytz/zoneinfo/US/Mountain delete mode 100644 lib/pytz/zoneinfo/US/Pacific delete mode 100644 lib/pytz/zoneinfo/US/Samoa delete mode 100644 lib/pytz/zoneinfo/UTC delete mode 100644 lib/pytz/zoneinfo/Universal delete mode 100644 lib/pytz/zoneinfo/W-SU delete mode 100644 lib/pytz/zoneinfo/WET delete mode 100644 lib/pytz/zoneinfo/Zulu delete mode 100644 lib/pytz/zoneinfo/iso3166.tab delete mode 100644 lib/pytz/zoneinfo/leapseconds delete mode 100644 lib/pytz/zoneinfo/tzdata.zi delete mode 100644 lib/pytz/zoneinfo/zone.tab delete mode 100644 lib/pytz/zoneinfo/zone1970.tab delete mode 100644 lib/pytz_deprecation_shim/__init__.py delete mode 100644 lib/pytz_deprecation_shim/_common.py delete mode 100644 lib/pytz_deprecation_shim/_compat.py delete mode 100644 lib/pytz_deprecation_shim/_compat_py2.py delete mode 100644 lib/pytz_deprecation_shim/_compat_py3.py delete mode 100644 lib/pytz_deprecation_shim/_exceptions.py delete mode 100644 lib/pytz_deprecation_shim/_impl.py delete mode 100644 lib/pytz_deprecation_shim/helpers.py delete mode 100644 lib/requests/__init__.py delete mode 100644 lib/requests/__version__.py delete mode 100644 lib/requests/_internal_utils.py delete mode 100644 lib/requests/adapters.py delete mode 100644 lib/requests/api.py delete mode 100644 lib/requests/auth.py delete mode 100644 lib/requests/certs.py delete mode 100644 lib/requests/compat.py delete mode 100644 lib/requests/cookies.py delete mode 100644 lib/requests/exceptions.py delete mode 100644 lib/requests/help.py delete mode 100644 lib/requests/hooks.py delete mode 100644 lib/requests/models.py delete mode 100644 lib/requests/packages.py delete mode 100644 lib/requests/sessions.py delete mode 100644 lib/requests/status_codes.py delete mode 100644 lib/requests/structures.py delete mode 100644 lib/requests/utils.py delete mode 100644 lib/requests_oauthlib/__init__.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/__init__.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/douban.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/ebay.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/facebook.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/fitbit.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/instagram.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/mailchimp.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/plentymarkets.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/slack.py delete mode 100644 lib/requests_oauthlib/compliance_fixes/weibo.py delete mode 100644 lib/requests_oauthlib/oauth1_auth.py delete mode 100644 lib/requests_oauthlib/oauth1_session.py delete mode 100644 lib/requests_oauthlib/oauth2_auth.py delete mode 100644 lib/requests_oauthlib/oauth2_session.py delete mode 100644 lib/rumps/__init__.py delete mode 100644 lib/rumps/compat.py delete mode 100644 lib/rumps/notifications.py delete mode 100644 lib/rumps/packages/__init__.py delete mode 100644 lib/rumps/packages/ordereddict.py delete mode 100644 lib/rumps/rumps.py delete mode 100644 lib/rumps/utils.py delete mode 100644 lib/simplejson/__init__.py delete mode 100644 lib/simplejson/compat.py delete mode 100644 lib/simplejson/decoder.py delete mode 100644 lib/simplejson/encoder.py delete mode 100644 lib/simplejson/errors.py delete mode 100644 lib/simplejson/ordered_dict.py delete mode 100644 lib/simplejson/raw_json.py delete mode 100644 lib/simplejson/scanner.py delete mode 100644 lib/simplejson/tests/__init__.py delete mode 100644 lib/simplejson/tests/_cibw_runner.py delete mode 100644 lib/simplejson/tests/test_bigint_as_string.py delete mode 100644 lib/simplejson/tests/test_bitsize_int_as_string.py delete mode 100644 lib/simplejson/tests/test_check_circular.py delete mode 100644 lib/simplejson/tests/test_decimal.py delete mode 100644 lib/simplejson/tests/test_decode.py delete mode 100644 lib/simplejson/tests/test_default.py delete mode 100644 lib/simplejson/tests/test_dump.py delete mode 100644 lib/simplejson/tests/test_encode_basestring_ascii.py delete mode 100644 lib/simplejson/tests/test_encode_for_html.py delete mode 100644 lib/simplejson/tests/test_errors.py delete mode 100644 lib/simplejson/tests/test_fail.py delete mode 100644 lib/simplejson/tests/test_float.py delete mode 100644 lib/simplejson/tests/test_for_json.py delete mode 100644 lib/simplejson/tests/test_indent.py delete mode 100644 lib/simplejson/tests/test_item_sort_key.py delete mode 100644 lib/simplejson/tests/test_iterable.py delete mode 100644 lib/simplejson/tests/test_namedtuple.py delete mode 100644 lib/simplejson/tests/test_pass1.py delete mode 100644 lib/simplejson/tests/test_pass2.py delete mode 100644 lib/simplejson/tests/test_pass3.py delete mode 100644 lib/simplejson/tests/test_raw_json.py delete mode 100644 lib/simplejson/tests/test_recursion.py delete mode 100644 lib/simplejson/tests/test_scanstring.py delete mode 100644 lib/simplejson/tests/test_separators.py delete mode 100644 lib/simplejson/tests/test_speedups.py delete mode 100644 lib/simplejson/tests/test_str_subclass.py delete mode 100644 lib/simplejson/tests/test_subclass.py delete mode 100644 lib/simplejson/tests/test_tool.py delete mode 100644 lib/simplejson/tests/test_tuple.py delete mode 100644 lib/simplejson/tests/test_unicode.py delete mode 100644 lib/simplejson/tool.py delete mode 100644 lib/six.py delete mode 100644 lib/soupsieve/__init__.py delete mode 100644 lib/soupsieve/__meta__.py delete mode 100644 lib/soupsieve/css_match.py delete mode 100644 lib/soupsieve/css_parser.py delete mode 100644 lib/soupsieve/css_types.py delete mode 100644 lib/soupsieve/pretty.py delete mode 100644 lib/soupsieve/py.typed delete mode 100644 lib/soupsieve/util.py delete mode 100644 lib/tempora/__init__.py delete mode 100644 lib/tempora/schedule.py delete mode 100644 lib/tempora/tests/test_schedule.py delete mode 100644 lib/tempora/tests/test_timing.py delete mode 100644 lib/tempora/timing.py delete mode 100644 lib/tempora/utc.py delete mode 100644 lib/tokenize_rt.py delete mode 100644 lib/twitter/__init__.py delete mode 100644 lib/twitter/_file_cache.py delete mode 100644 lib/twitter/api.py delete mode 100644 lib/twitter/debug.py delete mode 100644 lib/twitter/error.py delete mode 100644 lib/twitter/models.py delete mode 100644 lib/twitter/parse_tweet.py delete mode 100644 lib/twitter/ratelimit.py delete mode 100644 lib/twitter/twitter_utils.py delete mode 100644 lib/typing_extensions.py delete mode 100644 lib/tzdata/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Africa/Abidjan delete mode 100644 lib/tzdata/zoneinfo/Africa/Accra delete mode 100644 lib/tzdata/zoneinfo/Africa/Addis_Ababa delete mode 100644 lib/tzdata/zoneinfo/Africa/Algiers delete mode 100644 lib/tzdata/zoneinfo/Africa/Asmara delete mode 100644 lib/tzdata/zoneinfo/Africa/Asmera delete mode 100644 lib/tzdata/zoneinfo/Africa/Bamako delete mode 100644 lib/tzdata/zoneinfo/Africa/Bangui delete mode 100644 lib/tzdata/zoneinfo/Africa/Banjul delete mode 100644 lib/tzdata/zoneinfo/Africa/Bissau delete mode 100644 lib/tzdata/zoneinfo/Africa/Blantyre delete mode 100644 lib/tzdata/zoneinfo/Africa/Brazzaville delete mode 100644 lib/tzdata/zoneinfo/Africa/Bujumbura delete mode 100644 lib/tzdata/zoneinfo/Africa/Cairo delete mode 100644 lib/tzdata/zoneinfo/Africa/Casablanca delete mode 100644 lib/tzdata/zoneinfo/Africa/Ceuta delete mode 100644 lib/tzdata/zoneinfo/Africa/Conakry delete mode 100644 lib/tzdata/zoneinfo/Africa/Dakar delete mode 100644 lib/tzdata/zoneinfo/Africa/Dar_es_Salaam delete mode 100644 lib/tzdata/zoneinfo/Africa/Djibouti delete mode 100644 lib/tzdata/zoneinfo/Africa/Douala delete mode 100644 lib/tzdata/zoneinfo/Africa/El_Aaiun delete mode 100644 lib/tzdata/zoneinfo/Africa/Freetown delete mode 100644 lib/tzdata/zoneinfo/Africa/Gaborone delete mode 100644 lib/tzdata/zoneinfo/Africa/Harare delete mode 100644 lib/tzdata/zoneinfo/Africa/Johannesburg delete mode 100644 lib/tzdata/zoneinfo/Africa/Juba delete mode 100644 lib/tzdata/zoneinfo/Africa/Kampala delete mode 100644 lib/tzdata/zoneinfo/Africa/Khartoum delete mode 100644 lib/tzdata/zoneinfo/Africa/Kigali delete mode 100644 lib/tzdata/zoneinfo/Africa/Kinshasa delete mode 100644 lib/tzdata/zoneinfo/Africa/Lagos delete mode 100644 lib/tzdata/zoneinfo/Africa/Libreville delete mode 100644 lib/tzdata/zoneinfo/Africa/Lome delete mode 100644 lib/tzdata/zoneinfo/Africa/Luanda delete mode 100644 lib/tzdata/zoneinfo/Africa/Lubumbashi delete mode 100644 lib/tzdata/zoneinfo/Africa/Lusaka delete mode 100644 lib/tzdata/zoneinfo/Africa/Malabo delete mode 100644 lib/tzdata/zoneinfo/Africa/Maputo delete mode 100644 lib/tzdata/zoneinfo/Africa/Maseru delete mode 100644 lib/tzdata/zoneinfo/Africa/Mbabane delete mode 100644 lib/tzdata/zoneinfo/Africa/Mogadishu delete mode 100644 lib/tzdata/zoneinfo/Africa/Monrovia delete mode 100644 lib/tzdata/zoneinfo/Africa/Nairobi delete mode 100644 lib/tzdata/zoneinfo/Africa/Ndjamena delete mode 100644 lib/tzdata/zoneinfo/Africa/Niamey delete mode 100644 lib/tzdata/zoneinfo/Africa/Nouakchott delete mode 100644 lib/tzdata/zoneinfo/Africa/Ouagadougou delete mode 100644 lib/tzdata/zoneinfo/Africa/Porto-Novo delete mode 100644 lib/tzdata/zoneinfo/Africa/Sao_Tome delete mode 100644 lib/tzdata/zoneinfo/Africa/Timbuktu delete mode 100644 lib/tzdata/zoneinfo/Africa/Tripoli delete mode 100644 lib/tzdata/zoneinfo/Africa/Tunis delete mode 100644 lib/tzdata/zoneinfo/Africa/Windhoek delete mode 100644 lib/tzdata/zoneinfo/Africa/__init__.py delete mode 100644 lib/tzdata/zoneinfo/America/Adak delete mode 100644 lib/tzdata/zoneinfo/America/Anchorage delete mode 100644 lib/tzdata/zoneinfo/America/Anguilla delete mode 100644 lib/tzdata/zoneinfo/America/Antigua delete mode 100644 lib/tzdata/zoneinfo/America/Araguaina delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Buenos_Aires delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Catamarca delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/ComodRivadavia delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Cordoba delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Jujuy delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/La_Rioja delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Mendoza delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Rio_Gallegos delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Salta delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/San_Juan delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/San_Luis delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Tucuman delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/Ushuaia delete mode 100644 lib/tzdata/zoneinfo/America/Argentina/__init__.py delete mode 100644 lib/tzdata/zoneinfo/America/Aruba delete mode 100644 lib/tzdata/zoneinfo/America/Asuncion delete mode 100644 lib/tzdata/zoneinfo/America/Atikokan delete mode 100644 lib/tzdata/zoneinfo/America/Atka delete mode 100644 lib/tzdata/zoneinfo/America/Bahia delete mode 100644 lib/tzdata/zoneinfo/America/Bahia_Banderas delete mode 100644 lib/tzdata/zoneinfo/America/Barbados delete mode 100644 lib/tzdata/zoneinfo/America/Belem delete mode 100644 lib/tzdata/zoneinfo/America/Belize delete mode 100644 lib/tzdata/zoneinfo/America/Blanc-Sablon delete mode 100644 lib/tzdata/zoneinfo/America/Boa_Vista delete mode 100644 lib/tzdata/zoneinfo/America/Bogota delete mode 100644 lib/tzdata/zoneinfo/America/Boise delete mode 100644 lib/tzdata/zoneinfo/America/Buenos_Aires delete mode 100644 lib/tzdata/zoneinfo/America/Cambridge_Bay delete mode 100644 lib/tzdata/zoneinfo/America/Campo_Grande delete mode 100644 lib/tzdata/zoneinfo/America/Cancun delete mode 100644 lib/tzdata/zoneinfo/America/Caracas delete mode 100644 lib/tzdata/zoneinfo/America/Catamarca delete mode 100644 lib/tzdata/zoneinfo/America/Cayenne delete mode 100644 lib/tzdata/zoneinfo/America/Cayman delete mode 100644 lib/tzdata/zoneinfo/America/Chicago delete mode 100644 lib/tzdata/zoneinfo/America/Chihuahua delete mode 100644 lib/tzdata/zoneinfo/America/Coral_Harbour delete mode 100644 lib/tzdata/zoneinfo/America/Cordoba delete mode 100644 lib/tzdata/zoneinfo/America/Costa_Rica delete mode 100644 lib/tzdata/zoneinfo/America/Creston delete mode 100644 lib/tzdata/zoneinfo/America/Cuiaba delete mode 100644 lib/tzdata/zoneinfo/America/Curacao delete mode 100644 lib/tzdata/zoneinfo/America/Danmarkshavn delete mode 100644 lib/tzdata/zoneinfo/America/Dawson delete mode 100644 lib/tzdata/zoneinfo/America/Dawson_Creek delete mode 100644 lib/tzdata/zoneinfo/America/Denver delete mode 100644 lib/tzdata/zoneinfo/America/Detroit delete mode 100644 lib/tzdata/zoneinfo/America/Dominica delete mode 100644 lib/tzdata/zoneinfo/America/Edmonton delete mode 100644 lib/tzdata/zoneinfo/America/Eirunepe delete mode 100644 lib/tzdata/zoneinfo/America/El_Salvador delete mode 100644 lib/tzdata/zoneinfo/America/Ensenada delete mode 100644 lib/tzdata/zoneinfo/America/Fort_Nelson delete mode 100644 lib/tzdata/zoneinfo/America/Fort_Wayne delete mode 100644 lib/tzdata/zoneinfo/America/Fortaleza delete mode 100644 lib/tzdata/zoneinfo/America/Glace_Bay delete mode 100644 lib/tzdata/zoneinfo/America/Godthab delete mode 100644 lib/tzdata/zoneinfo/America/Goose_Bay delete mode 100644 lib/tzdata/zoneinfo/America/Grand_Turk delete mode 100644 lib/tzdata/zoneinfo/America/Grenada delete mode 100644 lib/tzdata/zoneinfo/America/Guadeloupe delete mode 100644 lib/tzdata/zoneinfo/America/Guatemala delete mode 100644 lib/tzdata/zoneinfo/America/Guayaquil delete mode 100644 lib/tzdata/zoneinfo/America/Guyana delete mode 100644 lib/tzdata/zoneinfo/America/Halifax delete mode 100644 lib/tzdata/zoneinfo/America/Havana delete mode 100644 lib/tzdata/zoneinfo/America/Hermosillo delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Indianapolis delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Knox delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Marengo delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Petersburg delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Tell_City delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Vevay delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Vincennes delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/Winamac delete mode 100644 lib/tzdata/zoneinfo/America/Indiana/__init__.py delete mode 100644 lib/tzdata/zoneinfo/America/Indianapolis delete mode 100644 lib/tzdata/zoneinfo/America/Inuvik delete mode 100644 lib/tzdata/zoneinfo/America/Iqaluit delete mode 100644 lib/tzdata/zoneinfo/America/Jamaica delete mode 100644 lib/tzdata/zoneinfo/America/Jujuy delete mode 100644 lib/tzdata/zoneinfo/America/Juneau delete mode 100644 lib/tzdata/zoneinfo/America/Kentucky/Louisville delete mode 100644 lib/tzdata/zoneinfo/America/Kentucky/Monticello delete mode 100644 lib/tzdata/zoneinfo/America/Kentucky/__init__.py delete mode 100644 lib/tzdata/zoneinfo/America/Knox_IN delete mode 100644 lib/tzdata/zoneinfo/America/Kralendijk delete mode 100644 lib/tzdata/zoneinfo/America/La_Paz delete mode 100644 lib/tzdata/zoneinfo/America/Lima delete mode 100644 lib/tzdata/zoneinfo/America/Los_Angeles delete mode 100644 lib/tzdata/zoneinfo/America/Louisville delete mode 100644 lib/tzdata/zoneinfo/America/Lower_Princes delete mode 100644 lib/tzdata/zoneinfo/America/Maceio delete mode 100644 lib/tzdata/zoneinfo/America/Managua delete mode 100644 lib/tzdata/zoneinfo/America/Manaus delete mode 100644 lib/tzdata/zoneinfo/America/Marigot delete mode 100644 lib/tzdata/zoneinfo/America/Martinique delete mode 100644 lib/tzdata/zoneinfo/America/Matamoros delete mode 100644 lib/tzdata/zoneinfo/America/Mazatlan delete mode 100644 lib/tzdata/zoneinfo/America/Mendoza delete mode 100644 lib/tzdata/zoneinfo/America/Menominee delete mode 100644 lib/tzdata/zoneinfo/America/Merida delete mode 100644 lib/tzdata/zoneinfo/America/Metlakatla delete mode 100644 lib/tzdata/zoneinfo/America/Mexico_City delete mode 100644 lib/tzdata/zoneinfo/America/Miquelon delete mode 100644 lib/tzdata/zoneinfo/America/Moncton delete mode 100644 lib/tzdata/zoneinfo/America/Monterrey delete mode 100644 lib/tzdata/zoneinfo/America/Montevideo delete mode 100644 lib/tzdata/zoneinfo/America/Montreal delete mode 100644 lib/tzdata/zoneinfo/America/Montserrat delete mode 100644 lib/tzdata/zoneinfo/America/Nassau delete mode 100644 lib/tzdata/zoneinfo/America/New_York delete mode 100644 lib/tzdata/zoneinfo/America/Nipigon delete mode 100644 lib/tzdata/zoneinfo/America/Nome delete mode 100644 lib/tzdata/zoneinfo/America/Noronha delete mode 100644 lib/tzdata/zoneinfo/America/North_Dakota/Beulah delete mode 100644 lib/tzdata/zoneinfo/America/North_Dakota/Center delete mode 100644 lib/tzdata/zoneinfo/America/North_Dakota/New_Salem delete mode 100644 lib/tzdata/zoneinfo/America/North_Dakota/__init__.py delete mode 100644 lib/tzdata/zoneinfo/America/Nuuk delete mode 100644 lib/tzdata/zoneinfo/America/Ojinaga delete mode 100644 lib/tzdata/zoneinfo/America/Panama delete mode 100644 lib/tzdata/zoneinfo/America/Pangnirtung delete mode 100644 lib/tzdata/zoneinfo/America/Paramaribo delete mode 100644 lib/tzdata/zoneinfo/America/Phoenix delete mode 100644 lib/tzdata/zoneinfo/America/Port-au-Prince delete mode 100644 lib/tzdata/zoneinfo/America/Port_of_Spain delete mode 100644 lib/tzdata/zoneinfo/America/Porto_Acre delete mode 100644 lib/tzdata/zoneinfo/America/Porto_Velho delete mode 100644 lib/tzdata/zoneinfo/America/Puerto_Rico delete mode 100644 lib/tzdata/zoneinfo/America/Punta_Arenas delete mode 100644 lib/tzdata/zoneinfo/America/Rainy_River delete mode 100644 lib/tzdata/zoneinfo/America/Rankin_Inlet delete mode 100644 lib/tzdata/zoneinfo/America/Recife delete mode 100644 lib/tzdata/zoneinfo/America/Regina delete mode 100644 lib/tzdata/zoneinfo/America/Resolute delete mode 100644 lib/tzdata/zoneinfo/America/Rio_Branco delete mode 100644 lib/tzdata/zoneinfo/America/Rosario delete mode 100644 lib/tzdata/zoneinfo/America/Santa_Isabel delete mode 100644 lib/tzdata/zoneinfo/America/Santarem delete mode 100644 lib/tzdata/zoneinfo/America/Santiago delete mode 100644 lib/tzdata/zoneinfo/America/Santo_Domingo delete mode 100644 lib/tzdata/zoneinfo/America/Sao_Paulo delete mode 100644 lib/tzdata/zoneinfo/America/Scoresbysund delete mode 100644 lib/tzdata/zoneinfo/America/Shiprock delete mode 100644 lib/tzdata/zoneinfo/America/Sitka delete mode 100644 lib/tzdata/zoneinfo/America/St_Barthelemy delete mode 100644 lib/tzdata/zoneinfo/America/St_Johns delete mode 100644 lib/tzdata/zoneinfo/America/St_Kitts delete mode 100644 lib/tzdata/zoneinfo/America/St_Lucia delete mode 100644 lib/tzdata/zoneinfo/America/St_Thomas delete mode 100644 lib/tzdata/zoneinfo/America/St_Vincent delete mode 100644 lib/tzdata/zoneinfo/America/Swift_Current delete mode 100644 lib/tzdata/zoneinfo/America/Tegucigalpa delete mode 100644 lib/tzdata/zoneinfo/America/Thule delete mode 100644 lib/tzdata/zoneinfo/America/Thunder_Bay delete mode 100644 lib/tzdata/zoneinfo/America/Tijuana delete mode 100644 lib/tzdata/zoneinfo/America/Toronto delete mode 100644 lib/tzdata/zoneinfo/America/Tortola delete mode 100644 lib/tzdata/zoneinfo/America/Vancouver delete mode 100644 lib/tzdata/zoneinfo/America/Virgin delete mode 100644 lib/tzdata/zoneinfo/America/Whitehorse delete mode 100644 lib/tzdata/zoneinfo/America/Winnipeg delete mode 100644 lib/tzdata/zoneinfo/America/Yakutat delete mode 100644 lib/tzdata/zoneinfo/America/Yellowknife delete mode 100644 lib/tzdata/zoneinfo/America/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Casey delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Davis delete mode 100644 lib/tzdata/zoneinfo/Antarctica/DumontDUrville delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Macquarie delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Mawson delete mode 100644 lib/tzdata/zoneinfo/Antarctica/McMurdo delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Palmer delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Rothera delete mode 100644 lib/tzdata/zoneinfo/Antarctica/South_Pole delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Syowa delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Troll delete mode 100644 lib/tzdata/zoneinfo/Antarctica/Vostok delete mode 100644 lib/tzdata/zoneinfo/Antarctica/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Arctic/Longyearbyen delete mode 100644 lib/tzdata/zoneinfo/Arctic/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Asia/Aden delete mode 100644 lib/tzdata/zoneinfo/Asia/Almaty delete mode 100644 lib/tzdata/zoneinfo/Asia/Amman delete mode 100644 lib/tzdata/zoneinfo/Asia/Anadyr delete mode 100644 lib/tzdata/zoneinfo/Asia/Aqtau delete mode 100644 lib/tzdata/zoneinfo/Asia/Aqtobe delete mode 100644 lib/tzdata/zoneinfo/Asia/Ashgabat delete mode 100644 lib/tzdata/zoneinfo/Asia/Ashkhabad delete mode 100644 lib/tzdata/zoneinfo/Asia/Atyrau delete mode 100644 lib/tzdata/zoneinfo/Asia/Baghdad delete mode 100644 lib/tzdata/zoneinfo/Asia/Bahrain delete mode 100644 lib/tzdata/zoneinfo/Asia/Baku delete mode 100644 lib/tzdata/zoneinfo/Asia/Bangkok delete mode 100644 lib/tzdata/zoneinfo/Asia/Barnaul delete mode 100644 lib/tzdata/zoneinfo/Asia/Beirut delete mode 100644 lib/tzdata/zoneinfo/Asia/Bishkek delete mode 100644 lib/tzdata/zoneinfo/Asia/Brunei delete mode 100644 lib/tzdata/zoneinfo/Asia/Calcutta delete mode 100644 lib/tzdata/zoneinfo/Asia/Chita delete mode 100644 lib/tzdata/zoneinfo/Asia/Choibalsan delete mode 100644 lib/tzdata/zoneinfo/Asia/Chongqing delete mode 100644 lib/tzdata/zoneinfo/Asia/Chungking delete mode 100644 lib/tzdata/zoneinfo/Asia/Colombo delete mode 100644 lib/tzdata/zoneinfo/Asia/Dacca delete mode 100644 lib/tzdata/zoneinfo/Asia/Damascus delete mode 100644 lib/tzdata/zoneinfo/Asia/Dhaka delete mode 100644 lib/tzdata/zoneinfo/Asia/Dili delete mode 100644 lib/tzdata/zoneinfo/Asia/Dubai delete mode 100644 lib/tzdata/zoneinfo/Asia/Dushanbe delete mode 100644 lib/tzdata/zoneinfo/Asia/Famagusta delete mode 100644 lib/tzdata/zoneinfo/Asia/Gaza delete mode 100644 lib/tzdata/zoneinfo/Asia/Harbin delete mode 100644 lib/tzdata/zoneinfo/Asia/Hebron delete mode 100644 lib/tzdata/zoneinfo/Asia/Ho_Chi_Minh delete mode 100644 lib/tzdata/zoneinfo/Asia/Hong_Kong delete mode 100644 lib/tzdata/zoneinfo/Asia/Hovd delete mode 100644 lib/tzdata/zoneinfo/Asia/Irkutsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Istanbul delete mode 100644 lib/tzdata/zoneinfo/Asia/Jakarta delete mode 100644 lib/tzdata/zoneinfo/Asia/Jayapura delete mode 100644 lib/tzdata/zoneinfo/Asia/Jerusalem delete mode 100644 lib/tzdata/zoneinfo/Asia/Kabul delete mode 100644 lib/tzdata/zoneinfo/Asia/Kamchatka delete mode 100644 lib/tzdata/zoneinfo/Asia/Karachi delete mode 100644 lib/tzdata/zoneinfo/Asia/Kashgar delete mode 100644 lib/tzdata/zoneinfo/Asia/Kathmandu delete mode 100644 lib/tzdata/zoneinfo/Asia/Katmandu delete mode 100644 lib/tzdata/zoneinfo/Asia/Khandyga delete mode 100644 lib/tzdata/zoneinfo/Asia/Kolkata delete mode 100644 lib/tzdata/zoneinfo/Asia/Krasnoyarsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Kuala_Lumpur delete mode 100644 lib/tzdata/zoneinfo/Asia/Kuching delete mode 100644 lib/tzdata/zoneinfo/Asia/Kuwait delete mode 100644 lib/tzdata/zoneinfo/Asia/Macao delete mode 100644 lib/tzdata/zoneinfo/Asia/Macau delete mode 100644 lib/tzdata/zoneinfo/Asia/Magadan delete mode 100644 lib/tzdata/zoneinfo/Asia/Makassar delete mode 100644 lib/tzdata/zoneinfo/Asia/Manila delete mode 100644 lib/tzdata/zoneinfo/Asia/Muscat delete mode 100644 lib/tzdata/zoneinfo/Asia/Nicosia delete mode 100644 lib/tzdata/zoneinfo/Asia/Novokuznetsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Novosibirsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Omsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Oral delete mode 100644 lib/tzdata/zoneinfo/Asia/Phnom_Penh delete mode 100644 lib/tzdata/zoneinfo/Asia/Pontianak delete mode 100644 lib/tzdata/zoneinfo/Asia/Pyongyang delete mode 100644 lib/tzdata/zoneinfo/Asia/Qatar delete mode 100644 lib/tzdata/zoneinfo/Asia/Qostanay delete mode 100644 lib/tzdata/zoneinfo/Asia/Qyzylorda delete mode 100644 lib/tzdata/zoneinfo/Asia/Rangoon delete mode 100644 lib/tzdata/zoneinfo/Asia/Riyadh delete mode 100644 lib/tzdata/zoneinfo/Asia/Saigon delete mode 100644 lib/tzdata/zoneinfo/Asia/Sakhalin delete mode 100644 lib/tzdata/zoneinfo/Asia/Samarkand delete mode 100644 lib/tzdata/zoneinfo/Asia/Seoul delete mode 100644 lib/tzdata/zoneinfo/Asia/Shanghai delete mode 100644 lib/tzdata/zoneinfo/Asia/Singapore delete mode 100644 lib/tzdata/zoneinfo/Asia/Srednekolymsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Taipei delete mode 100644 lib/tzdata/zoneinfo/Asia/Tashkent delete mode 100644 lib/tzdata/zoneinfo/Asia/Tbilisi delete mode 100644 lib/tzdata/zoneinfo/Asia/Tehran delete mode 100644 lib/tzdata/zoneinfo/Asia/Tel_Aviv delete mode 100644 lib/tzdata/zoneinfo/Asia/Thimbu delete mode 100644 lib/tzdata/zoneinfo/Asia/Thimphu delete mode 100644 lib/tzdata/zoneinfo/Asia/Tokyo delete mode 100644 lib/tzdata/zoneinfo/Asia/Tomsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Ujung_Pandang delete mode 100644 lib/tzdata/zoneinfo/Asia/Ulaanbaatar delete mode 100644 lib/tzdata/zoneinfo/Asia/Ulan_Bator delete mode 100644 lib/tzdata/zoneinfo/Asia/Urumqi delete mode 100644 lib/tzdata/zoneinfo/Asia/Ust-Nera delete mode 100644 lib/tzdata/zoneinfo/Asia/Vientiane delete mode 100644 lib/tzdata/zoneinfo/Asia/Vladivostok delete mode 100644 lib/tzdata/zoneinfo/Asia/Yakutsk delete mode 100644 lib/tzdata/zoneinfo/Asia/Yangon delete mode 100644 lib/tzdata/zoneinfo/Asia/Yekaterinburg delete mode 100644 lib/tzdata/zoneinfo/Asia/Yerevan delete mode 100644 lib/tzdata/zoneinfo/Asia/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Azores delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Bermuda delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Canary delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Cape_Verde delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Faeroe delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Faroe delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Jan_Mayen delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Madeira delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Reykjavik delete mode 100644 lib/tzdata/zoneinfo/Atlantic/South_Georgia delete mode 100644 lib/tzdata/zoneinfo/Atlantic/St_Helena delete mode 100644 lib/tzdata/zoneinfo/Atlantic/Stanley delete mode 100644 lib/tzdata/zoneinfo/Atlantic/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Australia/ACT delete mode 100644 lib/tzdata/zoneinfo/Australia/Adelaide delete mode 100644 lib/tzdata/zoneinfo/Australia/Brisbane delete mode 100644 lib/tzdata/zoneinfo/Australia/Broken_Hill delete mode 100644 lib/tzdata/zoneinfo/Australia/Canberra delete mode 100644 lib/tzdata/zoneinfo/Australia/Currie delete mode 100644 lib/tzdata/zoneinfo/Australia/Darwin delete mode 100644 lib/tzdata/zoneinfo/Australia/Eucla delete mode 100644 lib/tzdata/zoneinfo/Australia/Hobart delete mode 100644 lib/tzdata/zoneinfo/Australia/LHI delete mode 100644 lib/tzdata/zoneinfo/Australia/Lindeman delete mode 100644 lib/tzdata/zoneinfo/Australia/Lord_Howe delete mode 100644 lib/tzdata/zoneinfo/Australia/Melbourne delete mode 100644 lib/tzdata/zoneinfo/Australia/NSW delete mode 100644 lib/tzdata/zoneinfo/Australia/North delete mode 100644 lib/tzdata/zoneinfo/Australia/Perth delete mode 100644 lib/tzdata/zoneinfo/Australia/Queensland delete mode 100644 lib/tzdata/zoneinfo/Australia/South delete mode 100644 lib/tzdata/zoneinfo/Australia/Sydney delete mode 100644 lib/tzdata/zoneinfo/Australia/Tasmania delete mode 100644 lib/tzdata/zoneinfo/Australia/Victoria delete mode 100644 lib/tzdata/zoneinfo/Australia/West delete mode 100644 lib/tzdata/zoneinfo/Australia/Yancowinna delete mode 100644 lib/tzdata/zoneinfo/Australia/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Brazil/Acre delete mode 100644 lib/tzdata/zoneinfo/Brazil/DeNoronha delete mode 100644 lib/tzdata/zoneinfo/Brazil/East delete mode 100644 lib/tzdata/zoneinfo/Brazil/West delete mode 100644 lib/tzdata/zoneinfo/Brazil/__init__.py delete mode 100644 lib/tzdata/zoneinfo/CET delete mode 100644 lib/tzdata/zoneinfo/CST6CDT delete mode 100644 lib/tzdata/zoneinfo/Canada/Atlantic delete mode 100644 lib/tzdata/zoneinfo/Canada/Central delete mode 100644 lib/tzdata/zoneinfo/Canada/Eastern delete mode 100644 lib/tzdata/zoneinfo/Canada/Mountain delete mode 100644 lib/tzdata/zoneinfo/Canada/Newfoundland delete mode 100644 lib/tzdata/zoneinfo/Canada/Pacific delete mode 100644 lib/tzdata/zoneinfo/Canada/Saskatchewan delete mode 100644 lib/tzdata/zoneinfo/Canada/Yukon delete mode 100644 lib/tzdata/zoneinfo/Canada/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Chile/Continental delete mode 100644 lib/tzdata/zoneinfo/Chile/EasterIsland delete mode 100644 lib/tzdata/zoneinfo/Chile/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Cuba delete mode 100644 lib/tzdata/zoneinfo/EET delete mode 100644 lib/tzdata/zoneinfo/EST delete mode 100644 lib/tzdata/zoneinfo/EST5EDT delete mode 100644 lib/tzdata/zoneinfo/Egypt delete mode 100644 lib/tzdata/zoneinfo/Eire delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+0 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+1 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+10 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+11 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+12 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+2 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+3 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+4 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+5 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+6 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+7 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+8 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT+9 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-0 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-1 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-10 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-11 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-12 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-13 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-14 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-2 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-3 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-4 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-5 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-6 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-7 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-8 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT-9 delete mode 100644 lib/tzdata/zoneinfo/Etc/GMT0 delete mode 100644 lib/tzdata/zoneinfo/Etc/Greenwich delete mode 100644 lib/tzdata/zoneinfo/Etc/UCT delete mode 100644 lib/tzdata/zoneinfo/Etc/UTC delete mode 100644 lib/tzdata/zoneinfo/Etc/Universal delete mode 100644 lib/tzdata/zoneinfo/Etc/Zulu delete mode 100644 lib/tzdata/zoneinfo/Etc/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Europe/Amsterdam delete mode 100644 lib/tzdata/zoneinfo/Europe/Andorra delete mode 100644 lib/tzdata/zoneinfo/Europe/Astrakhan delete mode 100644 lib/tzdata/zoneinfo/Europe/Athens delete mode 100644 lib/tzdata/zoneinfo/Europe/Belfast delete mode 100644 lib/tzdata/zoneinfo/Europe/Belgrade delete mode 100644 lib/tzdata/zoneinfo/Europe/Berlin delete mode 100644 lib/tzdata/zoneinfo/Europe/Bratislava delete mode 100644 lib/tzdata/zoneinfo/Europe/Brussels delete mode 100644 lib/tzdata/zoneinfo/Europe/Bucharest delete mode 100644 lib/tzdata/zoneinfo/Europe/Budapest delete mode 100644 lib/tzdata/zoneinfo/Europe/Busingen delete mode 100644 lib/tzdata/zoneinfo/Europe/Chisinau delete mode 100644 lib/tzdata/zoneinfo/Europe/Copenhagen delete mode 100644 lib/tzdata/zoneinfo/Europe/Dublin delete mode 100644 lib/tzdata/zoneinfo/Europe/Gibraltar delete mode 100644 lib/tzdata/zoneinfo/Europe/Guernsey delete mode 100644 lib/tzdata/zoneinfo/Europe/Helsinki delete mode 100644 lib/tzdata/zoneinfo/Europe/Isle_of_Man delete mode 100644 lib/tzdata/zoneinfo/Europe/Istanbul delete mode 100644 lib/tzdata/zoneinfo/Europe/Jersey delete mode 100644 lib/tzdata/zoneinfo/Europe/Kaliningrad delete mode 100644 lib/tzdata/zoneinfo/Europe/Kiev delete mode 100644 lib/tzdata/zoneinfo/Europe/Kirov delete mode 100644 lib/tzdata/zoneinfo/Europe/Lisbon delete mode 100644 lib/tzdata/zoneinfo/Europe/Ljubljana delete mode 100644 lib/tzdata/zoneinfo/Europe/London delete mode 100644 lib/tzdata/zoneinfo/Europe/Luxembourg delete mode 100644 lib/tzdata/zoneinfo/Europe/Madrid delete mode 100644 lib/tzdata/zoneinfo/Europe/Malta delete mode 100644 lib/tzdata/zoneinfo/Europe/Mariehamn delete mode 100644 lib/tzdata/zoneinfo/Europe/Minsk delete mode 100644 lib/tzdata/zoneinfo/Europe/Monaco delete mode 100644 lib/tzdata/zoneinfo/Europe/Moscow delete mode 100644 lib/tzdata/zoneinfo/Europe/Nicosia delete mode 100644 lib/tzdata/zoneinfo/Europe/Oslo delete mode 100644 lib/tzdata/zoneinfo/Europe/Paris delete mode 100644 lib/tzdata/zoneinfo/Europe/Podgorica delete mode 100644 lib/tzdata/zoneinfo/Europe/Prague delete mode 100644 lib/tzdata/zoneinfo/Europe/Riga delete mode 100644 lib/tzdata/zoneinfo/Europe/Rome delete mode 100644 lib/tzdata/zoneinfo/Europe/Samara delete mode 100644 lib/tzdata/zoneinfo/Europe/San_Marino delete mode 100644 lib/tzdata/zoneinfo/Europe/Sarajevo delete mode 100644 lib/tzdata/zoneinfo/Europe/Saratov delete mode 100644 lib/tzdata/zoneinfo/Europe/Simferopol delete mode 100644 lib/tzdata/zoneinfo/Europe/Skopje delete mode 100644 lib/tzdata/zoneinfo/Europe/Sofia delete mode 100644 lib/tzdata/zoneinfo/Europe/Stockholm delete mode 100644 lib/tzdata/zoneinfo/Europe/Tallinn delete mode 100644 lib/tzdata/zoneinfo/Europe/Tirane delete mode 100644 lib/tzdata/zoneinfo/Europe/Tiraspol delete mode 100644 lib/tzdata/zoneinfo/Europe/Ulyanovsk delete mode 100644 lib/tzdata/zoneinfo/Europe/Uzhgorod delete mode 100644 lib/tzdata/zoneinfo/Europe/Vaduz delete mode 100644 lib/tzdata/zoneinfo/Europe/Vatican delete mode 100644 lib/tzdata/zoneinfo/Europe/Vienna delete mode 100644 lib/tzdata/zoneinfo/Europe/Vilnius delete mode 100644 lib/tzdata/zoneinfo/Europe/Volgograd delete mode 100644 lib/tzdata/zoneinfo/Europe/Warsaw delete mode 100644 lib/tzdata/zoneinfo/Europe/Zagreb delete mode 100644 lib/tzdata/zoneinfo/Europe/Zaporozhye delete mode 100644 lib/tzdata/zoneinfo/Europe/Zurich delete mode 100644 lib/tzdata/zoneinfo/Europe/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Factory delete mode 100644 lib/tzdata/zoneinfo/GB delete mode 100644 lib/tzdata/zoneinfo/GB-Eire delete mode 100644 lib/tzdata/zoneinfo/GMT delete mode 100644 lib/tzdata/zoneinfo/GMT+0 delete mode 100644 lib/tzdata/zoneinfo/GMT-0 delete mode 100644 lib/tzdata/zoneinfo/GMT0 delete mode 100644 lib/tzdata/zoneinfo/Greenwich delete mode 100644 lib/tzdata/zoneinfo/HST delete mode 100644 lib/tzdata/zoneinfo/Hongkong delete mode 100644 lib/tzdata/zoneinfo/Iceland delete mode 100644 lib/tzdata/zoneinfo/Indian/Antananarivo delete mode 100644 lib/tzdata/zoneinfo/Indian/Chagos delete mode 100644 lib/tzdata/zoneinfo/Indian/Christmas delete mode 100644 lib/tzdata/zoneinfo/Indian/Cocos delete mode 100644 lib/tzdata/zoneinfo/Indian/Comoro delete mode 100644 lib/tzdata/zoneinfo/Indian/Kerguelen delete mode 100644 lib/tzdata/zoneinfo/Indian/Mahe delete mode 100644 lib/tzdata/zoneinfo/Indian/Maldives delete mode 100644 lib/tzdata/zoneinfo/Indian/Mauritius delete mode 100644 lib/tzdata/zoneinfo/Indian/Mayotte delete mode 100644 lib/tzdata/zoneinfo/Indian/Reunion delete mode 100644 lib/tzdata/zoneinfo/Indian/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Iran delete mode 100644 lib/tzdata/zoneinfo/Israel delete mode 100644 lib/tzdata/zoneinfo/Jamaica delete mode 100644 lib/tzdata/zoneinfo/Japan delete mode 100644 lib/tzdata/zoneinfo/Kwajalein delete mode 100644 lib/tzdata/zoneinfo/Libya delete mode 100644 lib/tzdata/zoneinfo/MET delete mode 100644 lib/tzdata/zoneinfo/MST delete mode 100644 lib/tzdata/zoneinfo/MST7MDT delete mode 100644 lib/tzdata/zoneinfo/Mexico/BajaNorte delete mode 100644 lib/tzdata/zoneinfo/Mexico/BajaSur delete mode 100644 lib/tzdata/zoneinfo/Mexico/General delete mode 100644 lib/tzdata/zoneinfo/Mexico/__init__.py delete mode 100644 lib/tzdata/zoneinfo/NZ delete mode 100644 lib/tzdata/zoneinfo/NZ-CHAT delete mode 100644 lib/tzdata/zoneinfo/Navajo delete mode 100644 lib/tzdata/zoneinfo/PRC delete mode 100644 lib/tzdata/zoneinfo/PST8PDT delete mode 100644 lib/tzdata/zoneinfo/Pacific/Apia delete mode 100644 lib/tzdata/zoneinfo/Pacific/Auckland delete mode 100644 lib/tzdata/zoneinfo/Pacific/Bougainville delete mode 100644 lib/tzdata/zoneinfo/Pacific/Chatham delete mode 100644 lib/tzdata/zoneinfo/Pacific/Chuuk delete mode 100644 lib/tzdata/zoneinfo/Pacific/Easter delete mode 100644 lib/tzdata/zoneinfo/Pacific/Efate delete mode 100644 lib/tzdata/zoneinfo/Pacific/Enderbury delete mode 100644 lib/tzdata/zoneinfo/Pacific/Fakaofo delete mode 100644 lib/tzdata/zoneinfo/Pacific/Fiji delete mode 100644 lib/tzdata/zoneinfo/Pacific/Funafuti delete mode 100644 lib/tzdata/zoneinfo/Pacific/Galapagos delete mode 100644 lib/tzdata/zoneinfo/Pacific/Gambier delete mode 100644 lib/tzdata/zoneinfo/Pacific/Guadalcanal delete mode 100644 lib/tzdata/zoneinfo/Pacific/Guam delete mode 100644 lib/tzdata/zoneinfo/Pacific/Honolulu delete mode 100644 lib/tzdata/zoneinfo/Pacific/Johnston delete mode 100644 lib/tzdata/zoneinfo/Pacific/Kanton delete mode 100644 lib/tzdata/zoneinfo/Pacific/Kiritimati delete mode 100644 lib/tzdata/zoneinfo/Pacific/Kosrae delete mode 100644 lib/tzdata/zoneinfo/Pacific/Kwajalein delete mode 100644 lib/tzdata/zoneinfo/Pacific/Majuro delete mode 100644 lib/tzdata/zoneinfo/Pacific/Marquesas delete mode 100644 lib/tzdata/zoneinfo/Pacific/Midway delete mode 100644 lib/tzdata/zoneinfo/Pacific/Nauru delete mode 100644 lib/tzdata/zoneinfo/Pacific/Niue delete mode 100644 lib/tzdata/zoneinfo/Pacific/Norfolk delete mode 100644 lib/tzdata/zoneinfo/Pacific/Noumea delete mode 100644 lib/tzdata/zoneinfo/Pacific/Pago_Pago delete mode 100644 lib/tzdata/zoneinfo/Pacific/Palau delete mode 100644 lib/tzdata/zoneinfo/Pacific/Pitcairn delete mode 100644 lib/tzdata/zoneinfo/Pacific/Pohnpei delete mode 100644 lib/tzdata/zoneinfo/Pacific/Ponape delete mode 100644 lib/tzdata/zoneinfo/Pacific/Port_Moresby delete mode 100644 lib/tzdata/zoneinfo/Pacific/Rarotonga delete mode 100644 lib/tzdata/zoneinfo/Pacific/Saipan delete mode 100644 lib/tzdata/zoneinfo/Pacific/Samoa delete mode 100644 lib/tzdata/zoneinfo/Pacific/Tahiti delete mode 100644 lib/tzdata/zoneinfo/Pacific/Tarawa delete mode 100644 lib/tzdata/zoneinfo/Pacific/Tongatapu delete mode 100644 lib/tzdata/zoneinfo/Pacific/Truk delete mode 100644 lib/tzdata/zoneinfo/Pacific/Wake delete mode 100644 lib/tzdata/zoneinfo/Pacific/Wallis delete mode 100644 lib/tzdata/zoneinfo/Pacific/Yap delete mode 100644 lib/tzdata/zoneinfo/Pacific/__init__.py delete mode 100644 lib/tzdata/zoneinfo/Poland delete mode 100644 lib/tzdata/zoneinfo/Portugal delete mode 100644 lib/tzdata/zoneinfo/ROC delete mode 100644 lib/tzdata/zoneinfo/ROK delete mode 100644 lib/tzdata/zoneinfo/Singapore delete mode 100644 lib/tzdata/zoneinfo/Turkey delete mode 100644 lib/tzdata/zoneinfo/UCT delete mode 100644 lib/tzdata/zoneinfo/US/Alaska delete mode 100644 lib/tzdata/zoneinfo/US/Aleutian delete mode 100644 lib/tzdata/zoneinfo/US/Arizona delete mode 100644 lib/tzdata/zoneinfo/US/Central delete mode 100644 lib/tzdata/zoneinfo/US/East-Indiana delete mode 100644 lib/tzdata/zoneinfo/US/Eastern delete mode 100644 lib/tzdata/zoneinfo/US/Hawaii delete mode 100644 lib/tzdata/zoneinfo/US/Indiana-Starke delete mode 100644 lib/tzdata/zoneinfo/US/Michigan delete mode 100644 lib/tzdata/zoneinfo/US/Mountain delete mode 100644 lib/tzdata/zoneinfo/US/Pacific delete mode 100644 lib/tzdata/zoneinfo/US/Samoa delete mode 100644 lib/tzdata/zoneinfo/US/__init__.py delete mode 100644 lib/tzdata/zoneinfo/UTC delete mode 100644 lib/tzdata/zoneinfo/Universal delete mode 100644 lib/tzdata/zoneinfo/W-SU delete mode 100644 lib/tzdata/zoneinfo/WET delete mode 100644 lib/tzdata/zoneinfo/Zulu delete mode 100644 lib/tzdata/zoneinfo/__init__.py delete mode 100644 lib/tzdata/zoneinfo/iso3166.tab delete mode 100644 lib/tzdata/zoneinfo/leapseconds delete mode 100644 lib/tzdata/zoneinfo/tzdata.zi delete mode 100644 lib/tzdata/zoneinfo/zone.tab delete mode 100644 lib/tzdata/zoneinfo/zone1970.tab delete mode 100644 lib/tzdata/zones delete mode 100644 lib/tzlocal/__init__.py delete mode 100644 lib/tzlocal/unix.py delete mode 100644 lib/tzlocal/utils.py delete mode 100644 lib/tzlocal/win32.py delete mode 100644 lib/tzlocal/windows_tz.py delete mode 100644 lib/urllib3/__init__.py delete mode 100644 lib/urllib3/_collections.py delete mode 100644 lib/urllib3/_version.py delete mode 100644 lib/urllib3/connection.py delete mode 100644 lib/urllib3/connectionpool.py delete mode 100644 lib/urllib3/contrib/__init__.py delete mode 100644 lib/urllib3/contrib/_appengine_environ.py delete mode 100644 lib/urllib3/contrib/_securetransport/__init__.py delete mode 100644 lib/urllib3/contrib/_securetransport/bindings.py delete mode 100644 lib/urllib3/contrib/_securetransport/low_level.py delete mode 100644 lib/urllib3/contrib/appengine.py delete mode 100644 lib/urllib3/contrib/ntlmpool.py delete mode 100644 lib/urllib3/contrib/pyopenssl.py delete mode 100644 lib/urllib3/contrib/securetransport.py delete mode 100644 lib/urllib3/contrib/socks.py delete mode 100644 lib/urllib3/exceptions.py delete mode 100644 lib/urllib3/fields.py delete mode 100644 lib/urllib3/filepost.py delete mode 100644 lib/urllib3/packages/__init__.py delete mode 100644 lib/urllib3/packages/backports/__init__.py delete mode 100644 lib/urllib3/packages/backports/makefile.py delete mode 100644 lib/urllib3/packages/six.py delete mode 100644 lib/urllib3/poolmanager.py delete mode 100644 lib/urllib3/request.py delete mode 100644 lib/urllib3/response.py delete mode 100644 lib/urllib3/util/__init__.py delete mode 100644 lib/urllib3/util/connection.py delete mode 100644 lib/urllib3/util/proxy.py delete mode 100644 lib/urllib3/util/queue.py delete mode 100644 lib/urllib3/util/request.py delete mode 100644 lib/urllib3/util/response.py delete mode 100644 lib/urllib3/util/retry.py delete mode 100644 lib/urllib3/util/ssl_.py delete mode 100644 lib/urllib3/util/ssl_match_hostname.py delete mode 100644 lib/urllib3/util/ssltransport.py delete mode 100644 lib/urllib3/util/timeout.py delete mode 100644 lib/urllib3/util/url.py delete mode 100644 lib/urllib3/util/wait.py delete mode 100644 lib/webencodings/__init__.py delete mode 100644 lib/webencodings/labels.py delete mode 100644 lib/webencodings/mklabels.py delete mode 100644 lib/webencodings/tests.py delete mode 100644 lib/webencodings/x_user_defined.py delete mode 100644 lib/websocket/__init__.py delete mode 100644 lib/websocket/_abnf.py delete mode 100644 lib/websocket/_app.py delete mode 100644 lib/websocket/_cookiejar.py delete mode 100644 lib/websocket/_core.py delete mode 100644 lib/websocket/_exceptions.py delete mode 100644 lib/websocket/_handshake.py delete mode 100644 lib/websocket/_http.py delete mode 100644 lib/websocket/_logging.py delete mode 100644 lib/websocket/_socket.py delete mode 100644 lib/websocket/_ssl_compat.py delete mode 100644 lib/websocket/_url.py delete mode 100644 lib/websocket/_utils.py delete mode 100644 lib/websocket/_wsdump.py delete mode 100644 lib/websocket/tests/__init__.py delete mode 100644 lib/websocket/tests/data/header01.txt delete mode 100644 lib/websocket/tests/data/header02.txt delete mode 100644 lib/websocket/tests/data/header03.txt delete mode 100644 lib/websocket/tests/echo-server.py delete mode 100644 lib/websocket/tests/test_abnf.py delete mode 100644 lib/websocket/tests/test_app.py delete mode 100644 lib/websocket/tests/test_cookiejar.py delete mode 100644 lib/websocket/tests/test_http.py delete mode 100644 lib/websocket/tests/test_url.py delete mode 100644 lib/websocket/tests/test_websocket.py delete mode 100644 lib/xmltodict.py delete mode 100644 lib/zc/lockfile/README.txt delete mode 100644 lib/zc/lockfile/__init__.py delete mode 100644 lib/zc/lockfile/tests.py delete mode 100644 lib/zipp.py delete mode 100644 package/Tautulli-macos.spec delete mode 100644 package/Tautulli-windows.spec delete mode 100644 package/Tautulli.nsi delete mode 100755 package/macos-scripts/postinstall delete mode 100755 package/macos-scripts/preinstall delete mode 100644 package/nsis-plugins/x86-unicode/nsProcess.dll delete mode 100644 package/requirements-package.txt delete mode 100644 plexpy/__init__.py delete mode 100644 plexpy/activity_handler.py delete mode 100644 plexpy/activity_pinger.py delete mode 100644 plexpy/activity_processor.py delete mode 100644 plexpy/api2.py delete mode 100644 plexpy/classes.py delete mode 100644 plexpy/common.py delete mode 100644 plexpy/config.py delete mode 100644 plexpy/database.py delete mode 100644 plexpy/datafactory.py delete mode 100644 plexpy/datatables.py delete mode 100644 plexpy/exceptions.py delete mode 100644 plexpy/exporter.py delete mode 100644 plexpy/graphs.py delete mode 100644 plexpy/helpers.py delete mode 100644 plexpy/http_handler.py delete mode 100644 plexpy/libraries.py delete mode 100644 plexpy/lock.py delete mode 100644 plexpy/log_reader.py delete mode 100644 plexpy/logger.py delete mode 100644 plexpy/macos.py delete mode 100644 plexpy/mobile_app.py delete mode 100644 plexpy/newsletter_handler.py delete mode 100644 plexpy/newsletters.py delete mode 100644 plexpy/notification_handler.py delete mode 100644 plexpy/notifiers.py delete mode 100644 plexpy/plex.py delete mode 100644 plexpy/plexivity_import.py delete mode 100644 plexpy/plextv.py delete mode 100644 plexpy/plexwatch_import.py delete mode 100644 plexpy/pmsconnect.py delete mode 100644 plexpy/request.py delete mode 100644 plexpy/session.py delete mode 100644 plexpy/users.py delete mode 100644 plexpy/version.py delete mode 100644 plexpy/versioncheck.py delete mode 100644 plexpy/web_socket.py delete mode 100644 plexpy/webauth.py delete mode 100644 plexpy/webserve.py delete mode 100644 plexpy/webstart.py delete mode 100644 plexpy/windows.py delete mode 100644 pylintrc delete mode 100644 requirements.txt delete mode 100644 snap/snapcraft.yaml delete mode 100755 start.bat delete mode 100755 start.sh diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 8f266283..00000000 --- a/.dockerignore +++ /dev/null @@ -1,11 +0,0 @@ -.git -.github -.gitignore -contrib -init-scripts -package -pylintrc -snap -*.md -!CHANGELOG*.md -start.bat diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 79319ae1..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,3 +0,0 @@ -github: JonnyWong16 -patreon: Tautulli -custom: ["https://bit.ly/2InPp15", "https://bit.ly/2WTq83m"] \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml deleted file mode 100644 index 34f617df..00000000 --- a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: Bug Report -description: Please do not use bug reports for support issues. -labels: ['status:awaiting-triage', 'type:bug'] -body: - - type: markdown - attributes: - value: | - **THIS IS NOT THE PLACE TO ASK FOR SUPPORT!** Please use [Discord](https://tautulli.com/discord) for support issues. - - type: textarea - id: description - attributes: - label: Describe the Bug - description: A clear and concise description of the bug. - validations: - required: true - - type: textarea - id: steps - attributes: - label: Steps to Reproduce - description: List each action required in order to reproduce the issue. - placeholder: | - 1. Go to '...' - 2. Click on '...' - 3. Scroll down to '...' - 4. See error - - type: textarea - id: expected - attributes: - label: Expected Behavior - description: A clear and concise description of what you expected to happen. - - type: textarea - id: screenshots - attributes: - label: Screenshots - description: Provide screenshots to help explain your problem. - - type: textarea - id: relevant - attributes: - label: Relevant Settings - description: Include all settings/configuration that are relevant to your issue. For example, Plex Media Server, newsletter, or notification settings. - placeholder: | - - eg. Plex Media Server IP address/port/checkboxes/proxy/etc. - - eg. Notification agent configuration/triggers/conditions/text/delay/grouping/etc. - - eg. Newsletter agent configuration/checkboxes/template/etc. - - Other settings - - type: input - id: version - attributes: - label: Tautulli Version - description: Check Tautulli Settings > Help & Info page. - placeholder: eg. v2.7.5 - validations: - required: true - - type: input - id: branch - attributes: - label: Git Branch - description: Check Tautulli Settings > Help & Info page. - placeholder: eg. master - validations: - required: true - - type: input - id: hash - attributes: - label: Git Commit Hash - description: Check Tautulli Settings > Help & Info page. - placeholder: eg. 2cc5bf812fe05e0666aeaeb37ed550c59816fb4c - validations: - required: true - - type: input - id: platform - attributes: - label: Platform and Version - description: Check Tautulli Settings > Help & Info page. - placeholder: eg. Windows 10 - validations: - required: true - - type: input - id: python - attributes: - label: Python Version - description: Check Tautulli Settings > Help & Info page. - placeholder: eg. 3.8.10 - validations: - required: true - - type: input - id: browser - attributes: - label: Browser and Version - placeholder: eg. Chrome 88 - validations: - required: true - - type: input - id: logs - attributes: - label: Link to Logs - description: Include a link to your **FULL** logs (not just a few lines) on [Gist](http://gist.github.com). - validations: - required: true - - type: markdown - attributes: - value: | - Make sure to close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it. diff --git a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml deleted file mode 100644 index 70e2ab33..00000000 --- a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Feature Request -description: Suggest a new feature for Tautulli. -labels: ['status:awaiting-triage', 'type:enhancement'] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to help improve Tautulli! - - type: textarea - id: problem - attributes: - label: Is your feature request related to a problem? - description: If so, please provide clear and concise description of the problem. - placeholder: eg. I'm always frustrated when '...' - - type: textarea - id: feature - attributes: - label: What is your feature request? - description: A clear and concise description of the feature. - validations: - required: true - - type: textarea - id: workaround - attributes: - label: Are there any workarounds? - description: A clear and concise description of any alternative solutions or features you've considered. - - type: textarea - id: additional - attributes: - label: Additional Context - description: Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 16aef760..00000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Tautulli Wiki - url: https://github.com/Tautulli/Tautulli/wiki - about: Please check the wiki to see if your question has already been answered. - - name: Discord - url: https://tautulli.com/discord - about: Please use Discord to ask for support. diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 1028cc5a..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - target-branch: "nightly" - open-pull-requests-limit: 20 - - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "daily" - target-branch: "nightly" - open-pull-requests-limit: 20 diff --git a/.github/label-actions.yml b/.github/label-actions.yml deleted file mode 100644 index ae236e9a..00000000 --- a/.github/label-actions.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Configuration for Label Actions - https://github.com/dessant/label-actions - -added: - comment: > - This feature has been added and will be available in the next release of Tautulli. - This issue will be automatically closed once the update is available. - -fixed: - comment: > - This bug has been fixed and will be available in the next release of Tautulli. - This issue will be automatically closed once the update is available. - -invalid:duplicate: - comment: > - :wave: @{issue-author}, this appears to be a duplicate of a pre-existing issue. - close: true - lock: true - unlabel: 'status:awaiting-triage' - --invalid:duplicate: - reopen: true - unlock: true - -invalid:support: - comment: > - :wave: @{issue-author}, we use the issue tracker exclusively for bug reports. - However, this issue appears to be a support request. Please use our - [Discord Server](https://tautulli.com/discord) to get help with Tautulli. Thanks. - close: true - lock: true - lock-reason: 'off-topic' - unlabel: 'status:awaiting-triage' - --invalid:support: - reopen: true - unlock: true - -invalid:template-incomplete: - issues: - comment: > - :wave: @{issue-author}, please edit your issue to complete the template with - all the required info. Your issue will be automatically closed in 5 days if - the template is not completed. Thanks. - prs: - comment: > - :wave: @{issue-author}, please edit your PR to complete the template with - all the required info. Your PR will be automatically closed in 5 days if - the template is not completed. Thanks. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 63ab24be..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,26 +0,0 @@ -## Description - -Please include a summary of the changes. - -### Screenshot - -Include screenshots if the changes are UI-related. - -### Issues Fixed or Closed - -- Fixes #(issue) - -## Type of Change - -Please delete options that are not relevant. - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - -## Checklist - -- [ ] My code follows the style guidelines of this project -- [ ] I have performed a self-review of my own code -- [ ] I have commented my code, particularly in hard-to-understand areas -- [ ] I have added or updated the docstring for new or existing methods diff --git a/.github/workflows/issues-stale.yml b/.github/workflows/issues-stale.yml deleted file mode 100644 index 4605bcec..00000000 --- a/.github/workflows/issues-stale.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Stale Issues / PRs - -on: - schedule: - - cron: '00 19 * * *' - -jobs: - stale: - name: Check Issues / PRs - runs-on: ubuntu-latest - steps: - - name: Stale - uses: actions/stale@v5 - with: - stale-issue-message: > - This issue is stale because it has been open for 30 days with no activity. - Remove the stale label or comment, otherwise this will be closed in 5 days. - close-issue-message: > - This issue was closed because it has been stalled for 5 days with no activity. - stale-issue-label: 'stale' - exempt-issue-labels: 'added,fixed,type:enhancement,status:awaiting-triage,status:in-progress' - stale-pr-message: > - This PR is stale because it has been open for 30 days with no activity. - Remove the stale label or comment, otherwise this will be closed in 5 days. - close-pr-message: > - This PR was closed because it has been stalled for 5 days with no activity. - stale-pr-label: 'stale' - exempt-pr-labels: 'status:in-progress,status:in-review,dependencies' - days-before-stale: 30 - days-before-close: 5 - - - name: Invalid Template - uses: actions/stale@v5 - with: - stale-issue-message: > - Invalid issues template. - close-issue-message: > - This issue was closed because the the template was not completed after 5 days. - stale-issue-label: 'invalid:template-incomplete' - stale-pr-message: > - Invalid PR template. - close-pr-message: > - This PR was closed because the the template was not completed after 5 days. - stale-pr-label: 'invalid:template-incomplete' - exempt-pr-labels: 'status:in-progress,status:in-review,dependencies' - only-labels: 'invalid:template-incomplete' - days-before-stale: 0 - days-before-close: 5 diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml deleted file mode 100644 index 728cd8c9..00000000 --- a/.github/workflows/issues.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Issues - -on: - issues: - types: [labeled, unlabeled] - -jobs: - label: - name: Label Issues - runs-on: ubuntu-latest - steps: - - name: Label Issues - uses: dessant/label-actions@v2 - with: - github-token: ${{ github.token }} diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml deleted file mode 100644 index 64747d4c..00000000 --- a/.github/workflows/publish-docker.yml +++ /dev/null @@ -1,115 +0,0 @@ -name: Publish Docker - -on: - push: - branches: [master, beta, nightly] - tags: [v*] - -jobs: - build-docker: - name: Build Docker Image - runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} - steps: - - name: Checkout Code - uses: actions/checkout@v3.0.2 - - - name: Prepare - id: prepare - run: | - if [[ $GITHUB_REF == refs/tags/* ]]; then - echo ::set-output name=tag::${GITHUB_REF#refs/tags/} - elif [[ $GITHUB_REF == refs/heads/master ]]; then - echo ::set-output name=tag::latest - else - echo ::set-output name=tag::${GITHUB_REF#refs/heads/} - fi - if [[ $GITHUB_REF == refs/tags/*-beta ]]; then - echo ::set-output name=branch::beta - elif [[ $GITHUB_REF == refs/tags/* ]]; then - echo ::set-output name=branch::master - else - echo ::set-output name=branch::${GITHUB_REF#refs/heads/} - fi - echo ::set-output name=commit::${GITHUB_SHA} - echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=docker_platforms::linux/amd64,linux/arm64/v8,linux/arm/v7,linux/arm/v6 - echo ::set-output name=docker_image::${{ secrets.DOCKER_REPO }}/tautulli - - - name: Set Up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - id: buildx - with: - version: latest - - - name: Cache Docker Layers - uses: actions/cache@v3.0.3 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to DockerHub - uses: docker/login-action@v2 - if: success() - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2 - if: success() - with: - registry: ghcr.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.GHCR_TOKEN }} - - - name: Docker Build and Push - uses: docker/build-push-action@v3 - if: success() - with: - context: . - file: ./Dockerfile - push: true - platforms: ${{ steps.prepare.outputs.docker_platforms }} - build-args: | - TAG=${{ steps.prepare.outputs.tag }} - BRANCH=${{ steps.prepare.outputs.branch }} - COMMIT=${{ steps.prepare.outputs.commit }} - BUILD_DATE=${{ steps.prepare.outputs.build_date }} - tags: | - ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.tag }} - ghcr.io/${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.tag }} - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache - - discord: - name: Discord Notification - needs: build-docker - if: always() && !contains(github.event.head_commit.message, '[skip ci]') - runs-on: ubuntu-latest - steps: - - name: Get Build Job Status - uses: technote-space/workflow-conclusion-action@v2.2 - - - name: Combine Job Status - id: status - run: | - failures=(neutral, skipped, timed_out, action_required) - if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure - else - echo ::set-output name=status::$WORKFLOW_CONCLUSION - fi - - - name: Post Status to Discord - uses: sarisia/actions-status-discord@v1 - with: - webhook: ${{ secrets.DISCORD_WEBHOOK }} - status: ${{ steps.status.outputs.status }} - title: ${{ github.workflow }} - nofail: true diff --git a/.github/workflows/publish-installers.yml b/.github/workflows/publish-installers.yml deleted file mode 100644 index bb100a2e..00000000 --- a/.github/workflows/publish-installers.yml +++ /dev/null @@ -1,189 +0,0 @@ -name: Publish Installers - -on: - push: - branches: [master, beta, nightly] - tags: [v*] - -jobs: - build-installer: - name: Build ${{ matrix.os_upper }} Installer - runs-on: ${{ matrix.os }}-latest - if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} - strategy: - fail-fast: false - matrix: - include: - - os: 'windows' - os_upper: 'Windows' - ext: 'exe' - - os: 'macos' - os_upper: 'MacOS' - ext: 'pkg' - - steps: - - name: Checkout Code - uses: actions/checkout@v3.0.2 - - - name: Set Release Version - id: get_version - shell: bash - run: | - if [[ $GITHUB_REF == refs/tags/* ]]; then - echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV - VERSION_NSIS=${GITHUB_REF#refs/tags/v}.1 - echo ::set-output name=VERSION_NSIS::${VERSION_NSIS/%-beta.1/.0} - echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} - echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} - else - echo "VERSION=0.0.0" >> $GITHUB_ENV - echo ::set-output name=VERSION_NSIS::0.0.0.0 - echo ::set-output name=VERSION::0.0.0 - echo ::set-output name=RELEASE_VERSION::${GITHUB_SHA::7} - fi - if [[ $GITHUB_REF == refs/tags/*-beta ]]; then - echo "beta" > branch.txt - elif [[ $GITHUB_REF == refs/tags/* ]]; then - echo "master" > branch.txt - else - echo ${GITHUB_REF#refs/heads/} > branch.txt - fi - echo $GITHUB_SHA > version.txt - - - name: Set Up Python - uses: actions/setup-python@v3.1.2 - with: - python-version: 3.9 - - - name: Cache Dependencies - uses: actions/cache@v3.0.3 - with: - path: ~\AppData\Local\pip\Cache - key: ${{ runner.os }}-pip-${{ hashFiles('package/requirements-package.txt') }} - restore-keys: ${{ runner.os }}-pip- - - - name: Install Dependencies - run: | - python -m pip install --upgrade pip - pip install -r package/requirements-package.txt - - - name: Build Package - run: | - pyinstaller -y ./package/Tautulli-${{ matrix.os }}.spec - - - name: Create Windows Installer - uses: joncloud/makensis-action@v3.6 - if: matrix.os == 'windows' - with: - script-file: ./package/Tautulli.nsi - arguments: > - /DVERSION=${{ steps.get_version.outputs.VERSION_NSIS }} - /DINSTALLER_NAME=..\Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.exe - additional-plugin-paths: package/nsis-plugins - - - name: Create MacOS Installer - if: matrix.os == 'macos' - run: | - sudo pkgbuild \ - --install-location /Applications \ - --version ${{ steps.get_version.outputs.VERSION }} \ - --component ./dist/Tautulli.app \ - --scripts ./package/macos-scripts \ - Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.pkg - - - name: Upload Installer - uses: actions/upload-artifact@v3 - with: - name: Tautulli-${{ matrix.os }}-installer - path: Tautulli-${{ matrix.os }}-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.${{ matrix.ext }} - - release: - name: Release Installers - needs: build-installer - if: always() && startsWith(github.ref, 'refs/tags/') && !contains(github.event.head_commit.message, '[skip ci]') - runs-on: ubuntu-latest - steps: - - name: Get Build Job Status - uses: technote-space/workflow-conclusion-action@v2.2 - - - name: Checkout Code - uses: actions/checkout@v3.0.2 - - - name: Set Release Version - id: get_version - run: | - echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} - - - name: Download Installers - if: env.WORKFLOW_CONCLUSION == 'success' - uses: actions/download-artifact@v3 - - - name: Get Changelog - id: get_changelog - run: | - echo ::set-output name=CHANGELOG::"$( sed -n '/^## /{p; :loop n; p; /^## /q; b loop}' CHANGELOG.md \ - | sed '$d' | sed '$d' | sed '$d' | sed ':a;N;$!ba;s/\n/%0A/g' )" - - - name: Create Release - uses: actions/create-release@v1 - id: create_release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.get_version.outputs.RELEASE_VERSION }} - release_name: Tautulli ${{ steps.get_version.outputs.RELEASE_VERSION }} - body: | - ## Changelog - - ##${{ steps.get_changelog.outputs.CHANGELOG }} - draft: false - prerelease: ${{ endsWith(steps.get_version.outputs.RELEASE_VERSION, '-beta') }} - - - name: Upload Windows Installer - uses: actions/upload-release-asset@v1 - if: env.WORKFLOW_CONCLUSION == 'success' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: Tautulli-windows-installer/Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.exe - asset_name: Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.exe - asset_content_type: application/vnd.microsoft.portable-executable - - - name: Upload MacOS Installer - uses: actions/upload-release-asset@v1 - if: env.WORKFLOW_CONCLUSION == 'success' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: Tautulli-macos-installer/Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.pkg - asset_name: Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.pkg - asset_content_type: application/vnd.apple.installer+xml - - discord: - name: Discord Notification - needs: [build-installer, release] - if: always() && !contains(github.event.head_commit.message, '[skip ci]') - runs-on: ubuntu-latest - steps: - - name: Get Build Job Status - uses: technote-space/workflow-conclusion-action@v2.2 - - - name: Combine Job Status - id: status - run: | - failures=(neutral, skipped, timed_out, action_required) - if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure - else - echo ::set-output name=status::$WORKFLOW_CONCLUSION - fi - - - name: Post Status to Discord - uses: sarisia/actions-status-discord@v1 - with: - webhook: ${{ secrets.DISCORD_WEBHOOK }} - status: ${{ steps.status.outputs.status }} - title: ${{ github.workflow }} - nofail: true diff --git a/.github/workflows/publish-snap.yml b/.github/workflows/publish-snap.yml deleted file mode 100644 index 1d365996..00000000 --- a/.github/workflows/publish-snap.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Publish Snap - -on: - push: - branches: [master, beta, nightly] - tags: [v*] - -jobs: - build-snap: - name: Build Snap Package (${{ matrix.architecture }}) - runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} - strategy: - fail-fast: false - matrix: - architecture: - - i386 - - amd64 - - arm64 - - armhf - - ppc64el - #- s390x # broken at the moment - steps: - - name: Checkout Code - uses: actions/checkout@v3.0.2 - - - name: Prepare - id: prepare - run: | - git fetch --prune --unshallow --tags - if [[ $GITHUB_REF == refs/tags/*-beta || $GITHUB_REF == refs/heads/beta ]]; then - echo ::set-output name=RELEASE::beta - elif [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then - echo ::set-output name=RELEASE::stable - else - echo ::set-output name=RELEASE::edge - fi - - - name: Set Up QEMU - uses: docker/setup-qemu-action@v2 - with: - image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde - - - name: Build Snap Package - uses: diddlesnaps/snapcraft-multiarch-action@v1 - id: build - with: - architecture: ${{ matrix.architecture }} - - - name: Upload Snap Package - uses: actions/upload-artifact@v3 - with: - name: Tautulli-snap-package-${{ matrix.architecture }} - path: ${{ steps.build.outputs.snap }} - - - name: Review Snap Package - uses: diddlesnaps/snapcraft-review-tools-action@v1 - with: - snap: ${{ steps.build.outputs.snap }} - - - name: Publish Snap Package - uses: snapcore/action-publish@v1 - if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/nightly' - with: - store_login: ${{ secrets.SNAP_LOGIN }} - snap: ${{ steps.build.outputs.snap }} - release: ${{ steps.prepare.outputs.RELEASE }} - - discord: - name: Discord Notification - needs: build-snap - if: always() && !contains(github.event.head_commit.message, '[skip ci]') - runs-on: ubuntu-latest - steps: - - name: Get Build Job Status - uses: technote-space/workflow-conclusion-action@v2.2 - - - name: Combine Job Status - id: status - run: | - failures=(neutral, skipped, timed_out, action_required) - if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure - else - echo ::set-output name=status::$WORKFLOW_CONCLUSION - fi - - - name: Post Status to Discord - uses: sarisia/actions-status-discord@v1 - with: - webhook: ${{ secrets.DISCORD_WEBHOOK }} - status: ${{ steps.status.outputs.status }} - title: ${{ github.workflow }} - nofail: true diff --git a/.github/workflows/pull-requests.yml b/.github/workflows/pull-requests.yml deleted file mode 100644 index 08f92507..00000000 --- a/.github/workflows/pull-requests.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Pull Requests - -on: - pull_request_target: - types: [opened, synchronize, edited, reopened] - -jobs: - check-branch: - name: Check Pull Request - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v3.0.2 - - - name: Comment on Pull Request - uses: mshick/add-pr-comment@v1 - if: github.base_ref != 'nightly' - with: - message: Pull requests must be made to the `nightly` branch. Thanks. - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - - - name: Fail Workflow - if: github.base_ref != 'nightly' - run: | - echo Base: "$GITHUB_BASE_REF" - echo Head: "$GITHUB_HEAD_REF" - exit 1 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 68d5abaf..00000000 --- a/.gitignore +++ /dev/null @@ -1,100 +0,0 @@ - -# Compiled source # -################### -__pycache__ -*.pyc -*.py~ -*.pyproj -*.sln - -# PlexPy files # -###################### -*.log -*.db* -*.db-journal -*.ini -release.lock -version.lock -lib/*.dist-info -lib/*.egg-info -lib/*.pth -lib/*/*.pyd -lib/_distutils_hack -lib/pkg_resources -lib/setuptools -logs/* -backups/* -cache/* -exports/* -newsletters/* -*.mmdb -version.txt -branch.txt -.TEST - -# HTTPS Cert/Key # -################## -/*.crt -/*.key -/*.csr -/*.pem - -# Mergetool -*.orgin - -# OS generated files # -###################### -.DS_Store? -.DS_Store -ehthumbs.db -Icon? -Thumbs.db - -#Ignore files generated by PyCharm -*.idea/* - -#Ignore files generated by vi -*.swp - -#Ignore files build by Visual Studio -*.obj -*.exe -*.pdb -*.user -*.aps -*.pch -*.vspscc -*_i.c -*_p.c -*.ncb -*.suo -*.tlb -*.tlh -*.bak -*.cache -*.ilk -[Bb]in -[Dd]ebug*/ -*.lib -*.sbr -obj/ -[Rr]elease*/ -_ReSharper*/ -[Tt]est[Rr]esult* -/cache -/logs -.project -.pydevproject - -#Ignore files generated by pyinstaller -/build -/dist - -#snapcraft specifics -/parts/ -/stage/ -/prime/ -*.snap -.snapcraft -*_source.tar.bz2 -snap/.snapcraft \ No newline at end of file diff --git a/API.md b/API.md deleted file mode 100644 index 827c7c6b..00000000 --- a/API.md +++ /dev/null @@ -1,3 +0,0 @@ -# API Reference - -Tautulli API documentation has been moved to the [wiki page](https://github.com/Tautulli/Tautulli/wiki/Tautulli-API-Reference). \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 64a1c5f9..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,2527 +0,0 @@ -# Changelog - -## v2.10.2 (2022-07-03) - -* Activity: - * Fix: Incorrect audio stream info shown on the activity card when playing a secondary audio track. -* UI: - * Fix: Usernames not showing on the home statistics cards. - * Fix: Do not save a user's friendly name if it is the same as the username. - * Change: Update library icons to the latest Plex style. - - -## v2.10.1 (2022-06-01) - -* Notifications: - * New: Added support for MusicBrainz (mbid://) guids in notification parameters without MusicBrainz lookup enabled. Requires Plex Media Server 1.27.0 or newer with refreshed Plex Music agent metadata. -* Mobile App: - * Fix: OneSignal validation failing when registering a device. -* API: - * New: Added grandparent_guids and parent_guids to get_metadata API command. - * Change: Updated continent in get_geoip_lookup API command. - * Change: Removed server_token from from get_users API command. - * Change: shared_libraries changed to a list instead of a string for get_users API command. - - -## v2.10.0 (2022-05-23) - -* Activity: - * Fix: Detection of Dolby Vision missing for PMS 1.26.1. -* Notifications: - * Fix: Parsing of filename notification parameter incorrect for Windows PMS. -* Exporter: - * New: Added additional theme and label export fields. -* UI: - * Fix: Slow loading of collections and playlists tables. - * Change: Update default user thumbnail image to match Plex Web. -* API: - * Change: Values for get_users_table and get_libraries_table return an integer instead of "Checked". - - -## v2.9.7 (2022-04-11) - -* UI: - * Fix: Managed user missing the username in the Users table. - - -## v2.9.6 (2022-04-10) - -* Activity: - * New: Improved display of dynamic range on the activity cards. (Thanks @herby2212) -* Notifications: - * Change: Make include summary option apply to all media types for Discord and Slack notifications. -* UI: - * Fix: Validating Plex login in the setup wizard. (#1697) - * New: Added hidden username, email, and full name columns to users table. -* Other: - * Fix: Apply pms_timeout setting to websocket connection. - * Fix: Importing of Plex username instead of the full name. (#1710) - - -## v2.9.5 (2022-03-26) - -* Note: - * Updated Snap packages are currently unavailable due to an upstream issue. -* Activity: - * Change: Improve calculation for transcode progress bar percentage on the activity cards. -* History: - * Fix: Live TV history filter not working. (#1691) -* Newsletter: - * Fix: Newsletter not showing different album types. (#1559) -* UI: - * Fix: Display season summary on the media info page if available with a fallback to show summary. (#1657) - * Change: Colour active filter buttons to improve contrast. (#1663) -* API: - * New: Added transcode offset keys to get_activity command. -* Other: - * Fix: Reschedule backup task after changing backup interval. (#1662) - * Fix: Dynamic anonymous redirect setting not being enabled by default after the setup wizard. - * Fix: Usernames with special characters not being filtered in the logs. - - -## v2.9.4 (2022-02-12) - -* UI: - * Fix: Setup wizard appearing when restarting after saving settings. -* Other: - * Fix: Stop Tautulli from starting multiple instances on Windows after a clean reinstall. Check the startup items in Windows Task Manager if it is still occurring. - - -## v2.9.3 (2022-02-09) - -* UI: - * Fix: Setup wizard looping. -* Other: - * Fix: Logger username masking preventing Tautulli from starting on new installs. - - -## v2.9.2 (2022-02-08) - -* Notification: - * New: Added support for additional Telegram HTML tags. - * Removed: Revert Telegram defaulting to MarkdownV2 and only support HTML. (#1635) -* Other: - * Fix: The Local user being masked in the logs. - - -## v2.9.1 (2022-02-07) - -* Other: - * Fix: Incorrect changelog version number and date. - - -## v2.9.0 (2022-02-07) - -* Notification: - * New: Added track disc number notification parameter. - * Change: Default Telegram messages to MarkdownV2 when HTML is disabled. (#1635) -* Exporter: - * Fix: Images not being included in export zip file download. -* UI: - * Fix: Favicon missing from the newsletter authentication page. - * Fix: IPv6 details not being shown in IP address modal. (#1629) - * Fix: PWA not respecting device rotation settings. (#1633) - * New: Added intermediary login page to the Plex XML shortcuts. - * New: Added setting to mask usernames in logs (enabled by default). - * New: Added location, secure connection, and Plex Relay details to IP address modal. - * Change: Remove Plex token from the settings page. - * Change: Increase verifying server timeout to 30 seconds. -* API: - * New: Added get_tautulli_info API command. - * New: Added location, secure, and relayed to get_history API response. - * Change: Null pms_token and jwt_token in the response of the get_settings API command. (#1616) -* Other: - * Fix: Better validation of config when saving settings. - * Fix: Correct section_id and prevent rating_key collisions when updating metadata. (#1640) - * Change: Proxy Plex token check and Plex downloads json through the Tautulli server. - * Change: Remove tokens from downloaded database and config files. - * Change: Do not import pms_token or jwt_secret when importing a config file. - - -## v2.8.1 (2022-01-04) - -* API: - * New: Added grouping and query_days parameters to the get_item_watch_time_stats API command. - * New: Added grouping parameter to the get_item_user_stats API command. - * New: Added total_time to the get_library_user_stats, get_user_player_stats, and get_item_user_stats API command responses. - * Removed: media_type parameter no longer required for the get_item_watch_time_stats, and get_item_user_stats API commands. The media type is determined automatically. -* Other: - * Fix: Clean .pyc files automatically after updating. - * New: Allow Snap package to access /media and /mnt locations. Refer to the FAQ for instructions on how to enable access. - - -## v2.8.0 (2021-12-15) - -* History: - * Fix: Live TV history filter not working correctly when combined with other filters. - * Fix: Direct Stream history filter not remembering the state when reloading the page. - * Fix: History table not loading when no filters are selected. - * New: Added watch time and user stats to media info pages. (Thanks @herby2212) (#1417, #1471) -* Notifications: - * New: Added Microsoft Teams notification agent. (#1514) - * New: Added Gotify notification agent. (#1584) - * New: Add warning message that passwords are not copied when duplicating a notification or newsletter agent. (#1540) -* Newsletters: - * Fix: Different album types not shown on newsletter. (#1559) -* Exporter: - * New: Added album formats, subformats, and sonic analysis export fields. -* UI: - * Fix: Docker config volume message overlapping modal windows. (#1567) - * Fix: Different album types not shown on artist media info page. - * New: Added show more/less toggle for summaries on media info pages. (#1546) - * Change: Do not save datatable page or search states when reloading the page. (#1532) - * Change: Improve the Plex log reader. -* API: - * New: Added before and after parameters to the get_history API command. -* Other: - * Fix: Updated Python dependencies. (#1499) - * Fix: Some websocket connections not respecting the verify SSL setting. (Thanks @nmaggioni) (#1541) - * New: Support for Python 3.10. (#1522) - * New: Added dynamic anonymous redirect service setting. (#1526) - - -## v2.7.7 (2021-10-14) - -* Notifications: - * Fix: Colons and exclamation marks being replaced outside of expressions. - * New: Added LunaSea notification agent. Note: Requires a future LunaSea app update to function. -* Newsletters: - * Fix: Star rating not showing on newsletter with the new Plex metadata agents. (#1511) -* UI: - * Fix: Sorting of mobile devices table with uppercase and lowercase device names. - * Fix: Various dropdown menus with centered text to left-aligned text. -* Other: - * Fix: Plex.tv account token not changing when fetching a new token. - * New: Added check and warning message for missing Docker container volume mount. - - -## v2.7.6 (2021-08-31) - -* Notifications: - * Fix: Unable to parse colons (:) and exclamation marks (!) in notification text eval strings. -* Exporter: - * Fix: Unable to export playlists and collections from a library. (#1484) - * New: Added new episode export fields. -* Mobile App: - * Fix: Unable to scan QR code with dark mode enabled. - * New: Tautulli Remote App is out of beta for iOS and can be downloaded in the App Store. -* Other: - * New: Update PlexAPI to 4.6.3. - * New: Added popup alert message for Windows and macOS when Tautulli fails to start. - - -## v2.7.5 (2021-07-15) - -* History: - * Fix: Guest users were unable to view history. - * Fix: Most Active Library statistics was counting deleted libraries. -* Newsletters: - * Fix: Incorrect padding on the newsletter configuration modal. -* Mobile App: - * New: Tautulli Remote App is out of beta on Android. The iOS app is available for beta testing on TestFlight. -* API: - * New: Added mobile device platform and version to device registration. -* Other: - * Fix: Unable to remove authentication. - * Change: Improve API key and device token security on Python 3. - * Remove: Basic Authentication setting. - - -## v2.7.4 (2021-06-19) - -* Activity: - * Fix: Incorrect quality profile shown on the activity card. -* Notifications: - * New: Added ability to evaluate Python expressions in notification parameters. - * New: Added tilde (~) to represent blank notification condition values. -* Exporter: - * Fix: Blank fields missing from csv and json exports. - * New: Added some new exporter fields. -* Graphs: - * Fix: Play counts and durations not matching the homepage statistics. -* UI: - * New: Show search bar in the collapsed menu on the mobile layout. (#1446) - * Change: Do not show seconds for total played duration on Users and Libraries tables. -* Other: - * Fix: Check the Tautulli data folder is writable on startup. (#1441) - * New: Update PlexAPI to 4.6.1. - * Change: Always hash HTTP password in config file. - - -## v2.7.3 (2021-05-22) - -* Activity: - * Fix: Incorrect quality profile being shown when transcoding to a higher bitrate. -* Notifications: - * New: Added notification parameters for duration values in seconds. (#1434) - * New: Added setting to allow repeat Tautulli update notifications. By default the Tautulli update notification will only notify once. - * New: Added setting to allow repeat Plex Media Server update notifications. By default the Plex Media Server update notification will only notify once. - * New: Added setting to configure the Tautulli update check interval. -* UI: - * Fix: Prevent accidentally closing modals when dragging the mouse outside the window. - * Fix: Recently added queue modal not loading. (#1429) - * New: Show collections tab in music libraries. (#1421) - * New: Added method to logout of active Tautulli sessions from the login logs. -* API: - * Fix: Update edit_user and edit_library doc strings for required parameters. (#1432) -* Other: - * New: Added advanced hidden setting for CherryPy thread pool size. (Thanks @psaab #1425) - - -## v2.7.2 (2021-04-24) - -* UI: - * New: Show smart collections in the library collections tab. - - -## v2.7.1 (2021-04-22) - -* Notifications: - * Fix: Recently added single episode being sent as a show notification. (#1420) -* Newsletters: - * Change: Ignore items with incorrect added at dates in the future. -* Exporter: - * Fix: Exporting not working for libraries, collections, and playlists. (#1408) -* UI: - * Fix: Collections and playlist tabs not loading on library and user pages. (#1408) - * Fix: Header overlapping graphs tabs on mobile layout. - * Change: Rename "Plays by Period" graph tab to "Media Type". - * Removed: Clear logs button removed from main Tautulli logs. - - -## v2.7.0 (2021-04-10) - -* History: - * New: Added transcode decision filter added to history tables. - * New: History table filters changed to allow multiple selections. -* Notifications: - * Fix: Recently added notifications failing due to metadata not being available yet on the Plex server. (#1392) - * New: Added separate SSL/TLS support for Email notifications. - * New: Added notification image type setting for Tautulli Remote App notifications. - * New: Added guid notification parameter. - * New: Added a Plex server down notification threshold setting. -* Newsletters: - * Fix: Newsletters would fail if an episode was missing a season number. -* UI: - * Fix: Fixed spacing of rating images on the media info pages. - * Fix: Fixed refreshing cached image in the browser. - * Fix: Bootstrap tooltips logging javascript errors in some instances. - * Fix: Activity card progress bar not filling at 100%. (#1404) - * New: Added blurred background to the Most Active Users statistics card. - * New: Added transcode decision filter for all history tables. - * New: Added an error popup message if the Plex.tv token is no longer valid when visiting the settings page. - * New: Added Amazon Alexa platform logo. - * Change: Improved loading times for the homepage watch statistics. - * Change: Improved loading times for user and library watch time statistics. - * Change: Improved loading of the graph's history modal popup. - * Change: Automatically trim trailing slashes from the Tautulli Public Domain setting. - * Change: Renamed the Plex Media Server "Use SSL" setting to "Use Secure Connection". - * Change: Update Microsoft Edge platform logo. - * Change: Consider link local IP addresses as local addresses. - * Change: Reveal token fields if they are blank to make it easier to input new values. -* Mobile App: - * New: Accept disabled OneSignal ID during device registration. -* API: - * New: Added user fallback image option to the pms_image_proxy command. - * New: Added optional include_last_seen parameter to the get_user command. - * New: Added optional include_last_accessed parameter to the get_library command. - * New: Allow comma separated filter values for the get_history command. -* Other: - * Fix: Importing the newsletter table would fail when manually repairing a corrupted database. - * Fix: Make fix match in Tautulli for music case-insensitive. - * New: Update PlexAPI to 4.5.2. - * Change: Migrate section_id from the session_history_metadata database table to session_history. - * Change: Copy the database file to the cache folder when importing a database using the browse option. - * Change: Delete the cached database file after successfully importing. - - -## v2.6.10 (2021-03-17) - -* Other: - * Fix: Configuration upgrade would fail if the Most Active User card was disabled. (#1395) - - -## v2.6.9 (2021-03-17) - -* Notifications: - * New: Added tautulli_update_exe and tautulli_update_exe notification parameters for Tautulli update notifications. -* Exporter: - * New: Added new TV show export fields for the beta Plex TV agent. -* UI: - * Fix: Some popover images not showing up on hover. (#1391) - * Remove: HTTP Host setting removed from the UI. This setting may still be changed in the config file. - * New: Added a Most Active Libraries statistics card to the homepage. (Thanks @herby2212) - * New: Mask sensitive text fields in the settings. Settings can be revealed by clicking on the eye icon. -* Mobile App: - * Change: Make OneSignal validation asynchronous to help timeout issues when registering a device. -* API: - * Added top_libraries stat_id option to get_home_stats API commaand. -* Ohter: - * New: Updated PlexAPI to 4.4.1. - - -## v2.6.8 (2021-03-08) - -* Mobile App: - * New: An all new Tautulli Remote App 2.0. Go to the Google Play link in the settings to download the new version. - * Fix: Registering the new app would fail if OneSignal is blocked. - - -## v2.6.7 (2021-03-07) - -* History: - * New: Added audio language to detailed stream info. (Thanks @herby2212) -* Notifications: - * New: Added season_name notification parameter. - * New: Update notifications to support custom season titles. -* Newsletters: - * New: Update recently added newsletter template to support custom season titles. -* Exporter: - * New: Added originalTitle and bannerFile to TV show export fields. -* UI: - * New: Added TVDB rating image to info page for the new Plex TV agent. - * New: Update the UI to support custom season titles. -* API: - * Fix: Return rating key for collections/playlists in get_synced_items. - * Fix: Return error when delete_synced_item fails. - * New: Return sync_media_type for collections/playlist in get_synced_items. - * New: Update pms_image_proxy to support playlist composite images. -* Other: - * Remove: Auto-updater for the Windows exe installer due to it being flagged by antivirus software. - * New: Updated PlexAPI to 4.4.0. - - -## v2.6.6 (2021-02-06) - -* Exporter: - * Fix: Exporting failed with long file paths on Windows. - * New: Updated various exporter fields. - * Change: Renamed collection children to collection items. -* UI: - * Fix: Client side login redirect changed to server side. - * Change: Renamed "Fix Metadata" button to "Fix Match". -* API: - * New: Added get_children_metadata API command. - * New: Return more metadata from the get_home_stats API command. -* Other: - * New: Updated PlexAPI to 4.3.1. - - -## v2.6.5 (2021-01-09) - -* Other: - * Fix: Some IP addresses not being masked in the logs. - * New: Auto-updater for Windows exe installer. - * Change: Allow Snap package to access the user home directory. - * Change: Migrate Snap user data to a persistent location that is retained if Tautulli is reinstalled. - - -## v2.6.4 (2020-12-20) - -* Other: - * Fix: Restore Snap data folder from previous installs. - - -## v2.6.3 (2020-12-19) - -* Announcements: - * This is the last Tautulli version to support Python 2. Python 3 will be required to continue receiving updates. You can check your Python version on the settings page. -* Exporter: - * Fix: Accessible and exists attributes were blank for media info export level 9. -* UI: - * Fix: Guest usernames were not masked on mouse hover. -* Other: - * Fix: macOS menu bar icon for light and dark mode. - * New: Tautulli can officially be installed on Linux using a Snap package. See the installation wiki for details. - - -## v2.6.2 (2020-12-05) - -* Notifications: - * Change: Send a notification of a user new device for the first time only. This can be toggled off in the settings. -* Exporter: - * Fix: Allow exporting child fields only without requiring the parent fields as well. - * Fix: Exporting individual collection would fail. - * Change: Remove accessible and exists fields from the default media info export levels. This prevents the Plex server from reading the media files unnecessarily. -* Other: - * Fix: Enable high resolution for the macOS system tray icon and menu. - * New: Added rate limiting for failed login attempts. - * Change: Use a white logo for the macOS system tray icon. -* API: - * New: Added machine_id to the get_history API response. - - -## v2.6.1 (2020-11-03) - -* Other: - * Fix: High CPU/memory usage in some instances. - * Fix: Logger error preventing Tautulli from starting. - * Fix: Database issue with non-unique image hashes. - - -## v2.6.0 (2020-10-31) - -* Exporter: - * New: New exporter feature that allows you to export the metadata and images for any library, collection, playlist, or media item to csv, json, xml, or m3u8. Refer to the Exporter Guide in the wiki for more details. -* UI: - * Fix: Margin on the homepage activity and statistic/library cards. (Thanks @dotsam) - * Fix: Movie ratings not showing on the info page for the new Plex Movie agent. - * New: Added ability to browse collections and playlists from the library and user pages. - * Change: Updated platform brand logos and colours. -* API: - * New: Added export_metadata, download_export, and delete_export API commands. - * New: Added get_collections_table, and get_playlists_table API commands. - * New: Added min_version parameter to the register_device API command. - * New: Added include_activity parameter to the get_history API command. - * New: Added sync_id parameter to the get_metadata API command. - * New: Added delete_synced_item API command. - * New: Added a stat_id and stats_start parameters to the get_home_stats API command. - * New: Allow deleting a mobile device using the registration device_id for the delete_mobile_device API command. - * Change: Return Plex server info and Tautulli info from the register_device command. -* Other: - * New: The Docker container is now also built for the arm32v6 architecture. - * New: The Docker container is also published to the GitHub Container Registry at ghcr.io/tautulli/tautulli. - * Change: Tautulli is now using a forked version of plexapi 3.6.0. This is to support the exporter feature while still maintaining Python 2 compatibility. - * Change: Updated systemd script to remove process forking. (Thanks @MichaIng) - * Change: Cache GitHub update check on startup. - - -## v2.5.6 (2020-10-02) - -* Activity: - * Change: Renamed container "Transcode" to "Converting" on activity cards. -* Notifications: - * New: Added a silent notification option for Telegram. (Thanks @JohnnyKing94) - * New: Added container_decision notification parameter. - * New: Added notification trigger for Playback Error. - * New: Added remote access down notification threshold setting. -* Newsletter: - * Change: Stop flooring newsletter start date. -* UI: - * Fix: Unable to purge history from the library edit modal. - * Fix: QR code not showing up for localhost address when trying to register a device. - * New: Added library name to the fix metadata modal. -* API: - * New: Added default thumb and art to the Live TV library. -* Other: - * Fix: Synced items not loading for guest access. - * New: Schedule some more automatic database optimizations. - * Change: Added automatic uninstall before installing to the Windows installer. - - -## v2.5.5 (2020-09-06) - -* Activity: - * Fix: Filter out TV show background theme music sessions. -* Notifications: - * New: Check Plex external guids for notification metadata provider links. -* UI: - * Fix: Incorrect sorting for user/library recently played items. -* API: - * Fix: get_synced_items API command returning error with empty result. - * Fix: Download API commands not returning the file. - * Fix: get_logs API command encoding error. - * Fix: get_user_player_stats API command returning error instead of empty result. - * New: Added get_server_info API command. - * New: Added external guids to get_metadata API command. - * New: Added support for multi-column sorting for datatable API commands. - * Change: get_activity API command return thumbnail override for clips. - * Change: get_libraries_table API command return custom library artwork. -* Other: - * Fix: Tautulli failed to run with a stale pid file. - * New: Added scheduled task to optimize the Tautulli database. - * Change: Update plexapi to 3.6.0. - * Change: Update some libraries for Python 3 compatibility. - - -## v2.5.4 (2020-07-31) - -* Monitoring: - * Change: Montitoring remote access changed to use websockets. Refer to Tautulli/Tautulli-Issues#251 for details. -* Notifications: - * Fix: Uploading images to Cloudinary failed for titles with non-ASCII characters on Python 2. - * New: Added plex_id notification parameter. - * Remove: Running .exe files directly using script notifications is no longer supported. - * Remove: php, perl, and ruby prefix overrides for script notifications is no longer supported. - * Change: Stricter checking of file extensions for script notifications. - * Change: Fallback to The Movie Database lookup using title and year. - * Change: Fallback to TVmaze lookup using title. -* UI: - * New: Added ability to import a previous Tautullli configuration file in the settings. - * New: Added a browse button for settings which require a folder or file input. - * New: Added first streamed column to user IP addresses table. (Thanks @dotsam) - * New: Added The Movie Database rating image to media page. - * Change: Different icon to represent direct stream in the history tables. -* API: - * New: Updated API docs for importing a database and configuration file. - - -## v2.5.3 (2020-07-10) - -* History: - * Fix: Unable to delete more than 1000 history entries at the same time. -* Notifications: - * Change: Python script notifications to run using the same Python interpreter as Tautulli. -* Newsletters: - * Fix: Unable to view newsletters with special characters. -* Other: - * Fix: Tautulli failing to start after enabling HTTPS when installed using the Windows / macOS installers. - * Fix: Startup script not working on macOS. - * Fix: Unable to hide dock icon on macOS with the pkg install. Refer to the FAQ regarding the Python rocket dock icon. - * Change: Added path to Python interpreter in system startup (daemon) scripts. - * Change: Added Python version to Google analytics. - - -## v2.5.2 (2020-07-01) - -* Announcements: - * Tautulli now supports Python 3! - * Python 2 is still supported for the time being, but it is recommended to upgrade to Python 3. -* Notifications: - * Fix: Error uploading images to Cloudinary on Python 2. - * Fix: Testing browser notifications alert not disappearing. - * Change: Default recently added notification delay set to 300 seconds. -* UI: - * Fix: MacOS menu bar icon causing Tautulli to fail to start. - * Fix: Unable to login to Tautulli on Python 2. - * New: Windows and MacOS setting to enable Tautulli to start automatically when you login. - * New: Added menu bar icon for MacOS. - * New: Ability to import a Tautulli database in the settings. - * New: Added Tautulli news area on the settings page. - * New: Added platform icon for LG devices. - * Remove: Ability to login to Tautulli using a Plex username and password has been removed. Login using a Plex.tv account is only supported via OAuth. -* Mobile App: - * Fix: Improved API security and validation when registering the Android app. -* Docker: - * Fix: Docker container not respecting the PUID and PGID environment variables. -* Other: - * Fix: Error creating self-signed certificates on Python 3. - * Fix: Tautulli login session cookie not set on the HTTP root path. - * New: Windows and MacOS app installers to install Tautulli without needing Python installed. - - -## v2.2.4 (2020-05-16) - -* Monitoring: - * Fix: Show "None" as the subtitle source on the activity card for user selected subtitles. -* UI: - * Fix: Deleted libraries were showing up on the homepage library cards. - * Fix: Libraries could get stuck as inactive in the database in some instances. -* API: - * Fix: Incorrect title was being returned for the get_history API command. -* Other: - * Fix: Plex remote access check was not being rescheduled after changing the settings. - - -## v2.2.3 (2020-05-01) - -* Notifications: - * Fix: Notification grouping by season/album and show/artist not enabled by default. - * Fix: The rating key notification parameter was being overwritten when 3rd party lookup was enabled. - * Fix: Missing artist value for Musicbrainz lookup in certain situations. - * New: Added notification trigger for Tautulli database corruption. - * New: Added TAUTULLI_PYTHON_VERSION to script notification environment variables. - * New: Added Plex Android / iOS App notification agent. - * New: Added bandwidth notification parameters. - * New: Added user thumb to notification parameters. - * New: Added initial stream notification parameter and threshold setting to determine if a stream is the first stream of a continuous streaming session. - * New: Added Plex remote access notification parameters. - * Change: The file size notification parameter is now reported in SI units. (Thanks @aaronldunlap) -* UI: - * Fix: Delete lookup info from the media info page failing. - * Fix: XBMC platform icon not being redirected to the Kodi platform icon. - * Fix: History table was not being refreshed after deleting entries. - * New: Added icon on the users table to indicate if the user is not on the Plex server. - * New: Added icon on the libraries table to indicate if the library is not on the Plex server. - * Change: Improved deleting libraries so libraries with the same section ID are not also deleted. -* Mobile App: - * Fix: Temporary device token was not being invalidated after cancelling device registration. -* API: - * Fix: Returning XML from the API failing due to unicode characters. - * Fix: Grouping parameter for various API commands not falling back to default setting. - * New: Added time_queries parameter to get_library_watch_time_stats and get_user_watch_time_stats API command. (Thanks @KaasKop97) - * New: Added an "is_active" return value to the get_user, get_users, get_library, and get_libraries API commands which indicates if the user or library is on the Plex server. - * New: Added delete_history API command. - * Change: Added optional parameter for row_ids for delete_library, delete_user, delete_all_library_history, and delete_all_user_history API commands. -* Other: - * Fix: Update failing on CentOS due to an older git version. - * Fix: Manifest file for creating a web app had incorrect info. - * Fix: Auto-updater was not scheduled when enabling the setting unless Tautulli was restarted. - * New: Docker images updated to support ARM platforms. - * Change: Remove the unnecessary optional Plex logs volume from the Docker image. - * Change: Use Plex.tv for GeoIP lookup instead of requiring the MaxMind GeoLite2 database. - - -## v2.2.1 (2020-03-28) - -* Notifications: - * Fix: File size notification parameter incorrectly truncated to an integer. - * Fix: Notification grouping by season/album not enabled by default. - * New: Added transcode decision counts to notification parameters. - * Change: Tags (<>) are no longer stripped from from Webhook notification text. -* Newsletter: - * New: Added favicon to newsletter template when viewing as a web page. -* UI: - * Fix: Username missing from the Synced Items table. - * Fix: Windows system tray icon not enabled by default. - * Fix: Saving a mobile device with a blank friendly name caused an error. - * New: Added IMDb and Rotten Tomato Ratings to info pages. - * New: Added button in settings to delete all 3rd party metadata lookup info in the database. - * New: Added button in settings to flush recently added items in the database. -* API: - * New: Added delete_recenly_added API command to flush recently added items. - * Change: Updated delete_lookup_info API command parameters to allow deleteing all 3rd party metadata lookup info. - - -## v2.2.0 (2020-03-08) - -* Important Note! - * All Live TV changes requires Plex Media Server 1.18.7 or higher. -* Monitoring: - * Fix: Improved IPv6 display on the activity cards. (Thanks @felixbuenemann) - * New: Added Live TV metadata and posters to the activity cards. - * Change: Show bandwidth in Gbps when greater than 1000 Mbps. -* History: - * New: Added history logging for Live TV sessions. - * New: Added a fake "Live TV" library to collect Live TV history. - * Note: This library will show up the first time that Live TV is played. - * New: Added the ability to filter history by Live TV. -* Graphs: - * New: Added Live TV series to the "Plays by Period" and "Play Totals" graphs. - * Change: Media type series on the graphs are only shown if the corresponding library type is present. -* Notifications: - * Fix: Race condition causing stream count to be incorrect for playback stop notifications. - * New: Added Live TV channel notification parameters. - * New: Added Plex background art notification parameter. - * Note: This is the Plex API endpoint to retrieve the background art, not the actual image. - * New: Added poster images for clip notifications. - * Change: Default Webhook notification method to POST. -* UI: - * Fix: Windows platform showing up twice on the Most Active Platforms statistics card. - * New: Added option to change the background art for library sections when editing a library. - * New: Added button to reset Tautulli git installation in settings to fix failed git updates. -* API: - * New: Added ability to filter history using a "live" media type and by guid for the get_history API command. - * New: Added cutsom_art parameter to the edit_library API command. -* Other: - * Change: Add crossorigin use-credentials attribute to manifest tags. (Thanks @pkoenig10) - * Change: Disable automatic updates for Docker containers. Updates are now handled by updating the Docker container. - * Note: If you are using an old Docker container created before v2.2.0, then you may need to completely remove and recreate the container to update for the first time. - * Note: Use the ":latest" Docker tag for the newest stable release, or the ":beta" or ":nightly" tags to access the beta or nightly branches. - - -## v2.1.44 (2020-02-05) - -* Monitoring: - * Fix: SDR source video being identified as HDR stream video. -* Notifications: - * Fix: Unable to select condition operator for video color parameters. -* UI: - * Fix: Capitalization for platforms on history tables. - - -## v2.1.43 (2020-02-03) - -* Monitoring: - * New: Added HDR indicator on activity card. - * New: Added dynamic range to history steam info modal. -* Notifications: - * Fix: Webhook notification body sent as incorrect data type when Content-Type header is overridden. - * Fix: Telegram notification character limit incorrect for unicode characters. - * New: Added color and dynamic range notification parameters. -* Newsletters: - * Fix: Episodes and Albums plural spelling on recently added newsletter section headers. -* UI: - * Fix: Windows and macOS platform capitalization. - * Fix: Season number 0 not shown for episodes on history tables. -* Other: - * Change: Mask email addresses in logs. - * Change: Update deprecated GitHub access token URL parameter to Authorization header. - - -## v2.1.42 (2020-01-04) - -* Other: - * Fix: SSL certificate error when installing GeoLite2 database. - * Change: Verify MaxMind license key and GeoLite2 database path before installing. - * Change: Disable GeoLite2 database uninstall button when it is not installed. - - -## v2.1.41 (2019-12-30) - -* Other: - * Fix: Failing to extract the GeoLite2 database on Windows. - - -## v2.1.40 (2019-12-30) - -* UI: - * Change: Moved 3rd Party API settings to new tab in the settings. -* Graphs: - * Change: Improve calculating month ranges for Play Totals graphs. -* Other: - * Fix: Failing to verify a Plex Media Server using a hostname. - * Change: A license key is now required to install the MaxMind GeoLite2 database for IP geolocation. Please follow the guide in the wiki to reinstall the GeoLite2 database. - * Change: The GeoLite2 database will now automatically update periodically if installed. - - -## v2.1.39 (2019-12-08) - -* UI: - * New: Added creating admin username and password to setup wizard. -* API: - * Change: Remove default notification subject and body for notify API command. -* Other: - * Change: Check for database corruption when making backup. - - -## v2.1.38 (2019-11-17) - -* Notifications: - * New: Added custom JSON headers to the webhook notification agent. -* UI: - * Fix: Homepage recently watched card not showing grouped history. -* Other: - * New: Added GitHub sponsor donation option. - * Change: Improve resolving hostnames. - - -## v2.1.37 (2019-10-11) - -* Notifications: - * Fix: Last.fm URLs linking to artist page instead of the album page. - * New: Added option for MusicBrainz lookup for music notifications. Option must be enabled under 3rd Party APIs in the settings. - * New: Added MusicBrainz ID and MusicBrainz URL notification parameters. - * Change: Automatically truncate Discord description summary to 2048 characters. - - -## v2.1.36-beta (2019-10-05) - -* Monitoring: - * Fix: Activity card title not updating after pre-rolls or auto-play. -* History: - * Fix: Display correct interlaced or progressive video scan type on stream data modal. -* Graphs: - * New: Separate interlaced and progressive video scan type on source and stream resolution graphs. -* API: - * New: Added parent_guid and grandparent_guid to get_activity and get_metadata commands. - - -## v2.1.35-beta (2019-09-24) - -* Monitoring: - * Fix: Audio shown as blank on activity cards when changing audio tracks during direct play. - * Fix: Display correct interlaced or progressive video scan type on activity cards. - * New: Added flag for Nvidia hardware decoding on activity cards. -* Notifications: - * Fix: Notification parameter prefix and suffix were not substituted correctly. - * Fix: Release Date notification parameter was incorrectly casted to an integer instead of a string. - * New: Added video scan type and full resolution notification parameters. -* UI: - * Fix: Movies with the same title but different year being grouped on the homepage stats cards. -* API: - * New: Added video scan type and full resolution values to get_activity command. -* Other: - * Fix: Tautulli logging out every time after saving settings and restarting. - - -## v2.1.34 (2019-09-03) - -* History: - * New: Added Product column to history tables. -* Notifications: - * Fix: IMDB/TMDb/TVDB/TVmaze ID notification parameters showing blank values after lookup. -* UI: - * Fix: Libraries and Users tables did not respect the group history setting. -* API: - * Fix: Title field was not searchable in get_library_media_info command. - * New: Added grouping option to get_libraries_table and get_users_table commands. - * New: Added product value to get_history command. -* Other: - * Fix: Could not verify Plex Media Server with unpublished hostnames. - * Change: Automatically logout all Tautulli instances when changing the admin password. - - -## v2.1.33 (2019-07-27) - -* Notifications: - * Change: Mask notification agent password fields. - * Change: Enable searching by email address in dropdown menu. -* Other: - * Fix: Version number being overwritten with "None" which prevented updating in some instances. - * Change: Update Plex OAuth request headers. - - -## v2.1.32 (2019-06-26) - -* Newsletters: - * Fix: Newsletter scheduler issue for QNAP devices using an invalid "local" timezone preventing Tautulli from starting. - - -## v2.1.31 (2019-06-24) - -* No additional changes from v2.1.31-beta. - - -## v2.1.31-beta (2019-06-13) - -* Monitoring: - * Fix: Synced content showing incorrect stream info. -* Other: - * Fix: Unable to view database status when authentication is enabled. - * Change: Default database synchronous mode changed to prevent database corruption. Database response may be slower. - - -## v2.1.30-beta (2019-05-11) - -* Monitoring: - * Fix: Activity crashing with Plex's Artist TV feature. - * New: Added setting for Plex Media Server Update Check Interval. (Thanks @abiacco) -* Notifications: - * New: Added secure and relayed connection notification parameters. - * New: Added PLEX_USER_TOKEN to script environment variables. - * Change: Schedule notifications using UTC to prevent missing notifications due to misconfigured timezones. -* API: - * New: Added status API command to check the status of Tautulli. - - -## v2.1.29 (2019-05-11) - -* No additional changes from v2.1.29-beta. - - -## v2.1.29-beta (2019-04-14) - -* Monitoring: - * Change: "Required Bandwidth" changed to "Reserved Bandwidth" in order to match the Plex dashboard. -* Notifications: - * New: Added prefix and suffix notification text modifiers. See the "Notification Text Modifiers" help modal for details. -* UI: - * New: Added "Undelete" button to the edit library and edit user modals. - * Fix: User IP address history table showing incorrect "Last Seen" values. -* API: - * Fix: Search API only returning 3 results. - * Fix: Terminate stream API failing when both session_key and session_id were provided. - * Change: Improved API response HTTP status codes and error messages. - - -## v2.1.28 (2019-03-10) - -* Monitoring: - * New: Added secure/insecure connection icon on the activity cards. Requires Plex Media Server v1.15+. -* Other: - * Change: Improved mass deleting of all images from Cloudinary. Requires all previous images on Cloudinary to be manually tagged with "tautulli". New uploads are automatically tagged. - - -## v2.1.27-beta (2019-03-03) - -* Monitoring: - * Fix: Error when playing synced optimized versions. - * Change: Show message to complete the setup wizard instead of error communicating with server message. - * Change: URL changed on Plex.tv for Plex Media Server beta updates. -* Notifications: - * New: Show the media type exclusion tags in the text preview modal. - * Fix: Unicode error in the Email notification failed response message. - * Fix: Error when a notification agent response is missing the "Content-Type" header. -* UI: - * Fix: Usernames were not being sanitized in dropdown selectors. - * Change: Different display of "All" recently added items on the homepage due to change in the Plex Media Server v1.15+ API. -* API: - * New: Added current Tautulli version to update_check API response. - * Change: API no longer returns sanitized HTML response data. -* Other: - * New: Added auto-restart to systemd init script. - * Fix: Patreon donation URL. - * Remove: Crypto donation options. - - -## v2.1.26 (2018-12-01) - -* Monitoring: - * Fix: Resume event not being triggered after buffering. -* Notifications: - * New: Added user email as a notification parameter. -* Graphs: - * Fix: History model showing no results for stream info graph. -* API: - * Fix: API returning error when missing a cmd. - - -## v2.1.25 (2018-11-03) - -* Monitoring: - * Fix: Audio and video codec showing up as * on the activity cards. - * New: Poster and background image on the activity cards for live TV. -* UI: - * Fix: Alert message for invalid Tautulli Public Domain setting. - - -## v2.1.24-beta (2018-10-29) - -* Monitoring: - * Fix: Transcode change events creating invalid sessions in the database. -* Notifications: - * Change: Update Telegram character limit to 1024. -* History: - * Fix: Save history table states separately for multiple Tautulli instances. -* Graphs: - * Fix: Save graphs states separately for multiple Tautulli instances. - * Change: Version graphs to bypass browser cache. -* UI: - * New: Added queued tasks modals to the scheduled tasks table for debugging. -* Other: - * Change: Updated timezone info and display in configuration table. - - -## v2.1.23-beta (2018-10-14) - -* Monitoring: - * Fix: Buffer events not being triggered properly. - * Fix: Watched progress sometimes not saved correctly. (Thanks @Sheigutn) -* Notifications: - * New: Added notification trigger for transcode decision change. - * Fix: Multiple buffer notifications being triggered within the same second. - * Change: Default buffer notification threshold changed to 10 for buffer thresholds less than 10. -* Newsletter: - * New: Added Other Video libraries to the newsletter. -* Homepage: - * New: Added Other Video type to recently added on the homepage. - * Change: Save homepage recently added media type toggle state. - * Change: Save homepage stats config to local storage instead of the server. -* History: - * Change: Save history table media type toggle state. -* Graphs: - * Change: Save series visibility state when toggling the legend. - * Change: Save graph config to local storage instead of the server. -* UI: - * New: Show the remote app device token and id in the edit device modal. - * Change: Lock certain settings if using the Tautulli docker container. -* API: - * Fix: download_config, download_database, download_log, and download_plex_log API commands not working. - * Change: get_recently_added command 'type' parameter renamed to 'media_type'. Backwards compatibility is maintained. - * Change: get_home_stats command 'stats_type' parameter change to string 'plays' or 'duration'. Backwards compatibility is maintained. - - -## v2.1.22 (2018-10-05) - -* Notifications: - * Fix: Notification agent settings not loading when failed to retrieve some data. -* UI: - * Fix: Incorrectly showing localhost server in the setup wizard. -* Other: - * Fix: Incorrect redirect to HTTP when HTTPS proxy header is present. - * Fix: Websocket not connecting automatically after the setup wizard. - - -## v2.1.21 (2018-09-21) - -* Notifications: - * Fix: Content Rating notification condition always evaluating to True. (Thanks @Arcanemagus) - * Fix: Script arguments not showing substituted values in the notification logs. -* UI: - * New: Unsupported browser warning when using IE or Edge. - * Fix: Misaligned refresh image icon in album search results. (Thanks @Sheigutn) - * Fix: Music history showing as pre-Tautulli in stream info modal. -* Other: - * Fix: Typo in Systemd init script group value. (Thanks @ldumont) - * Fix: Execute permissions in Fedora/CentOS and Systemd init scripts. (Thanks @wilmardo) - * Fix: Systemd init script instructions per Linux distro. (Thanks @samwiseg00) - * Change: Fallback to Tautulli data directory if logs/backup/cache/newsletter directories are not writable. - * Change: Check for alternative reverse proxy headers if X-Forwarded-Host is missing. - - -## v2.1.20 (2018-09-05) - -* No additional changes from v2.1.20-beta. - - -## v2.1.20-beta (2018-09-02) - -* Monitoring: - * Fix: Fetch messing season info when "Hide Seasons" is enabled for a show. - * Fix: Video and Audio details sometimes missing on activity cards. -* Notifications: - * New: Added UTC timestamp to notification parameters. (Thanks @samwiseg00) - * New: Added TAUTULLI_PUBLIC_URL to script environment variables. (Thanks @samwiseg00) -* UI: - * Change: Automatically redirect '/' to HTTP root if enabled. -* API: - * New: Added return_hash parameter to pms_image_proxy command. - * New: Added session_id parameter to get_activity command. -* Other: - * Change: Linux systemd startup script to use the "tautulli" group permission. (Thanks @samwiseg00) - - -## v2.1.19-beta (2018-08-19) - -* Notifications: - * New: Added Webhook notification agent. - * Fix: Scripts failing due to unicode characters in substituted script arguments. - * Change: Ability to override PYTHONPATH for scripts. - * Remove: Notify My Android notification agent. -* Newsletters: - * New: Added option for threaded newsletter emails. - * Fix: Missing space in newsletter format. -* UI: - * New: Added Windows system tray icon. - * Fix: Plex OAuth not working with Plex remote access disabled. (Thanks @samwiseg00) -* API: - * Fix: SQL command creating a database backup every time. (Thanks @samwiseg00) - - -## v2.1.18 (2018-07-27) - -* Monitoring: - * Fix: Progress bar on activity cards showing incorrect 100% when starting a stream. -* Notifications: - * Fix: Notification text boxes scrolling to top when inputting text. - * Change: Skip formatting invalid notification parameters instead of returning default text. -* UI: - * Fix: Padding around search bar causing the navigation bar to break on smaller screens. - - -## v2.1.17-beta (2018-07-22) - -* Notifications: - * Change: Use default selected stream for media info in notifications. -* UI: - * New: Automatically discover localhost Plex servers in server selection dropdown. - * Change: Save Datatables state indefinitely. - - -## v2.1.16-beta (2018-07-06) - -* Monitoring: - * Fix: Plex server not detected as down during sudden network loss. -* Notifications: - * Fix: Incorrect rounding of percentages in some cases. - * Fix: Incorrect stream duration value for playback start notifications. - * New: Added critic rating parameter for Rotten Tomatoes ratings. -* Newsletters: - * Fix: Typo in "seasons" when there is only one additional season. -* UI: - * New: Added ability to use Plex OAuth to login to Tautulli. -* API: - * Fix: Unicode characters causing get_logs command to return bad data. - * New: Added rating_image and audience_rating_image to get_activity and get_metadata commands. - - -## v2.1.15-beta (2018-07-01) - -* Monitoring: - * Fix: Progress percent displaying NaN for live TV. - * Fix: Unable to terminate sessions with unicode characters in the message. - * Change: Tizen platform to display the Samsung icon. -* Notifications: - * New: Added PYTHONPATH to script environment variables so scripts can automatically import from Tautulli libraries. - * Fix: Proper handling of unicode script arguments. - * Fix: Incorrect TAUTULLI_URL environment variable if the HTTP host setting is changed. - * Fix: Email addresses selectize box not expanding. -* Newsletters: - * Change: HTTPS URLS for images hosted on tautulli.com. -* Graphs: - * Fix: SD resolution sometimes not grouped together. - - -## v2.1.14 (2018-06-21) - -* Notifications: - * Fix: Parsing script arguments in quotes. -* UI: - * Fix: Slow loading due to Font Awesome 5 javascript. - * Change: Play counts on user an library pages now respect the history grouping setting. -* API: - * New: Added optional grouping parameter to user and library watch statistics. - - -## v2.1.13 (2018-06-16) - -* Monitoring: - * Fix: Soft crash when viewing photos not in an album. -* Notifications: - * New: Added current date and time notification parameters. -* UI: - * New: Added support page with embedded Discord chat using WidgetBot. - - -## v2.1.12 (2018-06-08) - -* Notifications: - * Change: Blank notification link source means disabled instead of default. -* Newsletters: - * New: Make collection tags available in the raw newsletter data for custom templates. -* API: - * New: Ability to terminate a stream using the session key. - - -## v2.1.11-beta (2018-06-02) - -* Monitoring: - * Fix: Activity progress bar not updating in some cases. - * Fix: Monitory Remote Access setting disabled due to Plex Media Server API changes. - * Change: Improved logic for grouping history items without being successive plays. -* Notifications: - * New: Added filename to notification parameters. -* Other: - * Fix: Update metadata failing for tracks without track numbers. - - -## v2.1.10-beta (2018-05-28) - -* Monitoring: - * Fix: Improved monitoring of live tv sessions. - * Change: Use track artist instead of album artist. -* Notifications: - * New: Added timestamp to Discord notification embeds. (Thanks @samwiseg00) - * New: Enable notifications for "clip" media types. - * Fix: Actually add the "live" notification parameter. - * Change: Update Twitter for 280 characters. - * Change: Use HTTPS url for Cloudinary images. -* Newsletters: - * Fix: Artist summaries not showing up on newsletter cards. - * Change: Do not send the newsletter if the template fails to render. - - -## v2.1.9 (2018-05-21) - -* Notifications: - * New: Added "live" to notification parameters. - - -## v2.1.8-beta (2018-05-19) - -* Newsletters: - * New: Added authentication options for self-hosted newsletters. - * Change: Check if the Tautulli footer has been removed in custom newsletter templates. -* Notifications: - * Fix: Cloudinary images not working for Twitter notifications. -* API: - * Fix: Return proper HTTP status codes for errors. - - -## v2.1.7-beta (2018-05-13) - -* Newsletters: - * New: Option to toggle between inline or internal CSS style templates. - * New: Button to delete all uploaded images from Imgur/Cloudinary. - * Fix: Long titles overflowing the newsletter cards. - * Change: Self-hosted images on newsletters to use the /image endpoint instead of proxying through /newsletter/image. - * Change: Strip whitespace from newsletter for smaller file size before sending to email. -* API: - * New: Added get_stream_data command to API. - * New: Added newsletter API commands to documentation. - - -## v2.1.6-beta (2018-05-09) - -* Newsletters: - * Change: Setting to specify static URL ID name instead of using the newsletter ID number. - * Change: Reorganize newsletter config options. - - -## v2.1.5-beta (2018-05-07) - -* Newsletters: - * New: Added setting for a custom newsletter template folder. - * New: Added option to enable static newsletter URLs to retrieve the last sent scheduled newsletter. - * New: Added ability to change the newsletter output directory and filenames. - * New: Added option to save the newsletter file without sending it to a notification agent. - * Fix: Check for disabled image hosting setting. - * Fix: Cache newsletter images when refreshing the page. - * Fix: Refresh image from the Plex server when uploading to image hosting. - * Change: Allow all image hosting options with self-hosted newsletters. -* UI: - * Change: Don't retrieve recently added on the homepage if the Plex Cloud server is sleeping. -* Other: - * Fix: Imgur database upgrade migration. - - -## v2.1.4 (2018-05-05) - -* Newsletters: - * Fix: Newsletter URL without an HTTP root. - - -## v2.1.3-beta (2018-05-04) - -* Newsletters: - * Fix: HTTP root doubled in newsletter URL. - * Fix: Configuration would not open with failed hostname resolution. - * Fix: Schedule one day off when using weekday names in cron. - * Fix: Images not refreshing when changed in Plex. - * Fix: Cloudinary upload with non-ASCII image titles. -* Other: - * Fix: Potential XSS vulnerability in search. - - -## v2.1.2-beta (2018-05-01) - -* Newsletters: - * New: Added Cloudinary option for image hosting. -* Notifications: - * New: Added Message-ID to Email header (Thanks @Dam64) - * Fix: Posters not showing up on Twitter with self-hosted images. - * Fix: Incorrect action parameter for new device notifications. - * Change: Hardcode Pushover sound list instead of fetching the list every time. -* API: - * Fix: Success result for empty response data. - * Change: Do not send notification when checking for Tautulli updates via the API. - - -## v2.1.1-beta (2018-04-11) - -* Monitoring: - * Fix: Live TV transcoding showing incorrectly as direct play. -* Newsletters: - * New: Added week number as parameter. (Thanks @samip5) - * Fix: Fallback to cover art on the newsletter cards. - * Change: Option to set newsletter time frame by calendar days or hours. -* Notifications: - * New: Added week number as parameter. (Thanks @samip5) -* Other: - * New: Added plexapi library for custom scripts. - - -## v2.1.0-beta (2018-04-07) - -* Newsletters: - * New: A completely new scheduled newsletter system. - * Beautiful HTML formatted newsletter for recently added movies, TV shows, or music. - * Send newsletters on a daily, weekly, or monthly schedule to your users. - * Customize the number of days of recently added content and the libraries to include on the newsletter. - * Add a custom message to be included on the newsletter. - * Option to either send an HTML formatted email, or a link to a self-hosted newsletter on your own domain to any notification agent. -* Notifications: - * New: Ability to use self-hosted images on your own domain instead of using Imgur. - - -## v2.0.28 (2018-04-02) - -* Monitoring: - * Fix: Homepage activity header text. - - -## v2.0.27 (2018-04-02) - -* Monitoring: - * Change: Move activity refresh interval setting to the settings page. - - -## v2.0.26-beta (2018-03-30) - -* Monitoring: - * New: Setting to change the refresh interval on the homepage. - * Fix: Identify extras correctly on the activity cards. -* Notifications: - * Change: Send Telegram image and text separately if the caption is longer than 200 characters. -* UI: - * Fix: Error when clicking on synced playlist links. - - -## v2.0.25 (2018-03-22) - -* Monitoring: - * Fix: Websocket not reconnecting causing activity monitoring and notifications to not work. - * Fix: Error checking for synced streams without Plex Pass. - - -## v2.0.24 (2018-03-18) - -* Monitoring: - * Fix: Fix stream data not showing for history recorded before v2. -* Notifications: - * Fix: Set all environment variables for scripts. - * Change: Moved all notification agent instructions to the wiki. - * Change: XBMC notification agent renamed to Kodi. - * Change: OSX Notify notification agent renamed to macOS Notification Center. - - -## v2.0.23-beta (2018-03-16) - -* Monitoring: - * Fix: Certain transcode stream showing incorrectly as direct play in history. Fix is not retroactive. -* Notifications: - * New: Added season/episode/album/track count to notification parameters. - * New: Added "Value 3" setting for IFTTT notifications. - * New: Set PLEX_URL, PLEX_TOKEN, TAUTULLI_URL, and TAUTULLI_APIKEY environment variables for scripts. - * Fix: Notifications failing to send with invalid custom conditions json. - * Fix: Email notifications failing with unicode username/passwords. - * Change: Facebook Graph API version updated to v2.12. -* UI: - * New: Show the Plex Server URL in the settings. - * Fix: Incorrect info displayed in the Tautulli login logs. -* API: - * Fix: API returning empty data if a message was in the original data. - * Change: get_server_id command returns json instead of string. -* Other: - * Fix: Forgot git pull when changing branches in the web UI. - - -## v2.0.22 (2018-03-10) - -* Tautulli v2 release! - - -## v2.0.22-beta (2018-03-09) - -* Notifications: - * Fix: Pushover notifications failing with priority 2 is set. - * Fix: Expanding selectize box for some notification agent settings. -* Other: - * Fix: Update check failing when an update is available. - * Fix: Item count incorrect for photo libraries. - - -## v2.0.21-beta (2018-03-04) - -* Monitoring: - * New: Identify if a stream is using Plex Relay. - * Change: Don't ping the Plex server if the websocket is disconnected. -* Notifications: - * Fix: Pause/resume state not being sent correctly in some instances. -* Other: - * New: Add Patreon donation method. - * Fix: Catch failure to send analytics. - * Fix: IP address connection lookup error when the country is missing. - * Change: Updated all init scripts to Tautulli. - * Change: Move database to tautulli.db. - * Change: Move logs to tautulli.log. - * Change: Move startup file to Tautulli.py. - - -## v2.0.20-beta (2018-02-24) - -* Notifications: - * New: Add poster support for Pushover notifications. - * New: Add poster support for Pushbullet notifications. - * Fix: Incorrect Plex/Tautulli update notification parameter types. - * Change: Poster and text sent as a single message for Telegram. - * Change: Posters uploaded directly to Telegram without Imgur. -* UI: - * New: Add "Delete" button to synced items table on user pages. - * Fix: Button spacing/positioning on mobile site. - * Fix: Music statistic cards not using the fallback thumbnail. - * Fix: Logo not showing up when using an SVG. - * Change: Graphs now respect the "Group History" setting. -* API: - * New: Add grouping to graph API commands. -* Other: - * New: Added Google Analytics to collect installation metrics. - * Fix: Reconnecting to the Plex server when server settings are not changed. - - -## v2.0.19-beta (2018-02-16) - -* Monitoring: - * Fix: Connect to Plex Cloud server without keeping it awake. - * Fix: Reconnect to Plex Cloud server after the server wakes up from sleeping. -* Notifications: - * Fix: Don't send Plex Server Up/Down notifications when Tautulli starts up. - * Change: Better handling of Watched notifications. -* UI: - * New: Added Plex server selection dropdown in the settings. - * Fix: Libraries and Users tables not refreshing properly. - * Change: Updated the masked info shown to guests. - * Change: Check for updates without refreshing to the homepage. -* API: - * New: Added update_check to the API. - * Fix: delete_media_info_cache not deleting the cache. - * Change: Document "refresh" parameter for get_library_media_info. -* Other: - * Fix: Show the full changelog since v2 on a fresh install. - - -## v2.0.18-beta (2018-02-12) - -* Notifications: - * Fix: Default text for Tautulli update notifications using the wrong parameter. - * Fix: Playback pause and resume notifications only triggering once. - * Change: Negative operators for custom conditions now use "and" instead of "or". -* UI: - * New: Added button to delete the 3rd party lookup info from the info pages. - * Fix: Missing host info in the login logs when logging in using Firefox. - * Change: Cleaned up settings. Advanced settings are now hidden behind a toggle. -* API: - * New: Updated API documentation for v2. -* Other: - * Fix: DeprecationWarning when using HTTPS with self-signed certificates. - * Change: Deleting the Imgur poster URL also deletes the poster from Imgur (only available for new uploads). - * Change: GitHub repository moved to Tautulli/Tautulli. Old GitHub URLs will still work. - - -## v2.0.17-beta (2018-02-03) - -* Notifications: - * Fix: Unable to use @ mentions tags for Discord and Slack. - * New: Added Zapier notification agent. -* API: - * Fix: get_synced_items returning no results. - * Fix: get_library_media_info returning incorrect media type for photo albums. - * Fix: get_library_media_info not being able to sort by title. - - -## v2.0.16-beta (2018-01-30) - -* Monitoring: - * Fix: Timestamp sometimes showing as "0:60" on the activity cards. - * Fix: Incorrect session information being shown for playback of synced content. - * Fix: Sessions not being stopped when "Playback Stopped" notifications were enabled. -* UI: - * Fix: Stream resolution showing up as "unknown" on the graphs. - * New: Added user filter to the Synced Items table. -* Other: - * New: Option to use the Plex server update channel when checking for updates. - - -## v2.0.15-beta (2018-01-27) - -* Monitoring: - * Fix: Live TV sessions not being stopped in History. - * Fix: Stream location showing as "unknown" on the activity cards. - * New: Improved Live TV details on the activity cards. -* Notifications: - * New: Added labels and collections to notification parameters. - * New: Added more server details to notification parameters. - * Change: Renamed "PlexPy" update notification parameters to "Tautulli". - - -## v2.0.14-beta (2018-01-20) - -* Monitoring: - * Change: Added "Cellular" bandwidth to "WAN" in activity header. -* Notifications: - * Fix: Plex Web URL for tracks now go to the album page. - * Fix: Recently added notifications being sent for the entire library when DVR EPG data was refreshed. - * Fix: Notifier settings not loading with an apostrophe in the custom condition values. - * Fix: Custom email addresses not being saved when closing the notifier settings. - * Change: Re-enabled Browser notifications. - * Change: Renamed "PlexPy" update notification parameters to "Tautulli". - * Change: Emails no longer automatically insert HTML line breaks. - * Change: "Date" header added to email notifications. -* UI: - * Change: Show all changelogs since the previous version when updating. - - -## v2.0.13-beta (2018-01-13) - -* Notifications: - * New: Added dropdown selection for email addresses of shared users. - * New: Added more notification options for Join. - * Change: Show "OR" between custom condition values. -* Other: - * New: Use JSON Web Tokens for authentication. Login now works with SSO applications. - * New: Allow the Plex server admin to login as a Tautulli admin using their Plex.tv account. - - -## v2.0.12-beta (2018-01-07) - -* Notifications: - * Fix: Incorrect Plex URL parameter value. - * Change: Custom condition logic is now optional. An implicit "and" is applied between all conditions if the logic is blank. -* UI: - * New: Added separate required LAN/WAN bandwidth in the activity header. -* API: - * Fix: Notify API command not sending notifications. - - -## v2.0.11-beta (2018-01-05) - -* Notifications: - * Fix: Some notification parameters showing up blank. -* UI: - * Fix: Stream data showing up as "None" for pre-v2 history. -* Other: - * Fix: Ability to login using the hashed password. - - -## v2.0.10-beta (2018-01-04) - -* Monitoring: - * Fix: HW transcoding indicator on activity cards incorrect after refreshing. -* Notifications: - * Remove: Notification toggles from library and user settings. Use custom conditions to filter out notifications instead. -* UI: - * Fix: Incorrect examples for some date format options. Also added a few missing date format options. (Thanks @Tommatheussen) - - -## v2.0.9-beta (2018-01-03) - -* Notifications: - * Fix: Notifications failing due to incorrect season/episode number types. - - -## v2.0.8-beta (2018-01-03) - -* Monitoring: - * Fix: Incorrect HW transcoding indicator on activity cards. - * Fix: Long product/player names hidden behind platform icon on activity cards. -* Notifications: - * Fix: Notifications failing due to some missing notification parameters. - - -## v2.0.7-beta (2018-01-01) - -* Monitoring: - * Fix: Incorrect LAN/WAN location on activity cards. - * Fix: Paused time not recording correctly. -* Other: - * Fix: Failed to retrieve synced items when there are special characters in the title. - - -## v2.0.6-beta (2017-12-31) - -* Monitoring: - * New: Beta Plex Cloud support. - * Fix: Update paused time while still paused. -* UI: - * Fix: Stopped time showing as "n/a" on history table. - - -## v2.0.5-beta (2017-12-31) - -* Monitoring: - * Fix: IPv6 addresses overflowing on the activity cards. -* Notifications: - * Fix: Error sending Join notifications. -* UI: - * New: Added total required bandwidth in the activity header. -* Other: - * Fix: Failing to retrieve releases from GitHub. - * Fix: CherryPy SSL connection warning. (Thanks @felixbuenemann) - * Fix: Sanitize script output in logs. - * Change: Login sessions persists across server restarts. - - -## v2.0.4-beta (2017-12-29) - -* Monitoring: - * Fix: Current activity cards duplicating on the homepage. -* Notifications: - * Fix: Concurrent stream notifications being sent when there is an incorrect number of streams. -* UI: - * New: Info pages for collections. - * New: Button to test Plex Web URL override. - * Fix: Library and User pages return to the correct tab when pressing back. - - -## v2.0.3-beta (2017-12-25) - -* Monitoring: - * Fix: Missing sync ID error causing logging to crash. - * Fix: Incorrect optimized version title column name causing logging to crash. -* Notifications: - * Fix: Report correct beta version for Tautulli update notifications. -* UI: - * Fix: Missing CSS for stream info modal. - - -## v2.0.2-beta (2017-12-24) - -* Monitoring: - * Fix: Websocket connection fails to start with existing streams when upgrading to v2. - * Fix: Long request URI for refreshing current activity on the homepage. - * Fix: Missing subtitle database columns. - * Fix: Details for synced and optimized versions reporting incorrectly. -* Notifications: - * Fix: Recently added notifications sending for previously added items. It is now limited to past 24 hours only. - * Fix: Source video/audio/subtitle parameters showing up as blank. - * Change: Validate condition logic when saving a notification agent. -* API: - * Change: API is enabled by default on new installs. -* UI: - * New: Add logo svg files. (Thanks @Fish2) - * New: Updated stream info modal. - * Change: Media info tables sort by sort title instead of title. -* Other: - * Fix: Updating library IDs message on libraries page. - * Fix: Wtched percentage settings not saving after restart. - * Remove: Video Preview Thumbnails setting no longer used. - * Change: Add back HTTP Proxy setting under the Web Interface settings tab. - * Change: "Group Table and Watch Statistics History" and "Current Activity in History Tables" enabled by default on new installs. - - -## v2.0.1-beta (2017-12-19) - -* Monitoring: - * Fix: Missing video_height database column. -* Notifications: - * Fix: Join API key. - * Change: Temporarily disable broken browser notifications. -* UI: - * Fix: Incorrect fallback image for music watch statistics. - - -## v2.0.0-beta (2017-12-18) - -* Monitoring: - * New: More detailed stream info including subtitles, bitrates, bandwidth, and quality profiles. - * New: Terminate sessions from the current activity (Plex Pass only). - * Change: Monitoring uses websockets only now. -* Notifications: - * New: Completely new notification system. - * Allow adding multiple of the same notification agent and/or duplicating existing notification agents. - * Each notification agent has it's own notification triggers and notification text. - * Notification agents are stored in the database instead of the config file. Some notification configurations may have been lost in the transfer. Sorry. - * New: Discord notification agent. - * New: GroupMe notification agent. - * New: MQTT notification agent. - * New: More customizable info cards for Discord, Facebook, Hipchat, and Slack. - * New: Script notifications are configured individually per script with separate arguments for each notification action. - * New: Icon and duration options for Plex Home Theater and XBMC notifications. - * New: Notification for Tautulli updates. - * New: Added <show>, <season>, <artist>, and <album> notification exclusion tags. - * <tv> is renamed to <episode>, and <music> is renamed to <track> - * New: Preview notification text in the notifier settings. - * New: Properly group recently added notifications when adding a batch of media. - * The {season_num}, {episode_num}, and {track_num} parameters will be substituted with the range (e.g. 06-10) - * New: Option to group recently added notifications by show/artist or season/album. - * New: More detailed media info (video, audio, subtitle, file, etc.) notification options available. - * New: Added notification text modifiers to change case and slice lists. - * New: Custom notification conditions using parameters to filter notifications. - * New: Button to trigger manual recently added notifications from the info pages. - * New: Lookup TVMaze and TheMovieDatabase links. - * Remove: The shared Imgur client ID has been removed. Please enter your own client ID in the settings to continue uploading posters. - * Change: Notifications with a blank subject or body will no longer be sent at all. - * Change: Line breaks inserted automatically in Email notification text. - * Change: Notifications for season/episodes now use the season poster and album/track now use the album art. - * Change: The {action} parameter is no longer capitalized. - * Change: Notification success or failure added to notification logs. -* API: - * New: Added check for Plex Media Server updates with the Tautulli API. - * New: Added show/artist and episode/track titles to the "get_history" API command. - * New: Added manual trigger for recently added notifications. - * Remove: Defunct API v1. - * Change: The "notify" API command now requires a notifier_id instead of an agent_id. The notifier ID can be found in the settings for each notification agent. - * Change: The returned json for the "get_metadata" API command is no longer nested under the "metadata" key. -* UI: - * New: Updated current activity, watch statistics, and library statistics cards on the home page. - * New: Toggle stats and recently added categories directly on the homepage. - * New: Ability to delete synced items from the Synced Items page. - * New: Updated platform icons to a uniform style. - * Remove: Setting for number of top items for watch statistic cards. - * Change: Separate API and websocket logs. -* Android Tautulli Remote App (beta): - * New: Download the Tautulli Remote app on Google Play! - * Link the app using a QR code in the Tautulli settings. - * New: Push notifications directly to the Tautulli Remote app. -* Other: - * New: Option to update Tautulli automatically when an update is available. - * New: Option to switch the tracking git remote and branch. - * New: Option to change the path to your git environment variable. - * New: Option to use a HTTPS certificate chain. - * New: Option to override the Plex Web URL for click-through links. - * New: Separate watched percentage for movies, episodes, and tracks. - * New: Show changelog after updating Tautulli. - * New: Support for IPv6 geolocation lookup. - * New: Download the Tautulli configuration file or database from the settings. - * New: Log failed Tautulli login attempts. - * Fix: Modal popups not working on mobile Safari. - * Fix: Prevent password managers from autofilling the password in the settings. - * Fix: Unable to search with special characters. - * Remove: Some unused options have been removed from the settings page. - * Change: The database schema has been changed, and reverting back to PlexPy v1 will not work. - * Change: The dev branch has been depreciated. A master/beta/nightly system is used instead. - - -## v1.4.25 (2017-10-02) - -* Fix: Tab instead of spaces preventing startup. - - -## v1.4.24 (2017-10-01) - -* Fix: New Plex Web urls. (Thanks @Joshua1337) -* Fix: Fallback to the product name if the player title is blank. -* New: Added no forking option to startup arguments. (Thanks @Vashypooh) - - -## v1.4.23 (2017-09-30) - -* Fix: Playstation 4 platform name. -* Fix: PlexWatch and Plexivity import. -* Fix: Pushbullet authorization header. - - -## v1.4.22 (2017-08-19) - -* Fix: Cleaning up of old config backups. -* Fix: Temporary fix for incorrect source media info. - - -## v1.4.21 (2017-07-01) - -* New: Updated donation methods. - - -## v1.4.20 (2017-06-24) - -* New: Added platform image for the PlexTogether player. -* Fix: Corrected math used to calculate human duration. (Thanks @senepa) -* Fix: Sorting of 4k in media info tables. -* Fix: Update file sizes when refreshing media info tables. -* Fix: Support a custom port for Mattermost (Slack) notifications. - - -## v1.4.19 (2017-05-31) - -* Fix: Video resolution not showing up for transcoded streams on PMS 1.7.x. - - -## v1.4.18 (2017-04-22) - -* New: Added some new Arnold quotes. (Thanks @senepa) -* Fix: Text wrapping in datatable footers. -* Fix: API command get_apikey. (Thanks @Hellowlol) - - -## v1.4.17 (2017-03-04) - -* New: Configurable month range for the Plays by month graph. (Thanks @Pbaboe) -* New: Option to chanage the week to start on Monday for the the Plays by day of week graph. (Thanks @Pbaboe) -* Fix: Invalid iOS icon file paths. (Thanks @demonbane) -* Fix: Plex Web 3.0 URLs on info pages and notifications. -* Fix: Update bitcoin donation link to Coinbase. -* Fix: Update init scripts. (Thanks @ampsonic) - - -## v1.4.16 (2016-11-25) - -* Fix: Websocket for new json response on PMS 1.3.0. -* Fix: Update stream and transcoder tooltip percent. -* Fix: Typo in the edit user modal. - - -## v1.4.15 (2016-11-11) - -* New: Add stream and transcoder progress percent to the current activity tooltip. -* Fix: Refreshing of images in the cache when authentication is disabled. -* Fix: Plex.tv authentication with special characters in the username or password. -* Fix: Line breaks in the info page summaries. -* Fix: Redirect to the proper http root when restarting. -* Fix: API result type and responses showing incorrectly. (Thanks @Hellowlol) -* Change: Use https URL for app.plex.tv. -* Change: Show API traceback errors in the browser with debugging enabled. (Thanks @Hellowlol) -* Change: Increase table width on mobile devices and max width set to 1750px. (Thanks @XusBadia) - - -## v1.4.14 (2016-10-12) - -* Fix: History logging locking up if media is removed from Plex before PlexPy can save the session. -* Fix: Unable to save API key in the settings. -* Fix: Some typos in the settings. (Thanks @Leafar3456) -* Change: Disable script timeout by setting timeout to 0 seconds. - - -## v1.4.13 (2016-10-08) - -* New: Option to set the number of days to keep PlexPy backups. -* New: Option to add a supplementary url to Pushover notifications. -* New: Option to set a timeout duration for script notifications. -* New: Added flush temporary sessions button to extra settings for emergency use. -* New: Added pms_image_proxy to the API. -* Fix: Insanely long play durations being recorded when connection to the Plex server is lost. -* Fix: Script notification output not being sent to the logger. -* Fix: New libraries not being added to homepage automatically. -* Fix: Success message shown incorrectly when sending a test notification. -* Fix: PlexPy log level filter not working. -* Fix: Admin username not shown in login logs. -* Fix: FeatHub link in readme document. -* Change: Posters disabled by default for all notification agents. -* Change: Disable manual changing of the PlexPy API key. -* Change: Force refresh the Plex.tv token when fetching a new token. -* Change: Script notifications run in a new thread with the timeout setting. -* Change: Watched percent moved to general settings. -* Change: Use human readable file sizes to the media info tables. (Thanks @logaritmisk) -* Change: Update pytz library. - - -## v1.4.12 (2016-09-18) - -* Fix: PMS update check not working for MacOSX. -* Fix: Square covers for music stats on homepage. -* Fix: Card width on the homepage for iPhone 6/7 Plus. (Thanks @XusBadia) -* Fix: Check for running PID when starting PlexPy. (Thanks @spolyack) -* Fix: FreeBSD service script not stopping PlexPy properly. -* Fix: Some web UI cleanup. -* Change: GitHub repostitory moved. - - -## v1.4.11 (2016-09-02) - -* Fix: PlexWatch and Plexivity import errors. -* Fix: Searching in history datatables. -* Fix: Notifications not sending for Local user. - - -## v1.4.10 (2016-08-15) - -* Fix: Missing python ipaddress module preventing PlexPy from starting. - - -## v1.4.9 (2016-08-14) - -* New: Option to include current activity in the history tables. -* New: ISP lookup info in the IP address modal. -* New: Option to disable web page previews for Telegram notifications. -* Fix: Send correct JSON header for Slack/Mattermost notifications. -* Fix: Twitter and Facebook test notifications incorrectly showing as "failed". -* Fix: Current activity progress bars extending past 100%. -* Fix: Typo in the setup wizard. (Thanks @wopian) -* Fix: Update PMS server version before checking for a new update. -* Change: Compare distro and build when checking for server updates. -* Change: Nicer y-axis intervals when viewing "Play Duration" graphs. - - -## v1.4.8 (2016-07-16) - -* New: Setting to specify PlexPy backup interval. -* Fix: User Concurrent Streams Notifications by IP Address checkbox not working. -* Fix: Substitute {update_version} in fallback PMS update notification text. -* Fix: Check version for automatic IP logging setting. -* Fix: Use library refresh interval. - - -## v1.4.7 (2016-07-14) - -* New: Use MaxMind GeoLite2 for IP address lookup. - * Note: The GeoLite2 database must be installed from the settings page. -* New: Check for Plex updates using plex.tv downloads instead of the server API. - * Note: Check for Plex updates has been disabled and must be re-enabled in the settings. -* New: More notification options for Plex updates. -* New: Notifications for concurrent streams by a single user. -* New: Notifications for user streaming from a new device. -* New: HipChat notification agent. (Thanks @aboron) -* Fix: Username showing as blank when friendly name is blank. -* Fix: Direct stream count wrong in the current activity header. -* Fix: Current activity reporting direct stream when reducing the stream quality switches to transcoding. -* Fix: Apostophe in an Arnold quote causing the shutdown/restart page to crash. -* Fix: Disable refreshing posters in guest mode. -* Fix: PlexWatch/Plexivity import unable to select the "grouped" database table. -* Change: Updated Facebook notification instructions. -* Change: Subject line optional for Join notifications. -* Change: Line break between subject and body text instead of a colon for Facebook, Slack, Twitter, and Telegram. -* Change: Allow Mattermost notifications using the Slack config. -* Change: Better formatting for Slack poster notifications. -* Change: Telegram only notifies once instead of twice when posters are enabled. -* Change: Host Open Sans font locally instead of querying Google Fonts. - - -## v1.4.6 (2016-06-11) - -* New: Added User and Library statistics to the API. -* New: Ability to refresh individual poster images without clearing the entire cache. (Thanks @Hellowlol) -* New: Added {added_date}, {updated_date}, and {last_viewed_date} to metadata notification options. -* New: Log level filter for Plex logs. (Thanks @sanderploegsma) -* New: Log level filter for PlexPy logs. -* New: Button to download Plex logs directly from the web interface. -* New: Advanced setting in the config file to change the number of Plex log lines retrieved. -* Fix: FreeBSD and FreeNAS init scripts to reflect the path in the installation guide. (Thanks @nortron) -* Fix: Monitoring crashing when failed to retrieve current activity. - - -## v1.4.5 (2016-05-25) - -* Fix: PlexPy unable to start if failed to get shared libraries for a user. -* Fix: Matching port number when retrieving the PMS url. -* Fix: Extract mapped IPv4 address in Plexivity import. -* Change: Revert back to internal url when retrieving PMS images. - - -## v1.4.4 (2016-05-24) - -* Fix: Image queries crashing the PMS when playing clips from channels. -* Fix: Plexivity import if IP address is missing. -* Fix: Tooltips shown behind the datatable headers. -* Fix: Current activity instances rendered in a random order causing them to jump around. - - -## v1.4.3 (2016-05-22) - -* Fix: PlexPy not starting without any authentication method. - - -## v1.4.2 (2016-05-22) - -* New: Option to use HTTP basic authentication instead of the HTML login form. -* Fix: Unable to save settings when enabling the HTTP proxy setting. -* Change: Match the PMS port when retrieving the PMS url. - - -## v1.4.1 (2016-05-20) - -* New: HTTP Proxy checkbox in the settings. Enable this if using an SSL enabled reverse proxy in front of PlexPy. -* Fix: Check for blank username/password on login. -* Fix: Persist current activity artwork blur across refreshes when transcoding details are visible. -* Fix: Send notifications to multiple XBMC/Plex Home Theater devices. -* Fix: Reset PMS identifier when clicking verify server button in settings. -* Fix: Crash when trying to group current activity session in database. -* Fix: Check current activity returns sessions when refreshing. -* Fix: Logs sorted out of order. -* Fix: Resolution reported incorrectly in the stream info modal. -* Fix: PlexPy crashing when hashing password in the config file. -* Fix: CherryPy doubling the port number when accessing PlexPy locally with http_proxy enabled. -* Change: Sort by most recent for ties in watch statistics. -* Change: Refresh Join devices when changing the API key. -* Change: Format the Join device IDs. -* Change: Join notifications now sent with Python Requests module. -* Change: Add paging for recently added in the API. - - -## v1.4.0 (2016-05-15) - -* New: An HTML form login page with sessions support. -* New: Guest access control for shared users using Plex.tv authentication. - * Enable the option in the settings and toggle guest access per user from Users > Edit mode. - * Guests can only view their own user data. Other user info is removed/masked. - * Guests can only view media from libraries that are shared with them (content rating and label filters are respected). Other libraries are removed/masked. - * All settings and admin controls are restricted from guests. - * All current activity on the server is shown, but with masked user/metadata info. -* New: Login logs table on the User and Logs pages. -* New: Filter the history table by user. -* New: Filter the graphs by user. (Thanks @Otger) -* New: Option to hash the admin passowrd in the config file. -* New: Options to enable/disable/rearrange each section on the homepage -* New: Toggle media types for recently added items on the homepage. -* New: Option to enter an Imgur API client ID for uploading posters. - * Note: The shared Imgur client id will be removed in a future PlexPy update! Please enter your own client id in the settings to continue uploading posters! -* New: HTML support for Email. -* New: Posters and HTML support for Telegram. -* New: Poster support for Slack. -* New: Poster support for Twitter. -* New: Re-added Plex Home Theater notification agent. -* New: Browser notification agent (experimental). -* New: Added {plex_url} as a notification option. -* New: Added transcode decision to the activity header. -* New: Documentation for APIv2 (see API.md for details). -* New: Import a Plexivity database into PlexPy. -* New: Prettier fallback image for art/episodes. -* New: Prettier confirm modal dialogues. -* New: Cache images to reduce Plex API calls. This can be disabled in the under Settings > Extra Settings. (Thanks @Hellowlol) -* New: Scheduled backups of the config file. -* New: Button to clear the PlexPy cache/images in the settings. -* New: Button to manually backup the PlexPy database/config in the settings. -* New: Button to clear the PlexPy logs in the settings. -* New: Button to download PlexPy log file on the Logs tab. -* New: Advanced setting in config file to change the Plex API timeout value. -* Fix: Mixed content HTTP request in settings (for reverse proxies with SSL). -* Fix: Rename recently "watched" music to "played". -* Change: Current activity details now persists across refreshes. -* Change: Smoother transitions between preview thumbnails in current activity. -* Change: Datatables now display all columns and scroll horizontally on smaller screens. -* Change: Ability to change the base URL for reverse proxies in the web interface. -* Change: Added a "Verify Server" button in the settings. -* Change: Added request status code in the logs for notifer errors. -* Change: Remove in-memory logs and read lines from log file instead. (Thanks @Hellowlol) -* Change: Limit number of failed attempts to write sessions to history. Default is 5 attempts. -* Change: A bunch of UI updates. -* Change: A bunch of backend code cleanup. -* Removed: All unused Python packages. - - -## v1.3.16 (2016-05-01) - -* Fix: Viewing photos crashing PlexPy. -* Fix: Persist Users > Edit mode on datatable page change. -* Fix: PMS update notifications broken. -* Change: Cache notifications poster with thread ID to avoid overwritting images. - - -## v1.3.15 (2016-04-18) - -* Fix: Slack notifications failing when using and icon URL. -* Fix: 127.0.0.1 showing as an external IP address on the history tables. -* Fix: Regression file sizes not shown in the media info table footer. -* Fix: Retrieving proper PMS URL when multiple connections are published to plex.tv. -* Fix: Some typos in the logger. -* Fix: Some other typos in the WebUI. (Thanks @xtjoeytx) -* Change: Optimized mobile web app icons and spash screens. (Thanks @alotufo) - - -## v1.3.14 (2016-03-29) - -* Fix: Regression for missing notify_action for script notifications. -* Fix: Typo for home stats cards in the settings. - - -## v1.3.13 (2016-03-27) - -* Fix: Only mask strings longer than 5 characters in logs. - - -## v1.3.12 (2016-03-27) - -* Fix: "Check GitHub for updates" not rescheduling when toggling setting. -* Fix: Bug where notifications would fail if metadata is not found. -* Fix: Bug where notifications would fail if unable to upload poster to Imgur. -* Fix: PlexPy will now start properly for different Python environment variables. -* New: Feature requests moved to FeatHub. -* New: Ability to specify a GitHub API token for updates (optional). -* New: Mask out sensitive information from the logs. -* New: New and updated Arnold quotes. (Thanks @Vilsol & @Chrisophogus) -* New: "First" and "Last" page buttons to datatables. -* New: Access log file from the "Help & Info" page. -* New: CherryPy environment options (for development). (Thanks @codedecay) -* New: PlexPy development environment (for development only). -* Change: Facebook posts with a posters now include a summary. -* Change: Facebook posts now use a default poster if the poster is not found or unable to upload to Imgur. -* Change: IFTTT events can be fromatted with the {action} name. -* Change: Logs now use ISO date format to avoid locale encoding errors. (Thanks @alshain) -* Remove: Non-functioning Plex notification agent. - - -## v1.3.11 (2016-03-15) - -* Fix: Typo preventing history logging for websockets. - - -## v1.3.10 (2016-03-12) - -* Fix: Actually allow HTML tags for Pushover. -* Fix: PlexPy not restarting on Windows if there is a space in the folder path. -* Fix: Reconnect websocket when changing PMS SSL setting. -* Fix: Datatables not loading when view_offset or duration is blank. -* Fix: Bug when checking the PMS version in the settings. -* Fix: Auto-refreshing of log tables. -* Fix: Logging of IPv6 addresses. (PMS version >0.9.14 only.) -* Fix: Hide days selection from the Play Totals graph page. -* Fix: PlexPy overwriting user's own SSL certificate/key. -* Fix: Multiple watched notifications when using websocket. -* Fix: Some missing python library imports. -* Fix: Some typos in settings and PlexWatch importer. -* New: Ability to get notified of PMS updates. -* New: Ability to disable the link to Plex Web with Facebook notifications and use IMDB, TVDB, TMDb, or Last.fm instead. -* New: Ability to reset Imgur poster url from the info page if the poster is changed. -* New: Tooltips on the current activity progress bars. -* New: Side scrolling of Recently Added/Recently Played items. -* New: Document all date/time format options. -* New: Button to clear notification logs. -* New: Customizable backup, cache, and log directories. -* Change: Retry writing sessions to history if it fails, so sessions don't get lost. (Activity pinger only, not availble for websocket.) -* Change: Save any unknown sessions to the "Local" user. -* Change: History table modal is filtered depending on which graph series is clicked. -* Change: Revert back to saving the state of datatables (search, sorting, entries per page, etc.). -* Change: Newlines are not longer stripped from notification text which allows for finer control of how notifications look. -* Change: Updated FreeNAS/FreeBSD init scripts. (Must have updated jails.) (Thanks @chiviak) - - -## v1.3.9 (2016-02-21) - -* Fix: Recently added notification not sent to all notification agents. -* New: Pushover HTML support. (Thanks @elseym) - - -## v1.3.8 (2016-02-21) - -* Fix: Regression unable to clear HTTP password. -* Fix: Remove media tags from script arguments for server notifications. -* Fix: Encode poster titles to UTF-8 for Imgur upload. -* Fix: Allow notifications to send without poster if Imgur upload fails. -* New: Notification Logs table in the Logs tab. -* New: Toggle in settings to enable posters in notifications. (Disabled by default.) -* Change: Save Imgur poster URL to database so upload is not needed every time. -* Change: Notify log in database to log each event as a separate entry. -* Change: Monitor remote access is unchecked if remote access is disabled on server. - - -## v1.3.7 (2016-02-20) - -* Fix: Verifying server with SSL enabled. -* Fix: Regression where {stream_duration} reported as 0. -* Fix: Video metadata flags showing up for track info. -* Fix: Custom library icons not applied to Library Statistics. -* Fix: Typos in the Web UI. -* New: ETA to Current Activity overlay. -* New: Total duration to Libraries and Users tables. -* New: {machine_id} to notification options. -* New: IMDB, TVDB, TMDb, Last.fm, and Trackt IDs/URLs to notification options. -* New: {poster_url} to notification options using Imgur. -* New: Poster and link for Facebook notifications. -* New: Log javascript errors from the Web UI. -* New: Configuration and Scheduler info to the settings page. -* New: Schedule background task to backup the PlexPy database. -* New: URL anonymizer for external links. -* New: Plex Media Scanner log file to Log viewer. -* New: API v2 (sill very experimental). (Thanks @Hellowlol) -* Change: Allow secure websocket connections. -* Change: History grouping now accounts for the view offset. -* Change: Subject line can be toggled off for Facebook, Slack, Telegram, and Twitter. -* Change: Create self-signed SSL certificates when enabling HTTPS. -* Change: Revert homepage "Last Played" to "Last Watched". -* Change: Disable monitor remote access checkbox if remote access is not enabled on the PMS. -* Change: Disable IP logging checkbox if PMS version is 0.9.14 or greater. - - -## v1.3.6 (2016-02-03) - -* Fix: Regression where {duration} not reported in minutes. -* Fix: Proper daemonizing in FreeBSD and FreeNAS init scripts. -* Change: Update readme documentation. - - -## v1.3.5 (2016-02-02) - -* Fix: Removing unique constraints from database. -* Fix: Unable to expand media info table when missing "Added At" date. -* Fix: Server verification for unpublished servers. -* Fix: Updating PMS identifier for server change. -* New: {stream_time}, {remaining_time}, and {progress_time} to notification options. -* New: Powershell script support. (Thanks @Hellowlol) -* New: Method to delete duplicate libraries. -* Change: Daemonize before running start up tasks. - - -## v1.3.4 (2016-01-29) - -* Fix: Activity checker not starting with library update (history not logging). -* Fix: Libraries duplicated in database. -* Fix: Buffer notifications even when disabled when using websockets. -* Fix: Libraries and Users lists not refreshing. -* Fix: Server verification in settings. -* Fix: Empty libraries not added to database. -* New: Unique identifiers to notification options. -* Remove: Requirement of media type toggles for recently added notifications. -* Remove: Built in Twitter key and secret. -* Change: Unnecessary quoting of script arguments. -* Change: Facebook notification instructions. - - -## v1.3.3 (2016-01-26) - -* Fix: Plays by Month graph not loading. -* Change: Disable caching for datatables. -* Change: Improved updating library data in the database again. - - -## v1.3.2 (2016-01-24) - -* Fix: 'datestamp' and 'timestamp' for server notifications. -* Change: New method for updating library data in database. - - -## v1.3.1 (2016-01-23) - -* Fix: Notifiers authorization popups for reverse proxies. -* Fix: Empty brackets in titles on tables. -* Fix: Star rating overlapping text. -* Fix: Unable to startup when library refresh fails. -* Fix: Unable to parse 'datestamp' and 'timestamp' format. -* Change: Rename "Last Watched" to "Last Played". -* Change: More descriptive libraries updating message. - - -## v1.3.0 (2016-01-23) - -* New: Brand new Libraries section. -* New: Lots of new library statistics. -* New: Media info table for libraries. -* New: Web app for Android and iOS. (Thanks @zobe123) -* New: Slack notification agent. (Thanks @richipargo) -* New: Facebook notification agent. -* New: Custom script notification agent. (Thanks @Hellowlol) -* New: Custom "From Name" to email notification agent. -* New: Ability to test notifications / send custom one-off notifications. -* New: 'datestamp' and 'timestamp' notification options. -* New: More concurrent stream statistics. -* New: Media info flags on the info pages. -* New: Ability to fix broken metadata if the item has been moved in Plex. -* New: Ability to rearrange the homepage statistics cards. -* New: CentOS startup script (Thanks @PHoSawyer) -* Fix: Server name blank after first run wizard. -* Fix: Incorrect duration for grouped home stats. -* Fix: Allow SSL when verifying server in settings. -* Fix: Metadata for grouped recently added notifications. -* Fix: Unable to access settings with missing changelog file. -* Fix: Month name localization on play totals graphs. -* Fix: Get new PMS identifier when changing servers. -* Fix: Websocket log spam when there is no active session. -* Fix: Logs and cache folder not created in the data directory. -* Fix: Title links on sync table. -* Fix: Other various minor bugs and graphical glitches. -* Change: Prettier thumbnail popovers on tables. -* Change: Star ratings to use css/font-awesome. -* Change: More detailed logging info to warnings and errors. -* Change: Better PlexPy process restart handling (Thanks @jackwilsdon) -* Change: Massive behind the scenes code cleanup. -* Remove: Built in Pushover API token (User's own API token is now required). - - -## v1.2.16 (2015-12-22) - -* Fix Most Concurrent stream stat for emtpy databases -* Change logs to 50 lines by default - - -## v1.2.15 (2015-12-20) - -* Fix navbar covering current activity on smaller screens. -* Fix metadata for grouped recently added notifications. -* Fix Growl notification agent not working. -* Change graph days selection. -* Change watch statistics to match table history grouping. -* Add automatic discovery of Pushbullet devices. -* Add Most Concurrent Streams watch statistic. -* Add precentage to current activity progress bars. -* Add a bunch of stream details to notification options. -* Add notification for Plex Remote Access/Plex Media Server back up. -* Add CC/BCC and multiple recipients to email notification agent. -* Add total watch time to history table footer. - - -## v1.2.14 (2015-12-07) - -* Fix regression with PlexWatch db importer and buffer warnings. - - -## v1.2.13 (2015-12-06) - -* Fix match newlines between tags in notification text. -* Fix current activity not showing on PMS 0.9.12. - - -## v1.2.12 (2015-12-06) - -* Fix for "too many open files" error. - - -## v1.2.11 (2015-12-06) - -* Fix more regressions (sorry). - - -## v1.2.10 (2015-12-06) - -* Fix broken count graphs regression. - - -## v1.2.9 (2015-12-06) - -* Fix and improve text sanitization. - - -## v1.2.8 (2015-12-06) - -* Fix sanitize player names -* Fix recently added notification delay -* Fix recently added metadata queries -* Fix multiple lines in notification body text -* Fix UTF-8 encoding in Prowl notifications subject line -* Change to only log IPv4 addresses -* Add global toggle for recently added notifcations -* Add feature to delete users -* Add channel support for Telegram notification agent -* Add icon for Apple tvOS -* Add icon for Microsoft Edge - - -## v1.2.7 (2015-11-27) - -* Fix IP address option in notifications - - -## v1.2.6 (2015-11-27) - -* Fixes for IP logging in PMS < 0.9.14.x. -* Fix issue in plexWatch importer when trying to import item with no ratingKey. - - -## v1.2.5 (2015-11-25) - -* Add video_decision and audio_decision to notification options -* Fix IP address logging -* Fix log spam if notifications disabled - - -## v1.2.4 (2015-11-24) - -* Add filtering by media type in the history table -* Add IFTTT notification agent -* Add Telegram notification agent -* Add notifications for recently added media -* Add notifications for server down and remote access down -* Add more metadata to notifications options -* Add IP address to notification options (for PMS 0.9.14 and above) -* Add server uptime to notification options -* Add IP address to current activity -* Add IPv6 address logging -* Add PMS server name to the page title -* Fix bug in "Last Watched" statistic -* Fix bug in search query -* Fix bug on user pages for usernames with single quotes -* Fix name for new Plex Media Center -* Fix Pushover notifications with unicode characters -* Fix bug with showing old usernames in datatables -* Fix bug with "Please verify your server" in settings -* Change IP lookup provider -* Change notifications custom body text to larger text box -* Change movie/tv logging and notifications into individual options - - -## v1.2.3 (2015-10-18) - -* Added "remaining time" as notification substitution. -* Fix bug on home stats cards. -* Fix visual bug on user page. - - -## v1.2.2 (2015-10-12) - -* Add server discovery on first run. -* Add column to tables for Platform. -* Add link to top level breadcrumbs on info pages. -* Add ability to change notification sounds for Pushover and Boxcar. -* Show watched percentage tooltip on progress column in history tables. -* More logging in event an http request fails. -* Code cleanups and other fixes. -* Fix ordering on sync table. -* Fix bug on home stats cards. -* Fix bug on activity pane where music details were not shown. - - -## v1.2.1 (2015-09-29) - -* Fix for possible issue when paused_counter is null. - - -## v1.2.0 (2015-09-29) - -* Added option to group consecutive plays in the history tables. -* Added option for websocket monitoring (still slightly experimental and disabled by default). -* Added global search option (searches your Plex library). -* Added option to update any items that may have had their rating keys changed. -* Added option to disable consecutive notifications. -* Some visual tweaks and fixes. -* Fix bug where monitoring wouldn't start up after first run. -* Fix bug showing incorrect transcode decisions for music tracks on history tables. - - -## v1.1.10 (2015-09-20) - -* Added dedicated settings section for home stats configuration with ability to show/hide selected stats and sections. -* Added support for Twitter notifications. -* Only show music in graphs if music logging is enabled. -* The monitoring ignore interval now excludes paused time. -* Fix display bug on activity panel which incorrectly reported transcoding sometimes. -* Fix bug with Email notification TLS checkbox when it would be disabled by changing any other settings afterwards. -* Fix issue on some Python releases where the webbrowser library isn't included. - - -## v1.1.9 (2015-09-14) - -* Another JonnyWong release. I'm going to stop thanking you now ;) -* Add music plays to graphs. -* Add info pages for music items. -* Add music to user recently watched items. -* Add photo views to Activity pane (photos are not logged). -* Fix token validation message on Settings page. -* Fix some "Mystery" platform names. -* Fix paused time be counted for graph data. -* Other small bug fixes. - - -## v1.1.8 (2015-09-09) - -* Add platform images for Windows devices. Thanks @JonnyWong. -* Add click-through to PlexWeb preplay page from info page. Thanks @JonnyWong. -* Fix broken delete option on info pages. Thanks @JonnyWong. -* Fix tagline bug in PlexWatch db import tool. -* Fix home stats text overflow bug. Thanks @JonnyWong. - - -## v1.1.7 (2015-09-07) - -* Show tagline in info screens for movies. Thanks @JonnyWong. -* Add play/pause/buffer icon to activity pane. Thanks @JonnyWong. -* Add transcoder info in activity pane info. Thanks @JonnyWong. -* Show transcoder progress on activity progress bar. Thanks @JonnyWong. -* Fix bug where custom notification strings would be ignored if unicode characters were present. -* Fix text overflow issue on home stats cards. Thanks @JonnyWong. -* Fix regression with user friendly name change input in edit screen. Thanks @JonnyWong. - - -## v1.1.6 (2015-09-06) - -* Home stats cards are now expandable to show multiple items. Configurable in settings. Thanks @JonnyWong. -* Completely redesigned media info pages. Thanks @JonnyWong. -* Redesigned activity pane to match Plex Web more closely. Thanks @JonnyWong. -* New Library stats on home page, shows total item counts per library. Thanks @JonnyWong. -* New last watched card in home stats. Shows last watched items. Thanks @JonnyWong. -* Improved some layout issues on mobile devices. Thanks @JonnyWong. -* Fixed issue where some clip/channel items are reported as episodes and causing exceptions. -* Many styling improvements and fixes. Thanks @JonnyWong. -* Fixed incorrect sort on home stats platform count by duration. Thanks @JonnyWong. -* Fix issue where user refresh would continually be called as "Local" user didn't exist in database. -* Fixed styling on graph stream modal. Thanks @JonnyWong. -* Fixed some issues with users page editing. Thanks @JonnyWong. -* Fix error page when clicking through to an item that no longer exists. - - -## v1.1.5 (2015-08-27) - -* Fix git tag being one release behind. - - -## v1.1.4 (2015-08-26) - -* User info is now editable from the users table. Thanks @JonnyWong. -* Improved delete mode for history pages - able to multi-select now. Thanks @JonnyWong. -* Improved image quality on tooltip images. -* More styling improvements and fixes on user and info pages. Thanks @JonnyWong. -* Added some user submitted systemd init scripts. Thanks @malle-pietje and @artbird309. -* Fixed some background operations when saving settings. -* Fix max width restricting home stats to 1600px. -* Fix stream duration parameter for notifications when paused counter is null. - - -## v1.1.3 (2015-08-22) - -* Show human readable version info and this cool changelog in Settings -> General. -* Add a "delete" mode to the history tables. Toggle it to show a delete button next to each history item. -* Two digit season and episode numbers for custom notification messages. Thanks @JonnyWong. -* New FreeNAS init script. Thanks @JonnyWong. -* Lots of styling improvements! Thanks @JonnyWong. -* Graph page remembers last selected options. Thanks @JonnyWong. -* New Popular movie homepage stats. Thanks @JonnyWong. -* Add option for duration vs play count on home stats. (Settings -> Extra Settings). Thanks @JonnyWong. -* Clean up media info pages. Don't show metadata that is missing. Thanks @JonnyWong. -* Add clear button to search inputs. Thanks @JonnyWong. -* New columns on Users list. Thanks @JonnyWong. -* New stream duration option for custom notification messages. Thanks @JonnyWong. -* Rad new tooltips on the history pages. Thanks @JonnyWong. -* And a lot of small visual changes and fixes. Thanks @JonnyWong. -* Fixed IP address modal on user history page. -* Fixed "invalid date" showing on monthly plays graph. - -## v1.1.2 (2015-08-16) - -* Fix bug where user refresh would fail under certain circumstances. - -## v1.1.1 (2015-08-15) - -* Added Most watched movie for home stats. Thanks @jroyal. -* Added TV show title to recently added text. Thanks @jroyal. -* Fix bug with buffer warnings where notification would trigger continuously after first trigger. -* Fix bug where custom avatar URL would get reset on every user refresh. - -## v1.1.0 (2015-08-15) - -* Add option to disable all history logging per user. -* Add option to change user avatar URL. Thanks @jroyal. -* Show all users on users table even if they don't yet have history. -* Add option to change time frame of statistics on home page (Settings -> Extra Settings). Thanks @jroyal. -* Add 7 day period for graphs. Thanks @jroyal. -* Add pause, resume and buffer warning notification options. -* Add fine tuning settings for buffer warning triggers. -* Fix issue with SSL cert verification bypass when method doesn't exist (depends on Python version). -* Fix bug on home stats which wouldn't update unless a TV show was first logged. -* Fix alignment of bands on daily graphs which highlight weekends. -* Fix behaviour of close button on update popup, will now stay closed for an hour after clicking close. -* Fix some styling niggles. - -## v1.0.1 (2015-08-13) - -* Allow SSL certificate check override for certain systems with bad CA stores. -* Fix typo on graphs page causing date selection to break on Safari. - -## v1.0 (2015-08-11) - -* First release \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index a415fb54..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,41 +0,0 @@ -# Contributing to Tautulli - -## Pull Requests -If you think you can contribute code to the Tautulli repository, do not hesitate to submit a pull request. - -### Branches -All pull requests should be based on the `nightly` branch, to minimize cross merges. When you want to develop a new feature, clone the repository with `git clone origin/nightly -b FEATURE_NAME`. Use meaningful commit messages. - -### Python Code - -#### Compatibility -The code should work with Python 3.6+. Note that Tautulli runs on many different platforms. - -Re-use existing code. Do not hesitate to add logging in your code. You can the logger module `plexpy.logger.*` for this. Web requests are invoked via `plexpy.request.*` and derived ones. Use these methods to automatically add proper and meaningful error handling. - -#### Code conventions -Although Tautulli did not adapt a code convention in the past, we try to follow the [PEP8](http://legacy.python.org/dev/peps/pep-0008/) conventions for future code. A short summary to remind you (copied from http://wiki.ros.org/PyStyleGuide): - - * 4 space indentation - * 80 characters per line - * `package_name` - * `ClassName` - * `method_name` - * `field_name` - * `_private_something` - * `self.__really_private_field` - * `_global` - -#### Documentation -Document your code. Use docstrings See [PEP-257](https://www.python.org/dev/peps/pep-0257/) for more information. - -### HTML/Template code - -#### Compatibility -HTML5 compatible browsers are targeted. - -#### Conventions -* 4 space indentation -* `methodName` -* `variableName` -* `ClassName` diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 7a52841f..00000000 --- a/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM ghcr.io/tautulli/tautulli-baseimage:python3 - -LABEL maintainer="Tautulli" - -ARG BRANCH -ARG COMMIT - -ENV TAUTULLI_DOCKER=True -ENV TZ=UTC - -WORKDIR /app -COPY . /app -RUN \ - groupadd -g 1000 tautulli && \ - useradd -u 1000 -g 1000 tautulli && \ - echo ${BRANCH} > /app/branch.txt && \ - echo ${COMMIT} > /app/version.txt - -RUN \ - mkdir /config && \ - touch /config/DOCKER -VOLUME /config - -CMD [ "python", "Tautulli.py", "--datadir", "/config" ] -ENTRYPOINT [ "./start.sh" ] - -EXPOSE 8181 -HEALTHCHECK --start-period=90s CMD curl -ILfSs http://localhost:8181/status > /dev/null || curl -ILfkSs https://localhost:8181/status > /dev/null || exit 1 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 94a9ed02..00000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/PlexPy.py b/PlexPy.py deleted file mode 100755 index eb9ceea4..00000000 --- a/PlexPy.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python - -# -*- coding: utf-8 -*- - -# This file is part of Tautulli. -# -# Tautulli is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Tautulli is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Tautulli. If not, see . - -from Tautulli import main - -# Call main() from Tautulli.py -if __name__ == "__main__": - main() diff --git a/README.md b/README.md deleted file mode 100644 index fa35aab8..00000000 --- a/README.md +++ /dev/null @@ -1,163 +0,0 @@ -# Tautulli - -A python based web application for monitoring, analytics and notifications for -[Plex Media Server](https://plex.tv). - -This project is based on code from [Headphones](https://github.com/rembo10/headphones) -and [PlexWatchWeb](https://github.com/ecleese/plexWatchWeb). - -## Features - -- Responsive web design viewable on desktop, tablet and mobile web browsers. -- Themed to complement Plex/Web. -- Easy configuration setup (no separate web server required). -- Monitor current Plex Media Server activity. -- Fully customizable notifications for stream activity and recently added media. -- Top statistics on home page with configurable duration and measurement metric. -- Global watching history with search/filtering & dynamic column sorting. -- Full user list with general information and comparison stats. -- Individual user information including devices IP addresses. -- Complete library statistics and media file information. -- Rich analytics presented using Highcharts graphing. -- Beautiful content information pages. -- Full sync list data on all users syncing items from your library. -- And many more!! - -## Preview - -[Full preview gallery available on our website][Tautulli] - -![Tautulli Homepage](https://tautulli.com/images/screenshots/activity-compressed.jpg?v=2) - -## Installation - -[![Python][badge-python]][Python] -[![Docker Pulls][badge-docker-pulls]][DockerHub] -[![Docker Stars][badge-docker-stars]][DockerHub] -[![Downloads][badge-downloads]][Releases Latest] - -[badge-python]: https://img.shields.io/badge/python->=3.7-blue?style=flat-square -[badge-docker-pulls]: https://img.shields.io/docker/pulls/tautulli/tautulli?style=flat-square -[badge-docker-stars]: https://img.shields.io/docker/stars/tautulli/tautulli?style=flat-square -[badge-downloads]: https://img.shields.io/github/downloads/Tautulli/Tautulli/total?style=flat-square - -| Status | Branch: `master` | Branch: `beta` | Branch: `nightly` | -| --- | --- | --- | --- | -| Release | [![Release@master][badge-release-master]][Releases Latest]
[![Release Date@master][badge-release-master-date]][Releases Latest] | [![Release@beta][badge-release-beta]][Releases]
[![Commits@beta][badge-release-beta-commits]][Commits Beta] | [![Last Commits@nightly][badge-release-nightly-last-commit]][commits Nightly]
[![Commits@nightly][badge-release-nightly-commits]][Commits Nightly] | -| Docker | [![Docker@master][badge-docker-master]][DockerHub]
[![Docker Build@master][badge-docker-master-ci]][Publish Docker Master] | [![Docker@beta][badge-docker-beta]][DockerHub]
[![Docker Build@beta][badge-docker-beta-ci]][Publish Docker Beta] | [![Docker@nightly][badge-docker-nightly]][DockerHub]
[![Docker Build@nightly][badge-docker-nightly-ci]][Publish Docker Nightly] | -| Snap | [![Snap@master][badge-snap-master]][Snapcraft]
[![Snap Build@master][badge-snap-master-ci]][Publish Snap Master] | [![Snap@beta][badge-snap-beta]][Snapcraft]
[![Snap Build@beta][badge-snap-beta-ci]][Publish Snap Beta] | [![Snap@nightly][badge-snap-nightly]][Snapcraft]
[![Snap Build@nightly][badge-snap-nightly-ci]][Publish Snap Nightly] | -| Installer | [![Windows@master][badge-installer-master-win]][Releases Latest]
[![MacOS@master][badge-installer-master-macos]][Releases Latest]
[![Installer Build@master][badge-installer-master-ci]][Publish Installer Master] | [![Windows@beta][badge-installer-beta-win]][Releases]
[![MacOS@beta][badge-installer-beta-macos]][Releases]
[![Installer Build@beta][badge-installer-beta-ci]][Publish Installer Beta] | [![Installer Build@nightly][badge-installer-nightly-ci]][Publish Installer Nightly] | - -Read the [Installation Guides][Installation] for instructions on how to install Tautulli. - -[badge-release-master]: https://img.shields.io/github/v/release/Tautulli/Tautulli?style=flat-square -[badge-release-master-date]: https://img.shields.io/github/release-date/Tautulli/Tautulli?style=flat-square&color=blue -[badge-release-beta]: https://img.shields.io/github/v/release/Tautulli/Tautulli?include_prereleases&style=flat-square -[badge-release-beta-commits]: https://img.shields.io/github/commits-since/Tautulli/Tautulli/latest/beta?style=flat-square&color=blue -[badge-release-nightly-last-commit]: https://img.shields.io/github/last-commit/Tautulli/Tautulli/nightly?style=flat-square&color=blue -[badge-release-nightly-commits]: https://img.shields.io/github/commits-since/Tautulli/Tautulli/latest/nightly?style=flat-square&color=blue -[badge-docker-master]: https://img.shields.io/badge/docker-latest-blue?style=flat-square -[badge-docker-master-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Docker/master?style=flat-square -[badge-docker-beta]: https://img.shields.io/badge/docker-beta-blue?style=flat-square -[badge-docker-beta-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Docker/beta?style=flat-square -[badge-docker-nightly]: https://img.shields.io/badge/docker-nightly-blue?style=flat-square -[badge-docker-nightly-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Docker/nightly?style=flat-square -[badge-snap-master]: https://img.shields.io/badge/snap-stable-blue?style=flat-square -[badge-snap-master-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Snap/master?style=flat-square -[badge-snap-beta]: https://img.shields.io/badge/snap-beta-blue?style=flat-square -[badge-snap-beta-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Snap/beta?style=flat-square -[badge-snap-nightly]: https://img.shields.io/badge/snap-edge-blue?style=flat-square -[badge-snap-nightly-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Snap/nightly?style=flat-square -[badge-installer-master-win]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=windows&style=flat-square -[badge-installer-master-macos]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=macos&style=flat-square -[badge-installer-master-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Installers/master?style=flat-square -[badge-installer-beta-win]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=windows&include_prereleases&style=flat-square -[badge-installer-beta-macos]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=macos&include_prereleases&style=flat-square -[badge-installer-beta-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Installers/beta?style=flat-square -[badge-installer-nightly-ci]: https://img.shields.io/github/workflow/status/Tautulli/Tautulli/Publish%20Installers/nightly?style=flat-square - -## Support - -[![Wiki][badge-wiki]][Wiki] -[![Discord][badge-discord]][Discord] -[![Reddit][badge-reddit]][Reddit] -[![Plex Forums][badge-forums]][Plex Forums] -[![Issues][badge-issues]][Issues] - -[badge-wiki]: https://img.shields.io/badge/github-wiki-black?style=flat-square -[badge-discord]: https://img.shields.io/discord/183396325142822912?label=discord&style=flat-square&color=7289DA -[badge-reddit]: https://img.shields.io/reddit/subreddit-subscribers/tautulli?label=reddit&style=flat-square&color=FF5700 -[badge-forums]: https://img.shields.io/badge/plex%20forums-discussion-E5A00D?style=flat-square -[badge-issues]: https://img.shields.io/badge/github-issues-black?style=flat-square - -If you think you've found a bug in Tautulli make sure you have read the [FAQ][] -first to make sure it hasn't been covered by one of the questions there. If your -problem isn't answered in the FAQ try the following first: - -- Update to the latest version of Tautulli. -- Turning your device off and on again. -- Analyzing your logs, you just might find the solution yourself! -- Using the **search** function to see if this issue has already been reported/solved. -- Checking the [Wiki][] for [Installation][] instructions and reading the [FAQs][FAQ]. -- For basic questions try asking on [Discord][], [Reddit][], - or the [Plex Forums][] first before opening an issue. - -**If nothing has worked:** - -1. Please check the [issues tracker][Issues] to see if someone else has already reported the bug. -2. If this is a new bug, open a [bug report][Issue New] on the issues tracker. -3. Provide a clear title to easily help identify your problem. -4. Use proper [Markdown syntax][] to structure your post (i.e. code/log in code blocks). -5. Make sure to fill out the required information on the issue template. -6. Close your issue when it's solved! If you found the solution yourself please - comment so that others benefit from it. - -## Feature Requests - -1. Pleases check the [issues tracker][Issues] to see if someone else has already requested the feature. - If a similar idea has already been requested, _give it a thumbs up_. **Do not comment - with `+1` or something similar as it creates unnecessary spam.** -2. If this is a new feature request, open a [feature request][Issue New] on the issues tracker. - -## License - -[![License][badge-license]][License] - -[badge-license]: https://img.shields.io/github/license/Tautulli/Tautulli?style=flat-square - -This is free software under the GPL v3 open source license. Feel free to do with it what you wish, -but any modification must be open sourced. A copy of the license is included. - -This software includes Highsoft software libraries which you may freely distribute for -non-commercial use. Commerical users must licence this software, for more information visit -https://shop.highsoft.com/faq/non-commercial#non-commercial-redistribution. - - -[Python]: https://python.org/downloads -[DockerHub]: https://hub.docker.com/r/tautulli/tautulli -[Releases]: https://github.com/Tautulli/Tautulli/releases -[Releases Latest]: https://github.com/Tautulli/Tautulli/releases/latest -[License]: https://github.com/Tautulli/Tautulli/blob/master/LICENSE -[FAQ]: https://github.com/Tautulli/Tautulli/wiki/Frequently-Asked-Questions -[Installation]: https://github.com/Tautulli/Tautulli/wiki/Installation -[Issues]: https://github.com/Tautulli/Tautulli/issues -[Issue New]: https://github.com/Tautulli/Tautulli/issues/new/choose -[Markdown syntax]: https://help.github.com/articles/github-flavored-markdown -[Tautulli]: http://tautulli.com -[Wiki]: https://github.com/Tautulli/Tautulli/wiki -[Discord]: https://tautulli.com/discord -[Reddit]: https://reddit.com/r/Tautulli -[Plex Forums]: https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242 -[Snapcraft]: https://snapcraft.io/tautulli -[Commits Beta]: https://github.com/Tautulli/Tautulli/commits/beta -[Commits Nightly]: https://github.com/Tautulli/Tautulli/commits/nightly - -[Publish Docker Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Amaster -[Publish Docker Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Abeta -[Publish Docker Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Anightly -[Publish Snap Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Amaster -[Publish Snap Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Abeta -[Publish Snap Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Anightly -[Publish Installer Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Amaster -[Publish Installer Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Abeta -[Publish Installer Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Anightly diff --git a/Tautulli.py b/Tautulli.py deleted file mode 100755 index 85e30c04..00000000 --- a/Tautulli.py +++ /dev/null @@ -1,334 +0,0 @@ -#!/usr/bin/env python - -# -*- coding: utf-8 -*- - -# This file is part of Tautulli. -# -# Tautulli is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Tautulli is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Tautulli. If not, see . - -import os -import sys - -# Ensure lib added to path, before any other imports -sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), 'lib')) - -from future.builtins import str - -import appdirs -import argparse -import datetime -import locale -import pytz -import signal -import shutil -import time -import threading -import tzlocal - -import plexpy -from plexpy import common, config, database, helpers, logger, webstart -if common.PLATFORM == 'Windows': - from plexpy import windows -elif common.PLATFORM == 'Darwin': - from plexpy import macos - -# Register signals, such as CTRL + C -signal.signal(signal.SIGINT, plexpy.sig_handler) -signal.signal(signal.SIGTERM, plexpy.sig_handler) - - -def main(): - """ - Tautulli application entry point. Parses arguments, setups encoding and - initializes the application. - """ - - # Fixed paths to Tautulli - if hasattr(sys, 'frozen') and hasattr(sys, '_MEIPASS'): - plexpy.FROZEN = True - plexpy.FULL_PATH = os.path.abspath(sys.executable) - plexpy.PROG_DIR = sys._MEIPASS - else: - plexpy.FULL_PATH = os.path.abspath(__file__) - plexpy.PROG_DIR = os.path.dirname(plexpy.FULL_PATH) - - plexpy.ARGS = sys.argv[1:] - - # From sickbeard - plexpy.SYS_PLATFORM = sys.platform - plexpy.SYS_ENCODING = None - - try: - locale.setlocale(locale.LC_ALL, "") - plexpy.SYS_LANGUAGE, plexpy.SYS_ENCODING = locale.getdefaultlocale() - except (locale.Error, IOError): - pass - - # for OSes that are poorly configured I'll just force UTF-8 - if not plexpy.SYS_ENCODING or plexpy.SYS_ENCODING in ('ANSI_X3.4-1968', 'US-ASCII', 'ASCII'): - plexpy.SYS_ENCODING = 'UTF-8' - - # Set up and gather command line arguments - parser = argparse.ArgumentParser( - description='A Python based monitoring and tracking tool for Plex Media Server.') - - parser.add_argument( - '-v', '--verbose', action='store_true', help='Increase console logging verbosity') - parser.add_argument( - '-q', '--quiet', action='store_true', help='Turn off console logging') - parser.add_argument( - '-d', '--daemon', action='store_true', help='Run as a daemon') - parser.add_argument( - '-p', '--port', type=int, help='Force Tautulli to run on a specified port') - parser.add_argument( - '--dev', action='store_true', help='Start Tautulli in the development environment') - parser.add_argument( - '--datadir', help='Specify a directory where to store your data files') - parser.add_argument( - '--config', help='Specify a config file to use') - parser.add_argument( - '--nolaunch', action='store_true', help='Prevent browser from launching on startup') - parser.add_argument( - '--pidfile', help='Create a pid file (only relevant when running as a daemon)') - parser.add_argument( - '--nofork', action='store_true', help='Start Tautulli as a service, do not fork when restarting') - - args = parser.parse_args() - - if args.verbose: - plexpy.VERBOSE = True - if args.quiet: - plexpy.QUIET = True - - # Do an intial setup of the logger. - # Require verbose for pre-initilization to see critical errors - logger.initLogger(console=not plexpy.QUIET, log_dir=False, verbose=True) - - try: - plexpy.SYS_TIMEZONE = tzlocal.get_localzone() - except (pytz.UnknownTimeZoneError, LookupError, ValueError) as e: - logger.error("Could not determine system timezone: %s" % e) - plexpy.SYS_TIMEZONE = pytz.UTC - - plexpy.SYS_UTC_OFFSET = datetime.datetime.now(plexpy.SYS_TIMEZONE).strftime('%z') - - if helpers.bool_true(os.getenv('TAUTULLI_DOCKER', False)): - plexpy.DOCKER = True - plexpy.DOCKER_MOUNT = not os.path.isfile('/config/DOCKER') - if helpers.bool_true(os.getenv('TAUTULLI_SNAP', False)): - plexpy.SNAP = True - - if args.dev: - plexpy.DEV = True - logger.debug("Tautulli is running in the dev environment.") - - if args.daemon: - if sys.platform == 'win32': - logger.warn("Daemonizing not supported under Windows, starting normally") - else: - plexpy.DAEMON = True - plexpy.QUIET = True - - if args.nofork: - plexpy.NOFORK = True - logger.info("Tautulli is running as a service, it will not fork when restarted.") - - if args.pidfile: - plexpy.PIDFILE = str(args.pidfile) - - # If the pidfile already exists, plexpy may still be running, so - # exit - if os.path.exists(plexpy.PIDFILE): - try: - with open(plexpy.PIDFILE, 'r') as fp: - pid = int(fp.read()) - except IOError as e: - raise SystemExit("Unable to read PID file: %s", e) - - try: - os.kill(pid, 0) - except OSError: - logger.warn("PID file '%s' already exists, but PID %d is " - "not running. Ignoring PID file." % - (plexpy.PIDFILE, pid)) - else: - # The pidfile exists and points to a live PID. plexpy may - # still be running, so exit. - raise SystemExit("PID file '%s' already exists. Exiting." % - plexpy.PIDFILE) - - # The pidfile is only useful in daemon mode, make sure we can write the - # file properly - if plexpy.DAEMON: - plexpy.CREATEPID = True - - try: - with open(plexpy.PIDFILE, 'w') as fp: - fp.write("pid\n") - except IOError as e: - raise SystemExit("Unable to write PID file: %s", e) - else: - logger.warn("Not running in daemon mode. PID file creation " \ - "disabled.") - - # Determine which data directory and config file to use - if args.datadir: - plexpy.DATA_DIR = args.datadir - elif plexpy.FROZEN: - plexpy.DATA_DIR = appdirs.user_data_dir("Tautulli", False) - else: - plexpy.DATA_DIR = plexpy.PROG_DIR - - # Migrate Snap data dir - if plexpy.SNAP: - snap_common = os.environ['SNAP_COMMON'] - old_data_dir = os.path.join(snap_common, 'Tautulli') - if os.path.exists(old_data_dir) and os.listdir(old_data_dir): - plexpy.SNAP_MIGRATE = True - logger.info("Migrating Snap user data.") - shutil.move(old_data_dir, plexpy.DATA_DIR) - - if args.config: - config_file = args.config - else: - config_file = os.path.join(plexpy.DATA_DIR, config.FILENAME) - - # Try to create the DATA_DIR if it doesn't exist - if not os.path.exists(plexpy.DATA_DIR): - try: - os.makedirs(plexpy.DATA_DIR) - except OSError: - raise SystemExit( - 'Could not create data directory: ' + plexpy.DATA_DIR + '. Exiting....') - - # Make sure the DATA_DIR is writeable - test_file = os.path.join(plexpy.DATA_DIR, '.TEST') - try: - with open(test_file, 'w'): - pass - except IOError: - raise SystemExit( - 'Cannot write to the data directory: ' + plexpy.DATA_DIR + '. Exiting...') - finally: - try: - os.remove(test_file) - except OSError: - pass - - # Put the database in the DATA_DIR - plexpy.DB_FILE = os.path.join(plexpy.DATA_DIR, database.FILENAME) - - # Move 'plexpy.db' to 'tautulli.db' - if os.path.isfile(os.path.join(plexpy.DATA_DIR, 'plexpy.db')) and \ - not os.path.isfile(os.path.join(plexpy.DATA_DIR, plexpy.DB_FILE)): - try: - os.rename(os.path.join(plexpy.DATA_DIR, 'plexpy.db'), plexpy.DB_FILE) - except OSError as e: - raise SystemExit("Unable to rename plexpy.db to tautulli.db: %s", e) - - if plexpy.DAEMON: - plexpy.daemonize() - - # Read config and start logging - plexpy.initialize(config_file) - - # Start the background threads - plexpy.start() - - # Force the http port if neccessary - if args.port: - plexpy.HTTP_PORT = args.port - logger.info('Using forced web server port: %i', plexpy.HTTP_PORT) - else: - plexpy.HTTP_PORT = int(plexpy.CONFIG.HTTP_PORT) - - # Check if pyOpenSSL is installed. It is required for certificate generation - # and for CherryPy. - if plexpy.CONFIG.ENABLE_HTTPS: - try: - import OpenSSL - except ImportError: - logger.warn("The pyOpenSSL module is missing. Install this " - "module to enable HTTPS. HTTPS will be disabled.") - plexpy.CONFIG.ENABLE_HTTPS = False - - # Try to start the server. Will exit here is address is already in use. - webstart.start() - - if common.PLATFORM == 'Windows': - if plexpy.CONFIG.SYS_TRAY_ICON: - plexpy.WIN_SYS_TRAY_ICON = windows.WindowsSystemTray() - plexpy.WIN_SYS_TRAY_ICON.start() - windows.set_startup() - elif common.PLATFORM == 'Darwin': - macos.set_startup() - - # Open webbrowser - if plexpy.CONFIG.LAUNCH_BROWSER and not args.nolaunch and not plexpy.DEV: - plexpy.launch_browser(plexpy.CONFIG.HTTP_HOST, plexpy.HTTP_PORT, - plexpy.HTTP_ROOT) - - if common.PLATFORM == 'Darwin' and plexpy.CONFIG.SYS_TRAY_ICON: - if not macos.HAS_PYOBJC: - logger.warn("The pyobjc module is missing. Install this " - "module to enable the MacOS menu bar icon.") - plexpy.CONFIG.SYS_TRAY_ICON = False - - if plexpy.CONFIG.SYS_TRAY_ICON: - # MacOS menu bar icon must be run on the main thread and is blocking - # Start the rest of Tautulli on a new thread - thread = threading.Thread(target=wait) - thread.daemon = True - thread.start() - - plexpy.MAC_SYS_TRAY_ICON = macos.MacOSSystemTray() - plexpy.MAC_SYS_TRAY_ICON.start() - else: - wait() - else: - wait() - - -def wait(): - logger.info("Tautulli is ready!") - - # Wait endlessly for a signal to happen - while True: - if not plexpy.SIGNAL: - try: - time.sleep(1) - except KeyboardInterrupt: - plexpy.SIGNAL = 'shutdown' - else: - logger.info('Received signal: %s', plexpy.SIGNAL) - - if plexpy.SIGNAL == 'shutdown': - plexpy.shutdown() - elif plexpy.SIGNAL == 'restart': - plexpy.shutdown(restart=True) - elif plexpy.SIGNAL == 'checkout': - plexpy.shutdown(restart=True, checkout=True) - elif plexpy.SIGNAL == 'reset': - plexpy.shutdown(restart=True, reset=True) - elif plexpy.SIGNAL == 'update': - plexpy.shutdown(restart=True, update=True) - else: - logger.error('Unknown signal. Shutting down...') - plexpy.shutdown() - - plexpy.SIGNAL = None - - -if __name__ == "__main__": - main() diff --git a/contrib/clean_pyc.bat b/contrib/clean_pyc.bat deleted file mode 100755 index e4436dea..00000000 --- a/contrib/clean_pyc.bat +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -:: Display information -echo This script will remove *.pyc files. These files are generated by Python, but they can cause conflicts after an upgrade. It's safe to remove them, because they will be regenerated. -echo Press enter to continue, or CTRL + C to quit. -pause - -cd ..\ -:: Remove *.pyc files -del /S *.pyc -:: Remove __pycache__ folders -for /d /r . %%d in (__pycache__) do @if exist "%%d" rd /s /q "%%d" \ No newline at end of file diff --git a/contrib/clean_pyc.sh b/contrib/clean_pyc.sh deleted file mode 100755 index ea555159..00000000 --- a/contrib/clean_pyc.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# Display information -echo "This script will remove *.pyc files. These files are generated by Python, but they can cause conflicts after an upgrade. It's safe to remove them, because they will be regenerated." -echo "Press enter to continue, or CTRL + C to quit." -read - -# Remove *.pyc files -find "`dirname $0`/.." -type f -name "*.pyc" -exec rm -rf {} \; -# Remove __pycache__ folders -find "`dirname $0`/.." -type d -name "__pycache__" -exec rm -rf {} \; \ No newline at end of file diff --git a/contrib/downgrade.sh b/contrib/downgrade.sh deleted file mode 100755 index e4822c46..00000000 --- a/contrib/downgrade.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -# Parameter check -if [ -z "$1" ]; then - echo "Syntax: $0 " - exit 1 -fi - -# Version file check -if [ ! -s "$1/version.lock" ]; then - echo "Missing the version.lock file in the data folder, or the file is empty. Did you start PlexPy at least once?" - exit 1 -fi - -# Git installation check -if [ ! -x "$(command -v git)" ]; then - echo "Git is required to downgrade." - exit 1 -fi - -# Display information -HASH=$(cat $1/version.lock) - -echo "This script will try to downgrade PlexPy to the last version that started, version $HASH. Make sure you have a backup of your config file and database, just in case!" -echo "Press enter to continue, or CTRL + C to quit." -read - -# Downgrade -cd "`dirname $0`/.." -git reset --hard "$HASH" - -echo "All done, PlexPy should be downgraded to the last version that started." \ No newline at end of file diff --git a/data/interfaces/default/app_import.html b/data/interfaces/default/app_import.html deleted file mode 100644 index 74af4313..00000000 --- a/data/interfaces/default/app_import.html +++ /dev/null @@ -1,201 +0,0 @@ - - \ No newline at end of file diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html deleted file mode 100644 index 5e8d4447..00000000 --- a/data/interfaces/default/base.html +++ /dev/null @@ -1,514 +0,0 @@ -<% - import plexpy - from plexpy import version - from plexpy.helpers import anon_url - from plexpy.notifiers import BROWSER_NOTIFIERS -%> - - - - - - Tautulli - ${title} | ${server_name} - - - - - - - - - - - - ${next.headIncludes()} - - - - - - - - - - - - - - - - - - - - -
-
- % if _session['user_group'] == 'admin': - % if plexpy.CONFIG.CHECK_GITHUB and plexpy.UPDATE_AVAILABLE is not False: - - % else: - - % endif - % endif - -
- -${next.headerIncludes()} - -
- ${next.body()} -
- -${next.modalIncludes()} - -% if _session['user_group'] != 'admin': - -% else: - -% endif - - - - - - - - - - - - - - - - - -${next.javascriptIncludes()} - - - -<%def name="modalIncludes()"> -<%def name="javascriptIncludes()"> -<%def name="headIncludes()"> -<%def name="headerIncludes()"> diff --git a/data/interfaces/default/config_import.html b/data/interfaces/default/config_import.html deleted file mode 100644 index 984e482f..00000000 --- a/data/interfaces/default/config_import.html +++ /dev/null @@ -1,138 +0,0 @@ - - \ No newline at end of file diff --git a/data/interfaces/default/configuration_table.html b/data/interfaces/default/configuration_table.html deleted file mode 100644 index 676876d6..00000000 --- a/data/interfaces/default/configuration_table.html +++ /dev/null @@ -1,123 +0,0 @@ -<%doc> -USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE - -For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/ - -Filename: configuration_table.html -Version: 0.1 - -DOCUMENTATION :: END - - -<%! - import os - import sys - import plexpy - from plexpy import common, logger - from plexpy.helpers import anon_url -%> - - - - % if plexpy.CURRENT_VERSION: - - - - - - - - - % endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % if plexpy.ARGS: - - - - - % endif - - - - - - - - - - - - - - - - - - - - -
Git Branch:${plexpy.CONFIG.GIT_BRANCH}
Git Commit Hash:${plexpy.CURRENT_VERSION}
Configuration File:${plexpy.CONFIG_FILE}
Database File:${plexpy.DB_FILE} | Status
Log File:${os.path.join(plexpy.CONFIG.LOG_DIR, logger.FILENAME)}
Backup Directory:${plexpy.CONFIG.BACKUP_DIR}
Cache Directory:${plexpy.CONFIG.CACHE_DIR}
Export Directory:${plexpy.CONFIG.EXPORT_DIR}
Newsletter Directory:${plexpy.CONFIG.NEWSLETTER_DIR}
Arguments:${plexpy.ARGS}
Platform:${'[Docker] ' if plexpy.DOCKER else ''}${common.PLATFORM} ${common.PLATFORM_RELEASE} (${common.PLATFORM_VERSION + (' - {}'.format(common.PLATFORM_LINUX_DISTRO) if common.PLATFORM_LINUX_DISTRO else '')})
System Timezone:${str(plexpy.SYS_TIMEZONE)} (${'UTC{}'.format(plexpy.SYS_UTC_OFFSET)}) -
Python Version:${sys.version}
Resources: - Tautulli Website | - Source | - Wiki | - Bug Reports | - Feature Requests -
Support: - Tautulli Discord Server | - Tautulli Subreddit | - Plex Forums -
- - \ No newline at end of file diff --git a/data/interfaces/default/css/bootstrap-wizard.css b/data/interfaces/default/css/bootstrap-wizard.css deleted file mode 100755 index 7e07fb61..00000000 --- a/data/interfaces/default/css/bootstrap-wizard.css +++ /dev/null @@ -1,188 +0,0 @@ -/* WIZARD GENERAL */ -.wizard { - display:none; -} - -.wizard-dialog {} -.wizard-content { - background-color: #282828; -} - -.wizard-body { - padding: 0; - margin: 0; -} - -/* WIZARD HEADER */ -.wizard-header { - background-color: rgba(255,255,255,0.035); - padding: 9px 15px; - border-bottom: 0; -} - -.wizard-header h3 { - margin: 0; - line-height: 35px; - display: inline; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-family: inherit; - font-weight: bold; - text-rendering: optimizelegibility; - color: #eee; -} - -.wizard-subtitle { - font-weight:bold; - color:#AFAFAF; - padding-left:20px; -} - - -/* WIZARD NAVIGATION */ -.wizard-steps { - width: 28%; - background-color: rgba(255,255,255,0.035); - border-bottom-left-radius: 6px; - position: relative; -} - -.wizard-nav-container { - padding-bottom: 30px; -} - -.wizard-nav-list { - margin-bottom: 0; -} - -.wizard-nav-link .glyphicon-chevron-right { - float:right; - margin-top:12px; - margin-right:-6px; - opacity:.25; -} - -li.wizard-nav-item.active .glyphicon-chevron-right { - opacity:1; -} - -li.wizard-nav-item { - line-height:40px; -} - -.wizard-nav-list > li > a { - background-color:transparent; - padding:3px 15px 3px 20px; - cursor:default; - color:#B4B4B4; -} - -.wizard-nav-list > li > a:hover { - background-color: transparent; -} - -.wizard-nav-list > li.already-visited > a.wizard-nav-link { - color:grey; - cursor:pointer; -} - -.wizard-nav-list > li.active > a.wizard-nav-link { - color:white; -} - -.wizard-nav-item .already-visited .active { - background-color:#08C; -} - -.wizard-nav-list li.active > a { - background-color:#f17800; -} - - -/* WIZARD CONTENT */ -.wizard-body form { - padding: 0; - margin: 0; -} - -/* WIZARD PROGRESS BAR */ -.wizard-progress-container { - margin-top: 20px; - padding: 15px; - width: 100%; - position: absolute; - bottom: 0; -} - -.wizard-card-container { - margin-left: 28%; -} - -/* WIZARD CARDS */ -.wizard-error, -.wizard-failure, -.wizard-success, -.wizard-loading, -.wizard-card { - display:none; - padding:35px; - padding-top:20px; - overflow-y:auto; - color: #eee; - /* - position:relative; - height:300px; - margin-right: 5px; - */ -} - -.wizard-card-overlay { - overflow-y: initial; -} - -.wizard-card > h3 { - margin-top:0; - margin-bottom:20px; - font-size:21px; - line-height:40px; - font-weight:normal; -} - -/* WIZARD FOOTER */ -.wizard-footer { - padding:0; -} - -.wizard-buttons-container { - padding:20px; -} - -.wizard-cancel { - margin-left: 12px; -} - -/* Inner Card */ -.wizard-input-section { - margin-bottom:20px; -} - -.wizard-dialog .popover.error-popover { - background-color:#F2DEDE; - color:#B94A48; - border-color:#953B39; -} - -.wizard-dialog .popover.error-popover .arrow::after { - border-right-color:#F2DEDE; -} - -.wizard-dialog .popover.error-popover .popover-title { - display:none; -} - -.wizard-dialog .popover.error-popover .arrow { - border-right-color:#953B39; -} - -.close { - display: none !important; -} \ No newline at end of file diff --git a/data/interfaces/default/css/bootstrap3/bootstrap.css b/data/interfaces/default/css/bootstrap3/bootstrap.css deleted file mode 100644 index b4eccddb..00000000 --- a/data/interfaces/default/css/bootstrap3/bootstrap.css +++ /dev/null @@ -1,6848 +0,0 @@ -/*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -.5em; -} -sub { - bottom: -.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../../fonts/bootstrap3/glyphicons-halflings-regular.eot'); - src: url('../../fonts/bootstrap3/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../fonts/bootstrap3/glyphicons-halflings-regular.woff2') format('woff2'), url('../../fonts/bootstrap3/glyphicons-halflings-regular.woff') format('woff'), url('../../fonts/bootstrap3/glyphicons-halflings-regular.ttf') format('truetype'), url('../../fonts/bootstrap3/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: 'Open Sans', sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #fff; - background-color: #1f1f1f; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - margin-top: 5px; - color: #fff; - border: 0px solid #444; - background: #333; - height: 30px; - padding: 2px 5px 2px 12px; - background-color: #3a3a3a; - border-radius: 14.5px; - transition: background-color .3s; -} -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - outline: 0; - outline: thin dotted \9; - color: #555; - background-color: #fff; - transition: background-color .3s; - /* IE6-9 */ -} -a { - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.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; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: .2em; - background-color: #fcf8e3; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover, -a.text-primary:focus { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover, -a.text-success:focus { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover, -a.text-info:focus { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover, -a.text-danger:focus { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - min-height: .01%; - overflow-x: auto; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #eee; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 34px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 46px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - min-height: 34px; - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-right: 0; - padding-left: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.form-group-sm select.form-control { - height: 30px; - line-height: 30px; -} -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.form-group-lg select.form-control { - height: 46px; - line-height: 46px; -} -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 11px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.333333px; - font-size: 18px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; - } -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; -} -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:focus, -.btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -.btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active:hover, -.btn-default.active:hover, -.open > .dropdown-toggle.btn-default:hover, -.btn-default:active:focus, -.btn-default.active:focus, -.open > .dropdown-toggle.btn-default:focus, -.btn-default:active.focus, -.btn-default.active.focus, -.open > .dropdown-toggle.btn-default.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:focus, -.btn-primary.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.btn-primary:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active:hover, -.btn-primary.active:hover, -.open > .dropdown-toggle.btn-primary:hover, -.btn-primary:active:focus, -.btn-primary.active:focus, -.open > .dropdown-toggle.btn-primary:focus, -.btn-primary:active.focus, -.btn-primary.active.focus, -.open > .dropdown-toggle.btn-primary.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:focus, -.btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; -} -.btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active:hover, -.btn-success.active:hover, -.open > .dropdown-toggle.btn-success:hover, -.btn-success:active:focus, -.btn-success.active:focus, -.open > .dropdown-toggle.btn-success:focus, -.btn-success:active.focus, -.btn-success.active.focus, -.open > .dropdown-toggle.btn-success.focus { - color: #fff; - background-color: #398439; - border-color: #255625; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:focus, -.btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; -} -.btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active:hover, -.btn-info.active:hover, -.open > .dropdown-toggle.btn-info:hover, -.btn-info:active:focus, -.btn-info.active:focus, -.open > .dropdown-toggle.btn-info:focus, -.btn-info:active.focus, -.btn-info.active.focus, -.open > .dropdown-toggle.btn-info.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:focus, -.btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; -} -.btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active:hover, -.btn-warning.active:hover, -.open > .dropdown-toggle.btn-warning:hover, -.btn-warning:active:focus, -.btn-warning.active:focus, -.open > .dropdown-toggle.btn-warning:focus, -.btn-warning:active.focus, -.btn-warning.active.focus, -.open > .dropdown-toggle.btn-warning.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:focus, -.btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; -} -.btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active:hover, -.btn-danger.active:hover, -.open > .dropdown-toggle.btn-danger:hover, -.btn-danger:active:focus, -.btn-danger.active:focus, -.open > .dropdown-toggle.btn-danger:focus, -.btn-danger:active.focus, -.btn-danger.active.focus, -.open > .dropdown-toggle.btn-danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn, -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; -} -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #777; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 3; - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #777; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; -} -.label-primary { - background-color: #337ab7; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: middle; - background-color: #777; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-object.img-thumbnail { - max-width: none; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item, -button.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success, -button.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading, -button.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -button.list-group-item-success:hover, -a.list-group-item-success:focus, -button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -button.list-group-item-success.active, -a.list-group-item-success.active:hover, -button.list-group-item-success.active:hover, -a.list-group-item-success.active:focus, -button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info, -button.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading, -button.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -button.list-group-item-info:hover, -a.list-group-item-info:focus, -button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -button.list-group-item-info.active, -a.list-group-item-info.active:hover, -button.list-group-item-info.active:hover, -a.list-group-item-info.active:focus, -button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning, -button.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading, -button.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -button.list-group-item-warning:hover, -a.list-group-item-warning:focus, -button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -button.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus, -button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger, -button.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading, -button.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -button.list-group-item-danger:hover, -a.list-group-item-danger:focus, -button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -button.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus, -button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; -} -.modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - font-style: normal; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - filter: alpha(opacity=0); - opacity: 0; - - line-break: auto; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: .9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - - line-break: auto; -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - content: ""; - border-width: 10px; -} -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; -} -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; -} -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); -} -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: 0; - opacity: .9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - margin-top: -10px; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - font-family: serif; - line-height: 1; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -/*# sourceMappingURL=bootstrap.css.map */ diff --git a/data/interfaces/default/css/bootstrap3/bootstrap.css.map b/data/interfaces/default/css/bootstrap3/bootstrap.css.map deleted file mode 100644 index 9f60ed2b..00000000 --- a/data/interfaces/default/css/bootstrap3/bootstrap.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,eAAA;CH8O9C;AG7OmC;EAAW,eAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EA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DH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\2a\";\n}\n.glyphicon-plus:before {\n content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #ffffff;\n background-color: #333333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #dddddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #ffffff;\n background-image: none;\n border: 1px solid #cccccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999999;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333333;\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default .badge {\n color: #ffffff;\n background-color: #333333;\n}\n.btn-primary {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #ffffff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #ffffff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.btn-success {\n color: #ffffff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #ffffff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #ffffff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #ffffff;\n}\n.btn-info {\n color: #ffffff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #ffffff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #ffffff;\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #ffffff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #ffffff;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #ffffff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #ffffff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777777;\n}\n.navbar-default .navbar-link:hover {\n color: #333333;\n}\n.navbar-default .btn-link {\n color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #cccccc;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 3;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #ffffff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #ffffff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #dddddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n min-height: 16.42857143px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @grid-float-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because